我正在运行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}
答案 0 :(得分:1)
如果无法确定值,则将变量作为这样的值返回。这可能是由于名称中的拼写错误,也可能是因为该变量没有与当前部署范围匹配的值。
例如,您可能具有为Prod而不是Dev定义的名为Foo
的变量的值。在Dev中运行部署时,您将获得#{Foo}
,但在Prod中,您将获得实际价值。
我使用的一种技术是提供诸如“ UnscopedFoo”之类的非范围值,然后,如果您看到该值,便知道您已正确输入名称,这是范围问题。如果不这样,则名称输入错误。
答案 1 :(得分:0)
如果未正确定义变量的范围,则将得到问题中指示的结果。
正确定义您的范围,环境,角色,渠道等,您的变量值将正确导入。