AWS – лямбда-версии для разных этапов шлюза?

Исходя из «классической/стандартной» разработки, я привык иметь разные этапы развертывания, например, промежуточный и производственный, каждый из которых имеет свою версию приложения.

Функции AWS Lambda и API Gateway пугают меня тем, как обращаться с версиями и выпусками, и, возможно, это потому, что я пытаюсь сделать это неправильным способом, как это должно быть на AWS.

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

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

Возможно, я что-то упускаю в этом аспекте разработки на AWS, может ли кто-нибудь указать мне правильное направление?

Чтобы внести ясность: я подхожу к разработке AWS с помощью vscode и aws/sam cli, все, что нужно сделать с помощью веб-интерфейса, мне кажется неправильным, даже если я осознаю, что могут быть технические/логические/бизнес-ограничения если бы это было сделано именно так, поэтому я бы предпочел ответы, включающие генерацию кода или команды cli, если это возможно.

Обновление №1

Как предложил @Purefan в своем комментарии, раздел документации « Работа с этапами для HTTP API» объясняет, как использовать переменные этапов для ссылки на разные версии/псевдонимы лямбда на каждом этапе шлюза. Проблема в том, что я не смог создать свойпсевдоним функции, указывающий на последнюю версию из sam cli:

      aws lambda create-alias --function-name test-hello-world --name staging --function-version $LATEST 

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument --function-version: expected one argument

Я откатился к созданию его из веб-консоли, но теперь кажется, что любойиз cli перезапишите ссылку на псевдоним (имя функции + переменная стадии) в ресурсе шлюза, вероятно, из-за отсутствия этой конфигурации в моем локальном «template.yaml».

0 ответов

Другие вопросы по тегам