我如何使用无服务器的 docker 镜像来实现 lambda 函数?

问题描述 投票:0回答:1

由于文件大小较大,我决定使用 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: '*'
node.js docker aws-lambda serverless
1个回答
0
投票

为此,您需要在提供商中配置 AWS ECR,它将在本地构建并上传到 ECR。

首先在

serverless.yml

中配置provider
provider:
  name: aws
  runtime: nodejs20.x
  timeout: 10
  tracing:
    lambda: false
  ecr:
    images:
      express_api: #image name
        path: ./

Dockerfile
serverless.yml
必须位于同一根目录中。

然后用图像替换处理程序

functions:
  api:
    image:
      name: express_api
      command:
        - index.handler # this will replace command in docker file
    name: express-api
    events:
      - httpApi: '*'

无服务器文档

© www.soinside.com 2019 - 2024. All rights reserved.