Chalice deployment fails due to large package size
- Dominant language
- Python
- Stars
- 11.1k
- Forks
- 1k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 2
Description
### Description
My Chalice application is failing to deploy due to the deployment package exceeding the 50MB limit for Lambda functions. The application includes Langchain packages for data processing, which contribute to the large package size.
### Current Configuration
My `config.json` for the Chalice application:
```json
{
"app_name": "my-app-name",
"automatic_layer": true,
"stages": {
"prod": {
"api_gateway_stage": "api",
"environment_variables": {},
"iam_role_arn": "r",
"manage_iam_role": false,
"lambda_memory_size": 3008,
"lambda_timeout": 900
},
"staging": {
"api_gateway_stage": "api",
"environment_variables": {},
"iam_role_arn": "r",
"log_level": "DEBUG",
"manage_iam_role": false,
"lambda_memory_size": 3008,
"lambda_timeout": 900
}
},
"version": "2.0"
}
```
### Error Message
```
chalice.deploy.deployer.ChaliceDeploymentError: ERROR - While sending your chalice handler code to Lambda to
publish_layer_version function "my-fucntion-name-layer",
received the following error:
An error occurred (RequestEntityTooLargeException) when calling the
PublishLayerVersion operation: Request must be smaller than 70167211 bytes for
the PublishLayerVersion operation
This is likely because the deployment package is 51.0 MB. Lambda only allows
deployment packages that are 50.0 MB or less in size. To avoid this error,
decrease the size of your chalice application by removing code or removing
dependencies from your chalice application.
```
### Question
How can I create multiple layers for my Lambda function to support deployments larger than 50MB? I'm using Langchain packages for data processing, which are contributing to the large package size.
### Additional Information
- The current deployment package size is 51.0 MB
- Lambda's size limit is 50.0 MB
- I'm using Langchain packages for data processing
### What I've Tried
- I've enabled `automatic_layer: true` in the config, but it doesn't seem to solve the issue
Contributor guide
Research direction
Start by tracing Chalice's deployment path around chalice.deploy.deployer.ChaliceDeploymentError and the PublishLayerVersion operation. Review config.json handling for automatic_layer and the reported 50 MB package limit, then determine what a supported multi-layer deployment would need to do and how completion could be verified with a deployment test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100