Json 是否可以使用AWS云形成获取专有网络Id?
是否可以使用Cloud Formation JSON获取VPC Id 比如:Json 是否可以使用AWS云形成获取专有网络Id?,json,amazon-web-services,amazon-cloudformation,vpc,Json,Amazon Web Services,Amazon Cloudformation,Vpc,是否可以使用Cloud Formation JSON获取VPC Id 比如: { "Fn::GetAtt" : [ "MyVPCName", "VPCId" ] } 如果在同一模板中创建了专有网络,则可以使用“Ref”内置函数获取专有网络的资源ID,请参阅 如果你想引用一个现有的专有网络(比如你的默认专有网络),那么上面的方法是行不通的。您可以将VPC的Id作为参数传递给模板,并在需要时使用内置的“Ref”来使用它。对于预先存在的VPC,请从参数开始: "VpcId": { "Type
{ "Fn::GetAtt" : [ "MyVPCName", "VPCId" ] }
如果在同一模板中创建了专有网络,则可以使用“Ref”内置函数获取专有网络的资源ID,请参阅
如果你想引用一个现有的专有网络(比如你的默认专有网络),那么上面的方法是行不通的。您可以将VPC的Id作为参数传递给模板,并在需要时使用内置的“Ref”来使用它。对于预先存在的VPC,请从参数开始:
"VpcId": { "Type": "String" },
然后,您可以在启动脚本中使用以下内容:
aws --profile profile_name --region us-east-1 ec2 describe-vpcs --filters 'Name=tag:Name,Values=MY_VPC_NAME'
这样,您可以在启动堆栈之前找到VPC。通过这种方式,您可以向不同的地区或帐户启动,而不必总是手工查找这些信息。布拉德利的答案是正确的。我还想补充一点,如果您发现需要“缝合”在单独模板中创建的资源,您可能需要查看嵌套堆栈。另一种选择是添加一些生成模板的代码层(例如cfn pyplates),并使用AWS API跨堆栈进行查找。我建议将类似的重要值放入cfn导出中。然后很容易用这样的东西来引用 YAML代码示例
VpcId: !ImportValue VpcId
"VpcId" : {"Fn::ImportValue" : "VpcId"}
JSON代码示例
VpcId: !ImportValue VpcId
"VpcId" : {"Fn::ImportValue" : "VpcId"}