aws cli lambda `update-function-configuration` удаляет существующие переменные окружения - PullRequest
0 голосов
/ 28 сентября 2018

Документация по AWS cil lambda гласит, что

...You provide only the parameters you want to change...

Что, как я предполагаю, означает, что остальные настройки остаются прежними.Однако, скажем, моя лямбда-функция имеет переменные окружения:

var1=old_val1

var2=old_val2

var3=old_val3

и затем, когда я пытаюсь что-то сделатьнапример:

aws lambda update-function-configuration --function-name dummy_fun --environment '{"Variables":{"var1":"new_val1","var2":"new_val2"}}'

с целью обновления переменных: var1 и var2 с новыми значениями new_val1 и new_val2 соответственно, хотя эти 2 переменные DO обновляются, но третья, var3 , удаляется!

Я что-то не так делаю?Или есть способ убедиться, что этого не произойдет?

Я могу определенно справиться с этим, используя обходной путь, при котором я могу получить текущую конфигурацию и затем обновить переменные env локально, а затем отправить всю обновленную конфигурацию,все это через код Python и т. д. Но это единственный способ сделать это?Или может быть более простой способ сделать это?

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

У меня была та же проблема, когда я хотел обновить только одну переменную env функции и не трогать остальные.

В итоге я написал скрипт в узле и опубликовал его:

https://www.npmjs.com/package/aws-lambda-update-env

Это довольно просто использовать:

update-lambda-env KEY "My New Test Value" --stack-name myApplicationStack

Это изменит только переменную KEY в функциях, расположенных в стеке myApplicationStack

Лучшим решением может быть использование AWS Parameter Store, если ваша переменная будет часто меняться.

https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html

0 голосов
/ 22 февраля 2019
aws lambda update-function-configuration --function-name my-function-name --environment Variables="{VAR1=variable_value, VAR2=variable_value}" 

Описание: вышеуказанная команда обновит переменные окружения для лямбда-функции в aws.

0 голосов
/ 28 сентября 2018

Вы неправильно истолковали намерения документации.

Вы предоставляете только те параметры, которые хотите изменить.

--environment - это (особый) "параметр", который вы указываете, который нужно изменить, а не отдельные переменные.

Переменные среды настроены en bloc так что нет концепции указания только определенных переменных среды, которые вы хотите отличать.

...