Развертывание нескольких лямбд AWS отдельно - PullRequest
0 голосов
/ 13 ноября 2018

Я использую 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 Ответ

0 голосов
/ 13 ноября 2018

Вам нужно будет настроить Serverless на пакет отдельно

Для этого добавьте к вашему serverless.yaml следующее:

package:
  individually: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...