Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 是否可以使用AWS云形成获取专有网络Id?_Json_Amazon Web Services_Amazon Cloudformation_Vpc - Fatal编程技术网

Json 是否可以使用AWS云形成获取专有网络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

是否可以使用Cloud Formation JSON获取VPC Id

比如:

{ "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"}