Как использовать переменные этапа в API gateway для указания на различные лямбда-функции в бессерверной среде

#aws-lambda #aws-api-gateway #serverless-framework

#aws-lambda #aws-api-gateway #Бессерверная платформа

Вопрос:

Я пытался автоматизировать свое бессерверное развертывание и нашел эту статью о том, как вы можете использовать переменные этапа для указания на различные функции. Я подумал, что это здорово и сделало бы этапы полезными. Однако я не могу найти никакой документации по этому из serverless.com и было интересно, как другие решили эту проблему. Наш резервный план состоит в том, чтобы изменить путь, по которому он развертывается, вместо использования этапов.

Ответ №1:

Вероятно, это не тот ответ, который вы ищете, но ребята из Serverless.com не рекомендую использовать встроенные этапы API Gateway, так как это может очень быстро привести к беспорядку. Я пытался найти, где они однажды это заявили, но я не смог найти это сейчас (но это наверняка было на их форумах).

Поскольку я пошел (вероятно) тем же путем, что и вы, я в конечном итоге отказался от использования встроенных сред API Gateway и вместо этого использовал среды Serverless. Это означает, что вы создадите N Api-шлюзов и N функций, где N представляет один этап. В моем случае это всегда /dev, /test и /prod, но у вас может быть больше.

Я не могу рекомендовать вам достаточно прочитать эту главу: Этапы в бессерверной среде, чтобы подробнее ознакомиться с этапами и посмотреть, хотите ли вы пойти по тому же пути, что и я.

Короче говоря: использование встроенных этапов API Gateway сложнее в управлении, потому что можно легко испортить роли IAM, забыв изменить путь в URI (/dev, /test /, /prod). Использовать этапы бессерверной платформы намного проще, потому что вы можете развертывать разные среды в разных учетных записях, проще управлять ролями IAM и очень маловероятно, что кто-то напутает с самими URL-адресами, поскольку у вас будет другой URL для каждого этапа. Вы также можете установить конечные точки, зависящие от этапа, если хотите (/metrics, /logs). Этот список можно продолжать и дальше, но вы понимаете, какую гибкость вы получаете, развертывая каждый этап независимо.

Комментарии:

1. Да, это не совсем то, что я искал. Мы пытаемся использовать этапы не для рекламных акций, а для нашего процесса разработки, чтобы у нас могло быть несколько разработчиков в разных ветвях и использовать общий api

2. Я понимаю. Извините, это было не то, что вы искали