gpt4 book ai didi

amazon-web-services - 安全组的 AWS Cloudformation 跨堆栈引用 - 错误

转载 作者:行者123 更新时间:2023-12-03 07:47:46 24 4
gpt4 key购买 nike

我有以下 2 个堆栈1) 堆栈 1 - 这是网络堆栈,定义 vpc、子网和安全组2) 堆栈 2 - 该堆栈定义 ec2 实例

网络堆栈导出如下

   WebServerSG:
Description : "Web Server Security Group"
Value: !GetAtt InstanceSecurityGroup.GroupId
Export:
Name: !Sub ${AWS::StackName}-WebServerSG

ec2实例堆栈接受参数“NetworkStack”并使用网络堆栈来引用安全组,如下所示

  "Resources" : {
"WebServerInstance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
{ "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] },
"InstanceType" : { "Ref" : "InstanceType" },
"SubnetId" : {"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStack}-SubnetADMZ"}},
"SecurityGroupIds" : {"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStack}-WebServerSG"}},
"KeyName" : { "Ref" : "KeyName" }
}
}
},

ec2 实例堆栈失败并出现错误“SecurityGroupIds 属性的值必须是字符串列表类型”

我尝试改用 SecurityGroups,但收到类似的错误

最佳答案

即使您只想指定 1 个安全组,CloudFormation 也需要一个列表。这里的解决方案是创建一个元素的列表,该元素是导入的安全组。在你的情况下,它看起来像这样(注意括号):

...
"SecurityGroupIds" : [{"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStack}-WebServerSG"}}],
...

关于amazon-web-services - 安全组的 AWS Cloudformation 跨堆栈引用 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180329/

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