aws-lambda - 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}
解决方案
如果无法确定值,您将像这样将变量作为值返回。这可能是因为名称中的拼写错误,或者可能是没有与当前部署范围匹配的变量值。
例如,您可能有一个名为Foo
为 Prod 而不是为 Dev 定义的变量的值。当你在 Dev 中运行部署时,你会得到#{Foo}
,但在 Prod 中你会得到实际值。
我使用的一种技术是提供诸如“UnscopedFoo”之类的无范围值,然后如果您看到该值,您就知道您输入了正确的名称,这是一个范围问题。如果不这样做,则名称输入不正确。
推荐阅读
- python-3.x - 如何制作产生变量的函数
- nuget - Nuget 包版本控制/更新策略
- python - Python:BeautifulSoup UnboundLocalError
- java - 在Java中,当我像“final static int a;”一样声明一个变量final static时,是受保护的还是公共的?
- mysql - 更新mysql时如何通过`grep`找到不兼容的脚本?
- javascript - 对javascript中的高阶函数感到困惑
- java - 尝试节省内存是否有意义?
- python - 如何在 python 中从 Web 抓取的数据中写入 csv 文件
- python-3.x - Python3 字符串问题
- java - 尝试从多种方法获取信息