代码之家  ›  专栏  ›  技术社区  ›  Dev Scott

如何使用无服务器将我的docker镜像用于lambda函数?

  •  1
  • Dev Scott  · 技术社区  · 11 月前

    由于文件太大,我决定使用我的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: '*'
    
    1 回复  |  直到 11 月前
        1
  •  2
  •   Yuvaraj M    11 月前

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

    首先在中配置提供程序 serverless.yml

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

    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