AWS – лямбда-версии для разных этапов шлюза?
Исходя из «классической/стандартной» разработки, я привык иметь разные этапы развертывания, например, промежуточный и производственный, каждый из которых имеет свою версию приложения.
Функции AWS Lambda и API Gateway пугают меня тем, как обращаться с версиями и выпусками, и, возможно, это потому, что я пытаюсь сделать это неправильным способом, как это должно быть на AWS.
Лямбда-функции могут иметь как версии, так и псевдонимы, в то время как шлюзы могут иметь этапы, поэтому я ожидаю, что у меня будет псевдоним, указывающий на производственную версию функции, и псевдоним, указывающий на промежуточную версию, и каждый из них будет вызываться. один и тот же ресурс шлюза на двух этапах, например:
Но похоже, что этапы шлюза API не могут вызывать разные псевдонимы и версии лямбда-функций, единственное, что я могу переопределить в ресурсе этапа, — это только CloudWatch и настройки регулирования.
Возможно, я что-то упускаю в этом аспекте разработки на AWS, может ли кто-нибудь указать мне правильное направление?
Чтобы внести ясность: я подхожу к разработке AWS с помощью vscode и aws/sam cli, все, что нужно сделать с помощью веб-интерфейса, мне кажется неправильным, даже если я осознаю, что могут быть технические/логические/бизнес-ограничения если бы это было сделано именно так, поэтому я бы предпочел ответы, включающие генерацию кода или команды cli, если это возможно.
Обновление №1
Как предложил @Purefan в своем комментарии, раздел документации « Работа с этапами для HTTP API» объясняет, как использовать переменные этапов для ссылки на разные версии/псевдонимы лямбда на каждом этапе шлюза. Проблема в том, что я не смог создать свой
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
Я откатился к созданию его из веб-консоли, но теперь кажется, что любой