登录
首页 >  Golang >  Go问答

AWS Route53 - 添加简单记录

来源:stackoverflow

时间:2024-04-13 22:24:35 230浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《AWS Route53 - 添加简单记录》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我可以使用api​​​​,使用[weight:aws.int64(weight)]为aws route53添加“加权”a记录,使用下面的代码效果很好。但是如何添加“简单”a 记录 - 我没有看到简单的选项?

params := &route53.ChangeResourceRecordSetsInput{
    ChangeBatch: &route53.ChangeBatch{ // Required
        Changes: []*route53.Change{ // Required
            { // Required
                Action: aws.String("UPSERT"), // Required
                ResourceRecordSet: &route53.ResourceRecordSet{ // Required
                    Name: aws.String(name), // Required
                    Type: aws.String("A"),  // Required
                    ResourceRecords: []*route53.ResourceRecord{
                        { // Required
                            Value: aws.String(target), // Required
                        },
                    },
                    TTL: aws.Int64(TTL),
                    //Region: aws.String("us-east-1"),
                    Weight:        aws.Int64(weight),
                    SetIdentifier: aws.String("-"),
                },
            },
        },
        Comment: aws.String("Sample update."),
    },
    HostedZoneId: aws.String(zoneId), // Required
}

解决方案


“简单”记录只是 web 控制台中的一个短语。只需保留不带任何 weightlatency 标志的记录,它将成为 route53 内的标准 dns 记录。

请参阅 type resourcerecordset 文档,必填字段已标记。其余的,例如 weight 是可选的!

https://docs.aws.amazon.com/sdk-for-go/api/service/route53/#ResourceRecordSet

与使用 cli (https://aws.amazon.com/premiumsupport/knowledge-center/simple-resource-record-route53-cli/) 几乎相同,只需将相同的字段移植到 go 结构中即可。

经过几个小时的搜索却毫无结果,我发现使用 aws-sdk-go-v2 可以工作对于添加简单记录来说,尝试不添加 latency 标志只会在使用 sdk 版本 1 时导致错误,所以我这样做并且工作正常:

cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
    // handle error
    return err
}

client := route53.NewFromConfig(cfg)

params := &route53.ChangeResourceRecordSetsInput{
    ChangeBatch: &types.ChangeBatch{
        Changes: []types.Change{
            {
                Action: types.ChangeActionUpsert,
                ResourceRecordSet: &types.ResourceRecordSet{
                    Name: aws.String(name),
                    Type: types.RRTypeCname,
                    ResourceRecords: []types.ResourceRecord{
                        {
                            Value: aws.String(target),
                        },
                    },
                    TTL: aws.Int64(60),
                },
            },
        },
    },
    HostedZoneId: aws.String(zoneId),
}

output, err := client.ChangeResourceRecordSets(context.TODO(), params)

到这里,我们也就讲完了《AWS Route53 - 添加简单记录》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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