cfn-lint
жалуется на жесткое кодирование зон доступности, когда это делается так:
Resources:
SubnetWest2a:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: us-west-2a
CidrBlock: 10.0.0.0/24
VpcId: !Ref GlobalVPC
SubnetWest2b:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: us-west-2b
CidrBlock: 10.0.1.0/24
VpcId: !Ref GlobalVPC
SubnetWest2c:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: us-west-2c
CidrBlock: 10.0.2.0/24
VpcId: !Ref GlobalVPC
Поэтому я сделал это вместо этого:
Resources:
#...
SubnetWest1:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.0.0/24
VpcId: !Ref GlobalVPC
AvailabilityZone: !Select
- 0
- Fn::GetAZs: !Ref 'AWS::Region'
SubnetWest2:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.1.0/24
VpcId: !Ref GlobalVPC
AvailabilityZone: !Select
- 1
- Fn::GetAZs: !Ref 'AWS::Region'
SubnetWest3:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.2.0/24
VpcId: !Ref GlobalVPC
AvailabilityZone: !Select
- 2
- Fn::GetAZs: !Ref 'AWS::Region'
Но предостережение происходит от Fn :: GetAZs docs :
Как и в случае ответа от команды CLI AWS описать-доступности-зон, порядок результатов из функции Fn :: GetAZs не гарантируетсяи может изменяться при добавлении новых зон доступности.
Раздел, который зависит от этих подсетей и блоков CIDR:
GlobalDBSubnetGroup:
Type: AWS::RDS::DBSubnetGroup
Properties:
DBSubnetGroupDescription: Multi-AZ RDS subnet group
SubnetIds:
- !Ref SubnetWest1
- !Ref SubnetWest2
- !Ref SubnetWest3
Учитывая эти два взаимоисключающих рекомендацииподсказки , есть ли лучший способ обнаружить (или лучший способ создать эту коллекцию взаимозависимых ресурсов для RDS с несколькими AZ), а также получить детерминированные результаты при каждом запуске этого стека?