AWS Create Lambda 脚本参数输出为参数名称,而不是值

AWS Create Lambda script parameters output as parameter name, not value

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

当我们对参数值进行硬编码时,脚本会像宣传的那样工作。然而,当我们定义在参数中使用的变量时,它总是注入 Octopus 变量的名称而不是值。

这样一个名为 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 而不是 Dev 定义了名为 Foo 的变量值。当您 运行 部署到 Dev 时,您将获得 #{Foo} 但在 Prod 中,您将获得实际值。

我使用的一种技术是提供一个无范围的值,例如 "UnscopedFoo",然后如果您看到该值,您就知道您输入的名称是正确的,这是一个范围问题。如果不这样做,则名称输入不正确。