Можно ли указать переменную env в SAM, чтобы она была доступна в коде функции Lambda (python)? Мне нужно установить другое значение для переменной для стадий развертывания. Я могу установить переменную env в файле шаблона (yml), но не знаю, как определить ее для разных сред (dev, prod).
Я использую AWS SAM для развертывания Lambda. У меня есть файл template.yml, в котором определена функция Lambda. Это позволяет установить переменную env в теге Environment > Variables. Но переменная, которую я хочу установить, отличается для различных сред. Консоль AWS Lambda позволяет мне изменить переменную env после развертывания. Но я хочу, чтобы это было автоматизировано во время самого развертывания.






Вы можете установить переменную среды через параметр шаблона:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Parameters:
Stage:
Type: String
AllowedValues:
- dev
- prod
Globals:
Function:
Environment:
Variables:
STAGE: !Ref Stage
Затем в процессе развертывания передайте параметр Stage при создании/обновлении стека из шаблона SAM. Например, если вы делаете это через CLI, используйте --parameters ParameterKey=Stage,ParameterValue=prod.
Как мы используем CLI для передачи нескольких параметров?
Привет @Milan, спасибо за предоставленное выше решение. У меня есть аналогичная установка, где я использую CodeCommit и Codepipeline, используя AWS SAM для развертывания своих лямбда-функций. Мой вопрос: как мы будем использовать переменные параметров, определенные для разных сред в конвейере кода?
Как вы выполняете развертывание в средах разработки и производства?