由于文件太大,我决定使用我的docker镜像上传我的lambda express应用程序。
FROM public.ecr.aws/lambda/nodejs:20 COPY . ${LAMBDA_TASK_ROOT} RUN npm ci --production CMD [ "index.handler" ]
如何在我的无服务器yml中指定此映像?
org: projectname app: express service: deployments frameworkVersion: '3' provider: name: aws runtime: nodejs20.x timeout: 10 tracing: lambda: false functions: api: handler: index.handler name: express-api events: - httpApi: '*'
为此,您需要在您的提供商中配置AWS ECR,该ECR将在本地构建并上传到ECR。
首先在中配置提供程序 serverless.yml
serverless.yml
provider: name: aws runtime: nodejs20.x timeout: 10 tracing: lambda: false ecr: images: express_api: #image name path: ./
Dockerfile 和 无服务器.ml 必须位于同一根目录中。
Dockerfile
无服务器.ml
然后用image替换处理程序
functions: api: image: name: express_api command: - index.handler # this will replace command in docker file name: express-api events: - httpApi: '*'
Serverless doc