首页 > 解决方案 > 分别部署多个 AWS lambda

问题描述

我将无服务器框架 1.32.0 与 AWS Lambdas 和 Python 3.6 一起使用。我想以单独的方式部署多个 lambda,因为此时我只能为目录中的每个 lambda 一个一个地进行部署,这可能会在不久的将来与许多 lambda 混淆。

这是我目前的项目结构:

└── cat_service
    │   
    ├── hello_cat
    │   ├── hello_cat-functions.yml
    │   └── service.py
    │   
    ├── random_cat_fact
    │   ├── random_cat_fact-functions.yml
    │   └── service.py
    │   
    └── serverless.yml

无服务器.yml

service: cat-service 

provider:
  name: aws
  runtime: python3.6
  stage: dev
  stackName: cat-service
  deploymentBucket:
    name: test-cat-bucket
  role: arn:aws:iam::#{AWS::AccountId}:role/lambda-cat-role
  cfnRole: arn:aws:iam::#{AWS::AccountId}:role/cloudformation-cat-role

functions:
  - ${file(lambdas/hello_cat/hello_cat-functions.yml)}

stepFunctions:
  stateMachines:
    catStateMachine:
      definition:
        Comment: "Get cat hello"
        StartAt: hello_cat
        States:
          hello_cat:
            Type: Task
            Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-hello_cat"
            End: true

plugins:
  - serverless-step-functions
  - serverless-pseudo-parameters

hello_cat-functions.yml

msc_cat_facts:
  handler: service.handler
  name: ${self:service}-${opt:stage}-msc_cat_facts

问题是,当我serverless deploy --stage dev使用hello_cat.

有没有办法在同一个项目中部署单独的 lambda,只有一个serverless.yml

提前致谢。

标签: python-3.xamazon-web-servicesaws-lambdaserverless-frameworkaws-step-functions

解决方案


您需要将 Serverless 配置为单独打包

为此,将以下内容添加到您的serverless.yaml

package:
  individually: true

推荐阅读