У меня есть набор yaml
шаблонов (один корневой шаблон и несколько дочерних) для создания корневого стека и вложенных стеков на верхнем уровне сегмента S3.Это выглядит следующим образом:
my-cf-templates-bucket (S3 bucket)
├ root.yaml
├ child1.yaml
├ child2.yaml
├ ...
└ childN.yaml
Чтобы предоставить TemplateURL
дочерних шаблонов, в настоящее время я использую параметр TemplateS3Bucket
для 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
и т. Д.) Получить URL-адрес корзины корневого шаблона S3, через который я создаю стек вКонсоль AWS CloudFormation (не aws-cli).
Имея такой способ, я мог бы иметь встроенный URL-адрес корзины для дочерних шаблонов, и мне не нужно ни добавлять их в качестве переопределяемых параметров, ни повторять полный URL-адрес корзины для всех свойств templateURL
дочерних стеков.