Aws lambda AWS创建Lambda脚本参数输出为参数名称,而不是值
我正在运行创建或更新lambda函数 当我们对参数的值进行硬编码时,脚本将按照公布的方式工作。但是,当我们定义用于参数的变量时,它总是注入Octopus变量的名称而不是值 将名为Aws lambda AWS创建Lambda脚本参数输出为参数名称,而不是值,aws-lambda,octopus-deploy,Aws Lambda,Octopus Deploy,我正在运行创建或更新lambda函数 当我们对参数的值进行硬编码时,脚本将按照公布的方式工作。但是,当我们定义用于参数的变量时,它总是注入Octopus变量的名称而不是值 将名为AWS_Dash_OrderOnline_Lambda_Function_Name的变量作为值而非实际变量值读取为{AWS_Dash_OrderOnline_Lambda_Function_Name} 发生了什么,我需要改变什么 相关脚本代码如下: # Get the parameters. $functionName
AWS_Dash_OrderOnline_Lambda_Function_Name
的变量作为值而非实际变量值读取为{AWS_Dash_OrderOnline_Lambda_Function_Name}
发生了什么,我需要改变什么
相关脚本代码如下:
# Get the parameters.
$functionName = $OctopusParameters['FunctionName']
...
Write-Output $functionName
输出:
#{AWS_Dash_OrderOnline_Lambda_Function_Name}
如果您没有正确定义变量的范围,您将得到问题中所示的结果
正确定义您的范围、环境、角色、渠道等,您的变量值将正确导入。如果无法确定某个值,您将以如下方式获取变量值。这可能是因为名称输入错误,也可能是因为变量没有与当前部署范围匹配的值 例如,您可能为Prod定义了名为
Foo
的变量值,而不是为Dev定义的变量值。当您在Dev中运行部署时,您将获得{Foo}
,但在Prod中您将获得实际值
我使用的一种技术是提供一个UnscopedFoo之类的unscoped值,如果您看到该值,您就知道您已经正确输入了名称,这是一个范围问题。如果您没有输入,则名称输入不正确。Dude!我喜欢这个主意。伟大的命名大会。