Как правильно обращаться со средами при использовании AWS API Gateway + lambda? - PullRequest
1 голос
/ 07 января 2020

Давайте предположим, что я хочу иметь двухступенчатую среду для некоторых REST API - prod и staging, и я использую lambda + api gateway. Как правильно его настроить?

На мой взгляд, обе среды должны использовать одну и ту же функцию Lambda, но разные их версии. Каждая среда должна использовать свою конфигурацию (указывающую на разные базы данных или предоставляющую различный набор флагов функций и т. Д. c), и лучший способ предоставить конфигурацию - это переменные env.

Но Этапы в API-шлюзе не поддерживают это, единственное, что там есть, - переменные этапа , и я не могу понять, как я могу использовать их для «подачи» различных конфигураций в одну и ту же лямбду.

Так как это должно быть сделано?

1 Ответ

0 голосов
/ 07 января 2020

Вы можете указать Лямбда-версия с псевдонимами в ARN, если вы установите ее в API Gateway. Например:

  • staging - arn:aws:lambda:aws-region:acct-id:function:helloworld:$LATEST
  • prod - arn:aws:lambda:aws-region:acct-id:function:helloworld:stable

И использовать эти ARN для разных этапов в API Gateway .

Также, как правило, для разных этапов стоит иметь отдельные учетные записи в AWS Организации и развертывать аналогичный или один и тот же стек CloudFormation для этих учетных записей в конвейере интеграции.

...