gpt4 book ai didi

amazon-web-services - 访问嵌套堆栈中父 Cloudformation 堆栈的名称

转载 作者:行者123 更新时间:2023-12-04 23:13:58 24 4
gpt4 key购买 nike

我正在使用结构如下的嵌套 Cloudformation 模板:

masterTemplate -> childA -> childB

每个 JSON 模板文件都存储在 S3 中,存储桶名称为“${masterStackName}-env-upload”。这在父模板中工作得很好,我可以简单地这样做:

"TemplateURL":  {
"Fn::Join": [
"",
[
"https://s3.amazonaws.com/",
{
"Ref": "AWS::StackName"
},
"-env-upload/device-specific-template-HALO-BUILD-VERSION.json"
]
]
},

但是,当 childA 尝试执行相同的操作来启动 childB 模板时,“AWS::StackName”将成为 childA 的生成名称 - 这意味着它正在尝试访问不存在的存储桶。

我的问题是:如何将主/父堆栈的名称传递给子堆栈?我尝试将其作为参数执行此操作,但参数值不允许使用“Ref”(因此我无法对该值执行“Ref”:“AWS::StackName”)。

感谢任何帮助!

最佳答案

实际上可以使用参数将父堆栈名称传递给子堆栈:

这是一个例子:

parent.yml

---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
ChildA:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: ...test/test-child-a.yml
Parameters:
ParentStackName: !Ref AWS::StackName

test-child-a.yml

---
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
ParentStackName:
Type: String
Resources:
TestBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Ref ParentStackName

关于amazon-web-services - 访问嵌套堆栈中父 Cloudformation 堆栈的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48121675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com