Overview
Due to the limits of SCF, only code packages below 50 MB in size can be uploaded currently. If your project is too large, you can put dependencies in layers instead of the deployment package to reduce the package size. For specific usages of layers, please see Operations. Directions
Creating layer
You can create a layer and upload dependencies in the following two ways:
Use the Layer component of Serverless Framework (for more information, please see Layer Component) Using layer
You can use layer deployment in project configuration in the following two ways: console configuration and local configuration.
Configuring in console
For applications in the Node.js framework, Serverless Framework will automatically create a layer named ${appName}-layer
and upload the application dependency node_modules
to this layer.
When importing an existing project, you can also choose to create a layer or use an existing layer for deployment. If you create a layer, Serverless Framework will automatically upload the application dependency node_modules
to this layer.
Note:
The layer creation operation is supported only for the Node.js framework. When using a layer in other frameworks, please make sure that the layer has already been created and the relevant dependencies have been uploaded to the layer.
Configuring through Layer component
1. The Next.js component is used as an example here. Adjust the local project directory, add a layer
folder, and create a serverless.yml file to configure the layer name and version. The .yml
template is as follows:
app: appDemo
stage: dev
component: layer
name: layerDemo
inputs:
name: test
region: ap-guangzhou
src: ../node_modules
runtimes:
- Nodejs10.14
The updated directory structure is as follows:
.
├── node_modules
├── src
│ ├── serverless.yml
│ └── index.js
├── layer
│ └── serverless.yml
└── .env
2. Open the project configuration file, add the layer configuration item, and import the output of the Layer component as the input of the project configuration file. The template is as follows:
app: appDemo
stage: dev
component: nextjs
name: nextjsDemo
inputs:
src:
src: ./
exclude:
- .env
region: ap-guangzhou
runtime: Nodejs10.15
apigatewayConf:
protocols:
- http
- https
environment: release
layers:
- name: ${output:${stage}:${app}:layerDemo.name} # Layer name
version: ${output:${stage}:${app}:layerDemo.version} # Version
3. In the project root directory, run sls deploy
to complete layer creation and use the output of the Layer component as the input of the Next.js component to configure the layer.
Was this page helpful?