Как я могу встроить бессерверную пошаговую функцию / конечный автомат / лямбда в существующее приложение AWS CloudFormation ElasticBeanstalk? - PullRequest
1 голос
/ 31 мая 2019

Я написал сервис, используя функции шага AWS. Я хотел бы интегрировать это в наши приложения существующего процесса разработки Elastic Beanstalk, в котором у нас есть различные приложения для разработки, подготовки и производства. На каждом из этих этапов есть переменные среды, специфичные для приложения, которые я хотел бы также включить в свои функции Lambda.

В настоящее время я не использую SAM, но при необходимости могу портировать через него.

Ниже приведена упрощенная конфигурация, отражающая мой файл serverless.yml.

service:
  name: small-service

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

provider:
  name: aws
  runtime: nodejs8.10
  stage: dev
  region: us-east-2
  iamRoleStatements:
    - Effect: "Allow"
      Action:
       - "s3:*"
      Resource: { "Fn::Join": ["", ["arn:aws:s3:::S3-bucket-name", "/*" ] ] }

functions:
  connect:
    handler: handler.connect

stepFunctions:
  stateMachines:
    smallService:
      name: small-service-${self:provider.stage}
      definition:
        Comment: Service that connects to things
        StartAt: Connect
        States:
          Connect:
            Type: Task
            Resource: arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${self:provider.stage}-connect
            End: true

Как динамически развернуть пошаговые функции в различных приложениях beanstalk? Как получить доступ к свойствам среды ElasticBeanstalk из пошаговых функций?

Есть ли лучший способ динамического импорта переменных среды .env в приложение без сервера за пределами EB? Мы интегрируем сервис в более крупный рабочий процесс разработки приложений AWS, есть ли более «безсерверный» способ сделать это?

1 Ответ

1 голос
/ 07 июня 2019

Переместите переменные среды в SSM Parameter Store .Затем вы можете либо

  1. ссылочные параметры SSM в вашем serverless.yaml , либо
  2. получить параметры SSM в начале каждого вызова Lambda ( см.например, здесь )

Обратите внимание, что первый метод требует повторного развертывания Lambda для получения последних параметров SSM, тогда как последний всегда выбирает самые последние значения параметров.

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