代码之家  ›  专栏  ›  技术社区  ›  Costa Michailidis

如何在不删除环境变量的情况下向AWS Lambda添加环境变量?

  •  0
  • Costa Michailidis  · 技术社区  · 6 年前

    有没有一种方法可以在不删除已有环境变量的情况下向AWS Lambda函数添加新的环境变量?

    1 回复  |  直到 6 年前
        1
  •  3
  •   thomasmichaelwallace    6 年前

    使用Lambda控制台,您只需附加新的环境变量:

    enter image description here

    aws lambda update-function-configuration 允许您有选择地更新lambda的各个方面,但没有附加环境变量的辅助方法。你可以用 aws lambda get-function-configuration 得到

    例如:

    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();
    
        2
  •  1
  •   Lode    5 年前

    我成功地将其用作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