Установлены ли переменные среды до или после развертывания кода функции Lambda? - PullRequest
0 голосов
/ 04 января 2019

У нас есть лямбда-функции, которые полагаются на значения, установленные в переменных окружения Lambda, и мы внедряем оба из них с помощью Terraform. Иногда нам нужно изменить код и добавить новые переменные окружения, которые ему требуются. Существуют различные вызовы API AWS для обновления кода функции Lambda и конфигурации функции, поэтому мы предполагаем, что это разные действия.

Кто-нибудь знает, в каком порядке выполняются два действия?

Если переменные среды заданы первыми, то предположительно новые контейнеры могут быть добавлены с новыми переменными и старым кодом. Если все наоборот, то может случиться, что новый код потерпит неудачу, потому что ожидаемые env-переменные отсутствуют.

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

1 Ответ

0 голосов
/ 04 января 2019

Конфигурация обновляется перед кодом функции во время обновления.

Вы можете убедиться в этом сами, посмотрев исходный код ресурса aws_lambda_function и увидев порядок относительных вызовов API в методе resourceAwsLambdaFunctionUpdate.

Обновление конфигурации происходит в строке 763 , тогда как обновление кода функции происходит в строке 818 .

...