登录
首页 >  Golang >  Go问答

使用RecordType筛选ListResourceRecordSets: AWS Route 53

来源:stackoverflow

时间:2024-03-16 08:48:28 116浏览 收藏

使用 Amazon Route 53 的 ListResourceRecordSets API 时,StartRecordName 和 StartRecordType 参数用于指定列表的开始位置,而不是筛选结果。如果同时指定名称和类型,结果将从指定名称和类型开始的第一个资源记录集开始列出,并按名称和类型顺序继续。因此,这些参数不能用于按记录类型筛选结果。

问题内容

我无法获取 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)

解决方案


我认为您误解了 StartRecordNameStartRecordType 的作用。它们不会过滤列表,仅指定列表的开始位置。

来自Service Documentation

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

因此,从您的示例中,我希望返回您的所有记录(最多 100 条),但第一条记录将是 subdomain.subdomain.mydomain.comA 记录。

然后它将按名称/类型的字母顺序继续(并换行)。

以上就是《使用RecordType筛选ListResourceRecordSets: AWS Route 53》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>