0

我需要为 AWS::Route53::RecordSetGroup 类型创建多个 RecordSet。但是每个 RecordSet 必须只有在满足一个条件时才被创建。我知道我们可以在声明属性之前有一个条件。但是我们是否有可能根据条件创建特定的 RecordSet。

就像是:

LoadBalancerRecordSetGroup:
    Type: AWS::Route53::RecordSetGroup
    Condition: HasHostedZoneName
    Properties:
      HostedZoneName: !Ref HostedZoneName
      Comment: 
      RecordSets:
      - Name: !Join [ ".", [!Ref Url, !Ref HostedZoneName ] ]
        Condition: RecordSetCondition1
        Type: A
        AliasTarget:
          HostedZoneId: 
          DNSName: 
        Weight: !Ref RoutingWeight
        SetIdentifier: !Ref "AWS::Region"
        

      - Name: !Join [ ".", [ !Ref Url, !Ref HostedZoneName ] ]
        Condition: RecordSetCondition2
        Type: A
        AliasTarget:
          HostedZoneId: 
          DNSName: 
        Weight: !Ref RoutingWeight
        SetIdentifier: !Ref "AWS::Region"
        Condition: HostedZoneName

如果某事是不可能的,那么还有其他选择吗?

4

1 回答 1

0

但是我们是否有可能根据条件创建特定的 RecordSet

是的,你可以这样做。即,您可以使用IfA​​WS::NoValue的组合。

例如,有条件地创建RecordSetCondition1你可以这样做:


Conditions:

    ShouldMakeRecordSetCondition1:
        !Equals ["aaa", "bbb"]

Resources:

    LoadBalancerRecordSetGroup:
        Type: AWS::Route53::RecordSetGroup
        Condition: HasHostedZoneName
        Properties:
          HostedZoneName: !Ref HostedZoneName
          Comment: "a comment"
          RecordSets:
          - !If
            - ShouldMakeRecordSetCondition1
            - Name: !Join [ ".", [!Ref Url, !Ref HostedZoneName ] ]
              Condition: RecordSetCondition1
              Type: A
              AliasTarget:
                HostedZoneId: 
                DNSName: 
              Weight: !Ref RoutingWeight
              SetIdentifier: !Ref "AWS::Region"
            - !Ref "AWS::NoValue"
          - Name: !Join [ ".", [ !Ref Url, !Ref HostedZoneName ] ]
            Condition: RecordSetCondition2
            Type: A
            AliasTarget:
              HostedZoneId: 
              DNSName: 
            Weight: !Ref RoutingWeight
            SetIdentifier: !Ref "AWS::Region"
            Condition: HostedZoneName

于 2021-04-25T02:53:56.270 回答