Route53:按RecordType过滤ListResourceRecordSets

时间:2019-05-01 22:26:16

标签: go aws-sdk amazon-route53

我无法获得AWS Route53服务的ListResourceRecordSets来按StartRecord类型进行过滤。即使使用StartRecordType过滤器,它也会返回所有记录(cname和A),而不是我选择的类型。

我还注意到,如果不包含StartRecordName,则会收到验证错误,因此,如果使用StartRecordType,则需要StartRecordName。

下面的代码返回所有记录,但未按要求进行过滤。

    AWSLogin(instance)

    svc := route53.New(instance.AWSSession)

    listParams := &route53.ListResourceRecordSetsInput{
        HostedZoneId: aws.String("Z2798GPJN9CUFJ"), // Required
        StartRecordName: aws.String("subdomain.subdomain.mydomain.com"),
        StartRecordType: aws.String(route53.RRTypeA),
    //  StartRecordType: aws.String(route53.RRTypeCname),
    }
    respList, err := svc.ListResourceRecordSets(listParams)

    if err != nil {
        fmt.Println(err.Error())
        return
    }

    fmt.Println("All Type "A" records:")
    fmt.Println(respList)

1 个答案:

答案 0 :(得分:1)

我认为您误解了StartRecordNameStartRecordType的功能。他们不过滤列表,仅指定列表的开始位置。

来自Service Documentation

  

如果同时指定名称和类型:结果从开始,列表中的第一个资源记录集名称大于或等于Name,并且类型大于或等于Type

因此从您的示例中,我希望您的记录 all 全部返回(最多100条),但是第一条记录将是{{1} }。

然后它将按名称/类型的字母顺序进行(包装)。