Развертывание нескольких лямбд AWS по отдельности
Я использую Serverless Framework 1.32.0 с AWS Lambdas и Python 3.6. Я хотел бы развернуть несколько лямбд по-отдельности, поскольку в данный момент я могу выполнять развертывание по одному только для каждой лямбды в моем каталоге, что может привести к путанице со многими лямбдами в ближайшем будущем.
Это моя текущая структура проекта:
└── 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
, он архивирует весь проект и не разделяет лямбды, поэтому фактическая лямбда в консоли AWS отображается как hello_cat
но включает в себя полную структуру проекта вместо разделения каждого лямбда-файла в своем собственном каталоге.
Есть ли способ развернуть отдельные лямбды в одном проекте только с одним serverless.yml
?
Заранее спасибо.
1 ответ
Вам нужно будет настроить Serverless для индивидуальной упаковки
Для этого добавьте следующее к вашему serverless.yaml
:
package:
individually: true
Помимо включения в serverless.yml
, как предлагает @thomasmichaelwallace,:
package:
individually: true
Попробуйте изменить путь к вашей функции-обработчику на hello_cat-functions.yml изhandler: service.handler
кому:
msc_cat_facts:
handler: hello_cat/service.handler
name: ${self:service}-${opt:stage}-msc_cat_facts