【问题标题】:Cloudformation nested stack outputs in yamlyaml中的Cloudformation嵌套堆栈输出
【发布时间】:2017-05-16 10:08:12
【问题描述】:

在我的嵌套堆栈中,我需要使用输出值,而 AWS::CloudFormation::Stack 将值返回为

Fn::GetAtt Outputs.NestedStackOutputName

但是yaml不允许我使用

!GetAtt MyResourceName.Outputs.MyOutputName

因为它试图将它们分成 3 块而不是它需要的 2 块。

我也尝试过使用

Value: "Fn::GetAtt": [ "MyResourceName", "Outputs.MyOutputName" ] 

然后我明白了

mapping values are not allowed here
  in "<string>", line 21, column 24:
        Value: "Fn::GetAtt": [ "MyResourceName", "Outputs.MyOutputName" ]

那么我应该如何使用它呢?我真的必须为此切换到json吗?

【问题讨论】:

    标签: amazon-web-services yaml amazon-cloudformation


    【解决方案1】:

    使用这两个堆栈对我有用:

    root.yml:

    AWSTemplateFormatVersion: '2010-09-09'
    Resources:
      MyNestedStack:
        Type: AWS::CloudFormation::Stack
        Properties:
          TemplateURL: https://s3.amazonaws.com/spg-test-bucket/cloudformation/nested.yml?versionId=HqlgDnuntMzkmK0398GPdJRUXMN_PMdn
      RootBucket:
        Type: AWS::S3::Bucket
        Properties:
          LoggingConfiguration:
            DestinationBucketName:
              Fn::GetAtt: [MyNestedStack, Outputs.NestedBucket]
    

    nested.yml:

    AWSTemplateFormatVersion: '2010-09-09'
    Resources:
      DataBucket:
        Type: AWS::S3::Bucket
        Properties:
          AccessControl: LogDeliveryWrite
    Outputs:
      NestedBucket:
        Value:
          Ref: DataBucket
    

    【讨论】:

    • 谢谢,这行得通。在语法方面确实缺乏 AWS 文档。
    【解决方案2】:

    您的问题是由于aws-cli 的自定义YAML-parsing code 中的known bug 最近作为aws cloudformation deployaws cloudformation package 命令的一部分添加的。

    该问题已在aws-cli 中的version 1.11.37 中修复。要解决此问题,您可以执行以下任一操作:

    • aws-cli 升级到 1.11.37 或更高版本。
    • 如果您不使用本地工件,请使用 aws cloudformation [create|update]-stack 而不是 aws cloudformation [package|deploy] 创建/更新您的堆栈。

    【讨论】:

    • 今天被提醒了这个问题,经过一番研究,我发现我的 aws cli 太旧了,这个问题已经解决了。
    • @Jeppz 啊,您从 aws cli 收到此错误的附加上下文(不是直接来自 CloudFormation,正如我所假设的那样)澄清了事情!更新了我的回答以描述情况。
    猜你喜欢
    • 2020-09-17
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多