Golang - 删除Route53记录

时间:2017-07-20 13:21:05

标签: go amazon-route53

我正在编写一个go程序(使用AWS Go SDK)来管理(创建,删除)Route53记录。我已经成功创建了一条记录,但在删除这些记录时遇到了问题。

这是我到目前为止所尝试过的。

func deleteRecord(svc *route53.Route53) {
    dnsName := "vikas027.something.net"

    request := &route53.ChangeResourceRecordSetsInput{
        ChangeBatch: &route53.ChangeBatch{
            Changes: []*route53.Change{
                {
                    Action: aws.String("DELETE"),
                    ResourceRecordSet: &route53.ResourceRecordSet{
                        Name: aws.String(dnsName),
                        Type: aws.String("A"),
                        ResourceRecords: []*route53.ResourceRecord{
                            {
                                Value: aws.String(dnsName),
                            },
                        },
                    },
                },
            },
        },
        HostedZoneId: aws.String(zoneID),
    }
    resp, err := svc.ChangeResourceRecordSets(request)
    if err != nil {
        fmt.Println("Unable to delete DNS Record", err)
    }
    fmt.Println(resp)
}

以上函数抛出错误。

Unable to delete DNS RecordInvalidInput: Invalid request
        status code: 400, request id: 0363068b-6d4d-11e7-ab47-cf662178898b

1 个答案:

答案 0 :(得分:1)

再次感谢Imperalix提示。基本思想是使用用于创建记录的确切参数。这就是我现在正在删除CNAME条记录的工作。

func deleteRecord(svc *route53.Route53) {
    dnsName := "vikas027.something.net"

    request := &route53.ChangeResourceRecordSetsInput{
        ChangeBatch: &route53.ChangeBatch{
            Changes: []*route53.Change{
                {
                    Action: aws.String("DELETE"),
                    ResourceRecordSet: &route53.ResourceRecordSet{
                        Name: aws.String(dnsName),
                        Type: aws.String("CNAME"),
                        ResourceRecords: []*route53.ResourceRecord{
                            {
                                Value: aws.String(AliasName),
                            },
                        },
                        TTL:           aws.Int64(ttl),
                        Weight:        aws.Int64(weight),
                        SetIdentifier: aws.String(setIdentifier),
                    },
                },
            },
        },
        HostedZoneId: aws.String(zoneID),
    }
    resp, err := svc.ChangeResourceRecordSets(request)
    if err != nil {
        fmt.Println("Unable to delete DNS Record", err)
    }
    fmt.Println(resp)
}
相关问题