One solution to deploy serverless workloads everywhere - Serverless Container Framework (SCF) is a unified development and deployment experience for containers on serverless platforms.
In this initial release, SCF focuses on delivering an API architecture that leverages AWS Application Load Balancer for request routing, allowing developers to freely mix and transition between AWS Lambda and AWS ECS Fargate compute options, accompanied by a rich development experience.
This repo contains examples and other educational content on SCF. The code for SCF ships within the Serverless Framework.
Unified Container Development & DeploymentServerless Container Framework offers simple YAML to deliver complex architectures via a serverless.containers.yml
file. Here is a simple example of a full-stack application.
To see the full list of configuration options, see the Configuration Docs.
namespace: acmeinc deployment: type: awsApi@1.0 containers: # Web (Frontend) service-web: src: ./web routing: domain: acmeinc.com pathPattern: /* compute: type: awsLambda # API (Backend) service-api: src: ./api routing: domain: api.acmeinc.com pathPattern: /api/* pathHealthCheck: /health compute: type: awsFargateEcs awsFargateEcs: memory: 4096 cpu: 1024 environment: HELLO: world awsIam: customPolicy: Version: "2012-10-17" Statement: - Effect: Allow Action: - dynamodb:GetItem Resource: - "*"
npm install -g serverless
# Option 1: AWS CLI (recommended) aws configure # Option 2: Environment variables export AWS_ACCESS_KEY_ID=your-key-id export AWS_SECRET_ACCESS_KEY=your-access-key export AWS_SESSION_TOKEN=your-session-token
git clone https://github.com/serverless/containers.git
cd example-express/service npm install
Ensure you are within the directory containing the serverless.containers.yml
file.
Start the local development environment:
This starts a local emulation of AWS Application Load Balancer at http://localhost:3000
. This will forward requests to your containers. Logs, requests and more from your containers will be available in the terminal. Your containers will auto-reload or rebuild on code changes.
Deploy to AWS:
The initial deployment creates AWS resources (ALB, VPC, etc.) and takes ~5-10 minutes. Subsequent deploys are faster.
Remove your deployment:
# Remove application only serverless remove # Remove all AWS resources including VPC serverless remove --force
aws sts get-caller-identity
serverless dev --debug
or serverless deploy --debug
Check out the Documentation for information on getting started, development, deployment, and more.
Serverless Container Framework FAQ How does SCF differ from Serverless Framework?Here's the concise FAQ in markdown format:
Serverless Container Framework FAQ How does SCF differ from Serverless Framework?Serverless Framework specializes in AWS Lambda deployments, while Serverless Container Framework (SCF) focuses on container-based deployments. Key SCF advantages:
SCF addresses specific needs:
While tools like Terraform and Pulumi offer container deployment capabilities, SCF provides a more comprehensive developer experience:
Compared to AWS Lambda:
Compared to other container tools:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4