【发布时间】:2019-04-15 21:49:50
【问题描述】:
我将 Serverless Framework 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
serverless.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 部署它时,它会压缩整个项目并且不会分隔 lambda,因此 AWS 控制台中的实际 Lambda 显示为 hello_cat 但包含完整的项目结构而不是分隔每个 lambda 文件都在自己的目录中。
有没有办法在同一个项目中部署单独的 lambda,只有一个 serverless.yml?
提前致谢。
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda serverless-framework aws-step-functions