В предыдущая часть Из этой серии мы знаем, как установить переменные среды
Внутри нашего лямбды.
В этой части я расскажу о том, как мы можем использовать переменные сцены API Gateway, лямбда -версию, псевдоним, переменная среды.
Мы должны сначала понять, как работает весь процесс, тогда мы можем легко создать это с помощью кода CDK.
Давайте представим этот сценарий
- У вас есть API, который будет использовать функцию лямбды
- Вы делаете функцию лямбды
- Эта функция будет в производстве, используемом пользователем реального мира
- Но вы также хотите отредактировать эту лямбду или постоянно разрабатывать новые вещи для этого Лямбда
- А что, если у вас есть ошибка при редактировании кода Lambda?
Тогда это повлияет на вас, пользователь реального мира, верно? Приложение будет сбоем, а затем уйдет пользователь, даст вам несколько неприятных отзывов. НЕ ХОРОШО! Можете ли вы представить, как больно и стресс при развитии таких вещей?
Тогда поэтому лямбда -версия и псевдоним пригодится.
Как Lambda версия
Работа? Представьте себе:
- Вы делаете функцию лямбды
- По умолчанию, каждая функция лямбда имеет
$ Последнее
Версия, именно здесь вы продолжаете редактировать/разрабатывать свой код, это только использование вами. - Когда все в порядке, вы публикуете новый
Версия
Для функции, давайте скажемВерсия: 1
Анкет Пользователь Real World будет доступ к этомуВерсия: 1
Анкет - Мы будем продолжать повторять процесс, который является кодом редактирования в
$ Последнее
, опубликовать новыйВерсия
Каждый раз, когда все в порядке для производства.
Делая это, вы продолжаете редактировать код в $ Последнее
, любые изменения в $ Последнее
не будет влиять на Версия: 1
, поэтому любая ошибка не будет раздражать вашему пользователю реального мира.
Теперь у вас есть 2 Версия
Для твоей лямбды, $ Последнее
и Версия: 1
, тогда как мы можем установить, что пользователь производства будет получить доступ к Версия: 1
и разработчик (США) будет получить доступ $ Последнее
?
Вот почему Лямбда псевдоним
пригодиться.
Процесс псевдоним и версия Похоже:
- Теперь нам нужно создать 2
псевдоним
Для нашего Lambda по именидевчонка
ипродлевать
Dev
псевдоним -> указывать на ->$ Последнее
версияProd
псевдоним -> указывать на ->Версия: 1
(или 2,3,4,5, зависит)
Псевдоним сделан, но теперь ваше приложение для фронта по -прежнему не знает, какая лямбда Версия
Чтобы получить доступ.
Вот почему apigateway StageVariables
Приходите в игру.
Теперь мы можем создать 2 Стадия
Для вашего API по имени девчонка
и продлевать
Это даст нам 2 URL, которые выглядят так:
- https://{app-id} .execute-api. {aws-region} .amazonaws.com/dev
- https://{app-id} .execute-api. {aws-region} .amazonaws.com/prod
Теперь установите Переменные сцены
Для каждой стадии API как:
Dev
Стадия:Lambdaalias: Dev
Prod
Стадия:Lambdaalias: Prod
Тогда весь процесс будет выглядеть так:
API dev stage -> Lambda dev alias -> Lambda `$Latest` version API prod stage -> Lambda prod alias -> Lambda `version:1`
Затем внутри функции Lambda мы вернем StageVariables
и используйте его с переменные среды
что мы встроили в предыдущая часть :
import boto3 import os def MyFirstLambdaHandler(event, context): client = boto3.client('dynamodb') # Get the stageVariable lambdaAlias stage = event['stageVariables']['lambdaAlias'] # Get the environment variable depends on stage variable if stage == 'prod': tableName = os.environ['production_db_url'] if stage == 'dev': tableName = os.environ['development_db_url'] # Then here you can access different table depends on environment
Теперь мы соединяем точки:
API dev -> Lambda dev alias -> Lambda version:$Latest -> environment variables API prod -> Lambda prod alias -> Lambda version:1 -> environment variables
Для резюме: TLDR, все в разработке остается в разработке, что не повлияет на производство.
Теперь у вас есть базовая концепция для лямбды Версия
, Псевдоним
, Apigateway Переменные сцены
и переменные среды.
Теперь вы знаете, как постоянно разрабатывать свою лямбду, но в то же время не будет fu ** ked Весь производственное приложение, когда при разработке произошла некоторая ошибка.
В следующей части сериала я расскажу:
- Как создать лямбда -версию с использованием cdk
- Как создать псевдоним лямбда и нажмите на разные версии лямбда с помощью CDK
- Как создать разные стадии развертывания шлюза API и установить переменные стадии с помощью CDK
Если вы не можете дождаться так долго, вот моя предыдущая работа по этой теме:
- Dev.to Comomon
- Так что вопрос я отвечаю
Прежде чем уйти, Если вам нравится этот сериал или вы найдете это полезным, чтобы купить мне кофе 😊🤞 за 5 долларов США или более. Я подготовлю репо Github для всей этой серии учебных пособий и договоримся от отдельного коммита для каждой части. Это будет доступно только для моего сторонника, потому что я потратил много времени, чтобы подготовить это. В любом случае, я ценю вас здесь. Хорошего дня.
Кричать мне в Твиттере: @upupkenchoong
Оригинал: “https://dev.to/upupkenchoong/concept-to-use-apigateway-stagevariables-lambda-version-alias-environment-variable-all-together-h8j”