gpt4 book ai didi

amazon-web-services - 使用 AWS cloudformation 中的计数创建多个 VPC 的 YAML 代码

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

我是 CloudFormation 新手,想要使用 YAML 创建模板。我需要弄清楚是否有任何方法可以使用 UserInput 创建多个 VPC。到目前为止,我已经使用了以下代码:

  Parameters:
EnvironmentName:
Description: An environment name that is prefixed to resource names
Type: String

vpcCIDR1:
Description: Please enter the IP range (CIDR notation) for this VPC
Type: String
Default: 10.3.0.0/16
vpcCIDR2:
Description: Please enter the IP range (CIDR notation) for this VPC
Type: String
Default: 10.4.0.0/16
Resources:
VPC1:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref vpcCIDR1
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Ref EnvironmentName
VPC2:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref vpcCIDR2
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Ref EnvironmentName

我不需要再次编写相同的代码,而是需要代码来获取用户输入的 VPC 计数并根据用户输入创建 VPC。

我找到了Count但是当我使用 !Ref 传递参数时它不起作用,只有当我传递 Count: 2 或任何数值时它才起作用。

最佳答案

请注意,CloudFormation 没有任何使用循环创建多个资源的功能。 CloudFormation 没有循环。

但是,您可以声明您的资源,并且可以在 CloudFormation 模板中使用条件 以及内在条件函数。这就是人们一直在做的方式。

您可以在docs中阅读有关使用Condition的更多信息。 .
您可以在 docs 中阅读有关使用内在条件函数的更多信息。 .

Parameters:
EnvironmentName:
Description: An environment name that is prefixed to resource names
Type: String
vpcCIDR1:
Description: Please enter the IP range (CIDR notation) for this VPC
Type: String
Default: 10.3.0.0/16
vpcCIDR2:
Description: Please enter the IP range (CIDR notation) for this VPC
Type: String
Default: 10.4.0.0/16
CreateVpc1:
Type: String
Default: false
AllowedValues:
- true
- false
CreateVpc2:
Type: String
Default: false
AllowedValues:
- true
- false

Conditions:
BooleanCreateVpc1: !Equals [ !Ref CreateVpc1, true ]
BooleanCreateVpc2: !Equals [ !Ref CreateVpc2, true ]

Resources:
VPC1:
Type: AWS::EC2::VPC
Condition: BooleanCreateVpc1
Properties:
CidrBlock: !Ref vpcCIDR1
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Ref EnvironmentName
VPC2:
Type: AWS::EC2::VPC
Condition: BooleanCreateVpc1
Properties:
CidrBlock: !Ref vpcCIDR2
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Ref EnvironmentName

关于amazon-web-services - 使用 AWS cloudformation 中的计数创建多个 VPC 的 YAML 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73033323/

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