AWS cil lambda上的文档指出
...You provide only the parameters you want to change...
我认为这意味着其余设置将保持不变。 但是,说我的lambda函数具有环境变量:
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 ,尽管这两个变量 DO 得到更新,但是第三个 var3 被删除!
我做错什么了吗?还是有办法确保这种情况不会发生?
我绝对可以使用一种变通方法来处理它,在此方法中,我可以获取当前配置,然后在本地更新env变量,然后通过python代码等推送所有更新的配置。 但是,那是唯一的方法吗?还是可以有一种更简单的方法?
答案 0 :(得分:3)
您误解了文档的意图。
您仅提供要更改的参数。
"Successful Delete"
是您要更改的(单个)“参数”,而不是单个变量。
环境变量已被整体配置 ,因此没有概念仅指定您希望与众不同的某些环境变量。
答案 1 :(得分:1)
我遇到了同样的问题,我只想更新一个函数的一个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
答案 2 :(得分:1)
aws lambda update-function-configuration --function-name my-function-name --environment Variables="{VAR1=variable_value, VAR2=variable_value}"
描述:以上命令将更新aws中lambda函数的环境变量。