【问题标题】:Get the bucket url of Cloudformation template获取 Cloudformation 模板的桶 url
【发布时间】:2019-08-28 04:14:04
【问题描述】:

我有一组 yaml 模板(一个根模板和几个子模板)用于在 S3 存储桶的顶层创建根堆栈和嵌套堆栈。它看起来像:

my-cf-templates-bucket (S3 bucket)
├ root.yaml
├ child1.yaml
├ child2.yaml
├ ...
└ childN.yaml

为了提供子模板的TemplateURL,目前我使用一个参数TemplateS3Bucket作为bucket URL:

Parameters:
  TemplateS3Bucket:
    Description: The bucket url for templates
    Type: String
    Default: https://s3.eu-central-1.amazonaws.com/my-cf-templates-bucket
Resources:
  ChildStack1:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: !Join ["/", [ !Ref TemplateS3Bucket, "child1.yaml"]]
      Parameters:
        ProjectName: !Ref ProjectName
  ChildStack1:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: !Join ["/", [ !Ref TemplateS3Bucket, "child2.yaml"]]
      Parameters:
        ProjectName: !Ref ProjectName
  # ...
  ChildStackN:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: !Join ["/", [ !Ref TemplateS3Bucket, "childN.yaml"]]
      Parameters:
        ProjectName: !Ref ProjectName

问题是:

有没有办法(!GetAtt 等)获取 S3 根模板的 bucket URL,我通过它在 AWS CloudFormation 控制台(不是 aws-cli)中创建堆栈。

通过这种方式,我可以从本质上获得子模板的存储桶 url,既不需要将它们添加为可覆盖的参数,也不需要为子堆栈的所有 templateURL 属性重复完整的存储桶 url。

【问题讨论】:

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


    【解决方案1】:

    我不知道。将模板的 S3 存储桶作为参数传递似乎是标准/最常见的处理方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-19
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2020-09-02
      • 2023-04-11
      • 2021-08-08
      相关资源
      最近更新 更多