Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Cloudformation:同时使用Fn::Join和Fn:GetAtt_Amazon Web Services_Aws Lambda_Amazon Cloudformation - Fatal编程技术网

Amazon web services Cloudformation:同时使用Fn::Join和Fn:GetAtt

Amazon web services Cloudformation:同时使用Fn::Join和Fn:GetAtt,amazon-web-services,aws-lambda,amazon-cloudformation,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我试图在Type:AWS::Lambda::EventSourceMapping的一个属性中定义值 下面是我的代码片段(最新尝试): 但是,我的云形成堆栈无法部署,出现以下错误: “StatusReason”:“模板错误:每个Fn::Join对象都需要两个参数,(1)字符串分隔符,(2)要连接的字符串列表或返回要连接的字符串列表(如Fn::GetAZs)的函数。” 我已经尝试了几个括号的变化,但不断得到相同的错误。我在语法中遗漏了什么 另外,我在yaml文件中定义了这一点,我的第一个问题是La

我试图在
Type:AWS::Lambda::EventSourceMapping的一个属性中定义值
下面是我的代码片段(最新尝试):

但是,我的云形成堆栈无法部署,出现以下错误:

“StatusReason”:“模板错误:每个Fn::Join对象都需要两个参数,(1)字符串分隔符,(2)要连接的字符串列表或返回要连接的字符串列表(如Fn::GetAZs)的函数。”

我已经尝试了几个括号的变化,但不断得到相同的错误。我在语法中遗漏了什么


另外,我在yaml文件中定义了这一点,我的第一个问题是LambdaName是否引用了可以与GetAtt一起使用以提供ARN的内容。否则,它可能只是一个格式问题。我不确定AWS CFN是否能够读取用于包装
Fn::GetAtt
的嵌入式花括号

也许其中一个会更好用

FunctionName:
  Fn::Join:
    - ':'
    - - Fn::GetAtt:
          - LambdaName
          - Arn
      - "live"

LambdaSourceMapping:
类型:AWS::Lambda::EventSourceMapping
特性:
启用:“真”
EventSourceArn:或
函数名:
Fn::加入:
- ':'
--Fn::GetAtt:
-羔羊名
-阿恩
-“活着”

LambdaName
只是一个占位符。它实际上引用了lambda。我相信我在第二个备选方案中就尝试过了,但之前对我来说没有效果。无论如何,使用第二种替代方法使用您的语法是有效的。谢谢太棒了,很高兴能帮上忙
FunctionName:
  Fn::Join:
    - ':'
    - - Fn::GetAtt:
          - LambdaName
          - Arn
      - "live"
FunctionName: !Join [':', [!GetAtt LambdaName.Arn, 'live]]
LambdaSourceMapping:
  Type: AWS::Lambda::EventSourceMapping
  Properties:
    Enabled: 'true'
    EventSourceArn: <SQS ARN> or <Kinesis ARN> or <DynamoDb ARN>
    FunctionName:
      Fn::Join:
      - ':'
      - - Fn::GetAtt:
          - LambdaName
          - Arn
        - 'live'