Как указать этап шлюза AWS API на определенный псевдоним лямбда-функции? - PullRequest
0 голосов
/ 02 января 2019

В соответствии с документацией AWS

Вместо использования Amazon Resource Names (ARNs) для лямбда-функции в сопоставления источника событий, вы можете использовать псевдоним ARN. Этот подход означает что вам не нужно обновлять сопоставления источника событий, когда вы продвижение новой версии или откат к предыдущей версии.

У меня есть AWS лямбда-функция pets, и я создал 2 псевдонима dev и prod, указывающих на разные версии лямбда-функции.

Затем в API Gateway я использую эту лямбда-функцию в Integration Request. У меня есть два этапа API, development и production. Я хочу, чтобы development API этап указывал на dev лямбда-псевдоним ARN, а production должен указывать на prod псевдоним.

Когда я выбираю лямбда-функцию в качестве Integration Type, в раскрывающемся списке отображается любое отображаемое имя, которое я дал ранее при создании лямбда-функции .. enter image description here

Я не нахожу какой-либо конкретной конфигурации для лямбда-функции. Основываясь на моих исследованиях SO, я должен выполнить следующие шаги для развертывания development stage, указывающего на dev alias

1> Перейти к Integration Request
2> Выберите функцию лямбда и измените ее на pets:dev
3> Развертывание на development stage

Выполните те же шаги для production, изменив функцию Lambda на pets:prod перед развертыванием.

Это будет кошмаром обслуживания по мере роста нашей лямбда-функции. Есть ли более простой способ сделать это?

1 Ответ

0 голосов
/ 02 января 2019

Я нашел его
https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/

Вот шаги, которые я выполнил:

  1. После создания лямбда-функции создайте 2 псевдонима для лямбда-функции.dev указывает на $latest версию и prod указывает на конкретную версию, которую вы хотите использовать в prod
  2. Затем перейдите в консоль API Gateway -> Запрос интеграции -> Лямбда-функция и введите pets:${stageVariables.lambdaAlias} где pets - это имя моей функции, а lambdaAlias - переменная этапа, которую мы должны будем добавлять на каждом этапе API
  3. Развертывание вашего API на новых этапах API development и production
  4. На каждом этапе API добавьте переменную этапа lambdaAlias со значениями dev и prod соответственно.Значение переменной stage должно совпадать с псевдонимом лямбда-функции

enter image description here

Теперь нам не нужно постоянно менять имя лямбда-псевдонима для каждого развертывания API

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