登录
首页 >  Golang >  Go问答

Route53:通过域名查询域名记录

来源:stackoverflow

时间:2024-04-02 10:30:36 164浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《Route53:通过域名查询域名记录》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

使用 go 和 aws-sdk

我正在尝试查询 aws 控制台中 route53 -> 托管区域下列出的 route53 cname 和 a 记录。我可以使用以下代码进行查询,但它需要我必须提前知道的(神秘的)hostedzoneid。

是否有不同的功能,或者基于域名(例如 xxx.xxx.com)的 hostedzoneid 查找?

AWSLogin(instance)

    svc := route53.New(instance.AWSSession)

    listParams := &route53.ListResourceRecordSetsInput{
        HostedZoneId: aws.String("Z2798GPJN9CUFJ"), // Required
        // StartRecordType: aws.String("CNAME"),
    }
    respList, err := svc.ListResourceRecordSets(listParams)

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

    // Pretty-print the response data.
    fmt.Println("All records:")
    fmt.Println(respList)

编辑:哦,此外,值为“cname”的 startrecordtype 会引发验证错误,所以我不确定应该在那里使用什么。


解决方案


您首先必须进行查找以获取 hostedzoneid。这是我为其编写的函数。 :

func GetHostedZoneIdByNameLookup(awsSession string, HostedZoneName string) (HostedZoneID string, err error) {

    svc := route53.New(awsSession)

    listParams := &route53.ListHostedZonesByNameInput{
        DNSName: aws.String(HostedZoneName), // Required
    }
    req, resp := svc.ListHostedZonesByNameRequest(listParams)
    err = req.Send()
    if err != nil {
        return "", err
    }

    HostedZoneID = *resp.HostedZones[0].Id

    // remove the /hostedzone/ path if it's there
    if strings.HasPrefix(HostedZoneID, "/hostedzone/") {
        HostedZoneID = strings.TrimPrefix(HostedZoneID, "/hostedzone/")
    }

    return HostedZoneID, nil
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Route53:通过域名查询域名记录》文章吧,也可关注golang学习网公众号了解相关技术文章。

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