AWS Create Lambda脚本参数输出为参数名称而非值

时间:2018-09-12 18:38:16

标签: aws-lambda octopus-deploy

我正在运行this Octopus community script以创建或更新lambda函数。

当我们对参数的值进行硬编码时,脚本将按公告的方式工作。但是,当我们定义要在参数中使用的变量时,它总是注入章鱼变量的名称而不是值。

这样,名为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} 

2 个答案:

答案 0 :(得分:1)

如果无法确定值,则将变量作为这样的值返回。这可能是由于名称中的拼写错误,也可能是因为该变量没有与当前部署范围匹配的值。

例如,您可能具有为Prod而不是Dev定义的名为Foo的变量的值。在Dev中运行部署时,您将获得#{Foo},但在Prod中,您将获得实际价值。

我使用的一种技术是提供诸如“ UnscopedFoo”之类的非范围值,然后,如果您看到该值,便知道您已正确输入名称,这是范围问题。如果不这样,则名称输入错误。

答案 1 :(得分:0)

如果未正确定义变量的范围,则将得到问题中指示的结果。

正确定义您的范围,环境,角色,渠道等,您的变量值将正确导入。