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

问题描述 投票:0回答:2

我正在运行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} 
aws-lambda octopus-deploy
2个回答
1
投票

如果无法确定值,您将把变量作为这样的值返回。这可能是因为名称中存在拼写错误,或者可能是与当前部署范围匹配的变量没有值。

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

我使用的一种技术是提供像“UnscopedFoo”这样的非范围值,然后如果你看到这个值,你知道你已经正确输入了名称,这是一个范围问题。如果不这样,则输入的名称不正确。


0
投票

如果您没有正确定义变量的范围,您将获得问题中指示的结果。

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

© www.soinside.com 2019 - 2024. All rights reserved.