gpt4 book ai didi

go - Route53 : query domain records by Domain Name

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:53 32 4
gpt4 key购买 nike

使用 Go 和 AWS-SDK

我正在尝试查询 AWS 控制台中 Route53 -> Hosted Zones 下列出的 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
}

关于go - Route53 : query domain records by Domain Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940510/

32 4 0