【发布时间】:2020-09-22 21:05:17
【问题描述】:
有没有办法在不删除已经存在的环境变量的情况下向 AWS Lambda 函数添加新的环境变量?
(使用命令行工具,也就是。)
【问题讨论】:
标签: amazon-web-services aws-lambda
有没有办法在不删除已经存在的环境变量的情况下向 AWS Lambda 函数添加新的环境变量?
(使用命令行工具,也就是。)
【问题讨论】:
标签: amazon-web-services aws-lambda
使用 Lambda 控制台,您可以添加新的环境变量:
使用 CLI 更难 - aws lambda update-function-configuration 允许您有选择地更新 lambda 的各个方面,但没有辅助方法来附加环境变量。您可以使用aws lambda get-function-configuration 获取当前 环境变量列表。它可以与一些 bash/powershell 脚本(或使用匹配的 SDK 函数选择的语言)结合使用。
例如:
const AWS = require('aws-sdk');
const lambda = new AWS.lambda();
const FunctionName = 'FUNCTION_NAME';
const AppendVars = { key: value };
async function appendVars() {
const { Environment: { Variables } } = await lambda.getFunctionConfiguration({ FunctionName }).promise();
await lambda.updateFunctionConfiguration({
FunctionName,
Environment: { Variables: { ...Variables, ...AppendVars } },
}).promise();
}
appendVars();
【讨论】:
我成功地将其用作 bash 脚本。
lambda 函数的名称来自一个参数。我的目标是简单地更改一个变量,以便重新启动 lambda 函数。
LAMBDA=$1
CURRENTVARIABLES=$(aws lambda get-function-configuration --function-name $LAMBDA | jq '.Environment.Variables')
NEWVARIABLES=$(echo $CURRENTVARIABLES | jq '. += {"kick":"'$(getrandom 8)'"}')
COMMAND="aws lambda update-function-configuration --function-name $LAMBDA --environment '{\"Variables\":$NEWVARIABLES}'"
eval $COMMAND
【讨论】: