GitHub Action for deploying API servers on AWS Lambda using AWS SAM (Serverless Application Model). This action provides a simple way to deploy your API server with AWS Lambda. Based on AWS SAM, it supports CloudFront integration and custom domain configuration with minimal setup.
- name: Configure AWS credentials 🔑
uses: aws-actions/configure-aws-credentials@main
with:
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
aws-region: ${{ vars.AWS_REGION }}
- uses: deploy-actions/lambda-api@v1
with:
Name: my-api
CodeUri: ./dist
Handler: index.handler
Environment: |
Variables:
STAGE: production| Name | Description | Mandatory |
|---|---|---|
| Name | AWS::Serverless::Function FunctionName and Cloudformation LambdaAPI-{Name} |
✅ |
| SAMSourceBucket | AWS S3 bucket where artifacts referenced in the template are uploaded | |
| SAMToken | GitHub Authentication token for API calls | |
| Architectures | Lambda function architecture (x86_64, arm64) | |
| AutoPublishAliasAllProperties | Properties for auto-publishing new versions | |
| CodeUri | Path to your Lambda function code | |
| Description | Description of your Lambda function | |
| Environment | Environment variables for your Lambda function | |
| EphemeralStorage | Size of the /tmp directory | |
| Cors | CORS configuration for Lambda URL | |
| InvokeMode | Lambda URL invoke mode (BUFFERED or RESPONSE_STREAM) | |
| Handler | Lambda function handler | |
| ImageConfig | Container image configuration | |
| ImageUri | URI of container image | |
| InlineCode | Inline function code | |
| KmsKeyArn | KMS key ARN for Lambda function | |
| Layers | List of Lambda Layer versions | |
| LoggingConfig | Lambda function logging configuration | |
| MemorySize | Memory size in MB | |
| Policies | IAM policies for Lambda function | |
| ProvisionedConcurrencyConfig | Provisioned concurrency configuration | |
| ReservedConcurrentExecutions | Reserved concurrent executions | |
| Runtime | Lambda function runtime | |
| RuntimeManagementConfig | Runtime management configuration | |
| Timeout | Function timeout in seconds | |
| VersionDescription | Description for this version | |
| VpcConfig | VPC configuration | |
| Aliases | CloudFront distribution aliases (domain names). Required with AcmCertificateArn and HostedZoneId | |
| AcmCertificateArn | ACM certificate ARN for custom domain. Required with Aliases and HostedZoneId | |
| HostedZoneId | Route 53 hosted zone ID. Required with Aliases and AcmCertificateArn |
| Name | Description | Optional |
|---|---|---|
| DomainName | The domain name of the resource, such as example.com |