首页 > 解决方案 > AWS 创建 Lambda 脚本参数输出为参数名称,而不是值

问题描述

我正在运行这个 Octopus 社区脚本来创建或更新 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-lambdaoctopus-deploy

解决方案


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

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

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


推荐阅读