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",然后如果您看到该值,您就知道您输入的名称是正确的,这是一个范围问题。如果不这样做,则名称输入不正确。
我 运行 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",然后如果您看到该值,您就知道您输入的名称是正确的,这是一个范围问题。如果不这样做,则名称输入不正确。