gpt4 book ai didi

amazon-web-services - 选择具有工作区的可用区

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

我们将 CloudFromation 模板部署到 3 个区域,并使用 !GetAZs 内部函数,如下所示:

  PrivateSubnet2:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: !Ref 'PrivateSubnetCIDR2'
AvailabilityZone: !Select
- '1'
- !GetAZs ''
Tags:
- Key: Name
Value: Private-Subnet-2
VpcId: !Ref 'VPC'

我们设置了 2 个子网,第一个子网将索引设置为 0,第二个子网将其设置为 1。我们这样做是因为工作区在特定可用区中可用。到目前为止,我们正在部署的 3 个区域在索引 0 和 1 的可用区域中都有可用的工作区。

但现在我们想要添加另一个可用区,其工作区在索引 1 和 2 处可用。

我有一个 PoC,它会在该特定区域的条件下使用 !Equals,但随后它将为此可用区域设置一个额外的子网、路由表等整个网络设置。这并不理想。顺便说一句,我的 !Equals 条件如下:

    WorkspaceSubnet: !Equals
- !Ref 'AWS::Region'
- 'us-east-1'

我想要的是我可以根据 !Equals 条件为 true/false 设置索引,如下所示:

  PrivateSubnet1:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: !Ref 'PrivateSubnetCIDR1'
AvailabilityZone: !if
- WorkspaceSubnet
- !Select
- '2'
- !GetAZs ''
- !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Private-Subnet-1
VpcId: !Ref 'VPC'

但这给了我错误:[cfn-lint] E3002:Property Resources/PrivateSubnet1/Properties/AvailabilityZone 有一个非法函数 Fn::if

最佳答案

有时我们会犯一些肉眼无法发现的愚蠢错误,当您将其发布到 StackOverflow 上时,您的一些同行会开始审阅,而另一些同行会足够仔细地进行深入挖掘。

感谢Mehdi Azhar我的学员指出这只是一个小写问题。内部函数 !if 以大写 !If 开头。

所以正确的代码是:

  PrivateSubnet1:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: !Ref 'PrivateSubnetCIDR1'
AvailabilityZone: !If
- WorkspaceSubnet
- !Select
- '2'
- !GetAZs ''
- !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Private-Subnet-1
VpcId: !Ref 'VPC'

关于amazon-web-services - 选择具有工作区的可用区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68165398/

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