Amazon web services 共享来自嵌套堆栈的输出
我有一个父堆栈,它调用两个嵌套堆栈,我需要将这些嵌套堆栈的值导入父堆栈。例如: 嵌套堆栈:Amazon web services 共享来自嵌套堆栈的输出,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我有一个父堆栈,它调用两个嵌套堆栈,我需要将这些嵌套堆栈的值导入父堆栈。例如: 嵌套堆栈: "Outputs": { "TargetGroup":{ "Value": { "Ref": "ggTG" }, "Export": { "Name": { "Fn::Sub": "${AWS::StackName}-TargetGroup"
"Outputs": {
"TargetGroup":{
"Value": {
"Ref": "ggTG"
},
"Export": {
"Name": {
"Fn::Sub": "${AWS::StackName}-TargetGroup"
}
}
},
}
当我执行所有嵌套堆栈时,我在子堆栈中获得这些输出,但我希望在父堆栈中获得这些输出,以便从另一个独立堆栈访问
这是因为如果我在另一个独立堆栈中导入,我不能使用嵌套的名称,因为它是在运行时创建的
堆栈导入:
"TargetGroupARN" : {"Fn::ImportValue" : {"Fn::Sub" : "${StackName}-TargetGroup"}}
正如我所说,我只知道父堆栈的名称,因此我必须从父堆栈导出,而不是在子堆栈中导出。从中,似乎可以引用嵌套堆栈的输出,如下所示:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"myStack" : {
"Type" : "AWS::CloudFormation::Stack",
"Properties" : {
"TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template",
"TimeoutInMinutes" : "60"
}
}
},
"Outputs": {
"StackRef": {"Value": { "Ref" : "myStack"}},
"OutputFromNestedStack" : {
"Value" : { "Fn::GetAtt" : [ "myStack", "Outputs.BucketName" ] }
}
}
}
因此,只需在嵌套堆栈中使用普通输出(无需导出),然后从顶层堆栈中引用它。如果您遇到上述问题,请告诉我,我将尝试创建一些使用此方法的示例嵌套堆栈。