amazon-web-services - Cloudformation:同时使用 Fn::Join 和 Fn:GetAtt
问题描述
我正在尝试在Type: AWS::Lambda::EventSourceMapping
下面的属性之一中定义值是我的片段(最新尝试):
FunctionName: #trigger the echo function previously defined
"Fn::Join": [":", [{"Fn::GetAtt" : ["LambdaName", "Arn"]}, "live" ]]
但是,我的云形成堆栈无法部署并出现以下错误:
"StatusReason": "Template error: every Fn::Join object requires two parameters, (1) a string delimiter and (2) a list of strings to be joined or a function that returns a list of strings (such as Fn::GetAZs) to be joined."
我已经尝试了几种使用括号的变体,但是不断收到相同的错误。我在语法中缺少什么?
PS我在一个yaml文件中定义这个
解决方案
我的第一个问题是 LambdaName 是否引用了可以与 GetAtt 一起使用以提供 ARN 的东西。否则,它可能只是格式问题。我不确定 AWS CFN 是否可以读取您用来包装Fn::GetAtt
.
也许其中之一会更好?
FunctionName:
Fn::Join:
- ':'
- - Fn::GetAtt:
- LambdaName
- Arn
- "live"
或者
FunctionName: !Join [':', [!GetAtt LambdaName.Arn, 'live]]
推荐阅读
- mysql - 尝试从 mysql-master (Kubernetes) 克隆数据 (XtraBackup) 时连接被拒绝
- javascript - 在映射函数期间将 Unix 时间戳转换为 React 中的日期
- assembly - 当您提前知道路径时,是否可以“跳过”分支预测器?
- android - Google Analytics(分析)不显示超过 3 天的数据
- sql - 传递给 LEFT 或 SUBSTRING 函数的长度参数无效。错误
- networking - 如何使用 http 或其他应用层协议检测数据包?
- cmake - 如何从 CLI 运行 QtQuick 应用程序?
- c - fread()\fscanf() 提前读取 EOF
- java - 将二维数组中每列的所有元素相加
- java - Java等待输入密钥解决方案不起作用