Golang - 删除 Route53 记录
Golang - Delete Route53 Record
我正在编写一个管理(创建、删除)Route53 记录的 go 程序(使用 AWS Go SDK)。我已经成功地创建了一条记录,但是我在删除这些记录时遇到了问题。
这是我目前尝试过的方法。
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
再次感谢 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)
}
我正在编写一个管理(创建、删除)Route53 记录的 go 程序(使用 AWS Go SDK)。我已经成功地创建了一条记录,但是我在删除这些记录时遇到了问题。
这是我目前尝试过的方法。
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
再次感谢 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)
}