【发布时间】:2018-12-13 06:54:46
【问题描述】:
我有以下 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,但收到类似错误
【问题讨论】:
-
有关专业服务器或网络相关基础设施管理的问题对于 Stack Overflow 来说是无关紧要的,除非它们直接涉及编程或编程工具。您可以通过Server Fault 获得帮助。
-
@tambre 我认为像 CloudFormation 这样的“基础架构即代码 (IaC)”工具是个例外。它明显模糊了传统 IT(Serverfault)和编程(StackOverflow)之间的界限。有一件事是肯定的,“amazon-cloudformation”标签在这里的活动(2239 个问题)比在 Serverfault 上的活动(180 个问题)要多。
-
@LaurentJalbertSimard JSON 和 YAML 不是编程语言吗?对我来说,CloudFormation 模板/堆栈文件似乎只是非常强大的配置文件格式。
-
@tambre 我认为 DevOps 的兴起让这条线更加模糊。拥有单独的 Stack Exchange 站点背后的想法是,更容易将一个主题集中在您的工作范围内。 StackOverflow -> 开发者,Serverfault -> 系统操作员/管理员。但是使用 DevOps,您可以处理开发和操作。这些不再是单独的主题,尤其是当问题与 IaC 相关时。我并不是说你错了,但我相信问题比你想象的要复杂。
标签: amazon-web-services amazon-cloudformation