如何使用 AWS CLI 在 Amazon Route 53 中创建简单的资源记录集?
上次更新时间:2021 年 1 月 8 日
如何使用 AWS 命令行界面 (AWS CLI) 在 Amazon Route 53 中创建简单的资源记录集?
简短描述
您可以使用 changeResourceRecordSets 请求创建、删除或更改(更新插入)资源记录集到 Route 53 API 。
解决方法
注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本。
创建 ChangeResourceRecordSets 请求
您可以使用 ChangeResourceRecordSets 请求执行以下操作:
- CREATE 在托管区域中创建具有指定值的记录集
- DELETE 在托管区域中删除具有指定值的记录集
- UPSERT 创建具有指定值的新记录集,或者使用指定值更新记录集(如果该记录集已存在)
修改以下示例 JSON 文件( sample.json )以创建、删除或更改简单的 A 记录集。请求的正文包括更改项目列表,又称为变更批处理:
{
"Comment": "CREATE/DELETE/UPSERT a record ",
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{ "Value": "4.4.4.4"}]
}}]
}
使用 Route 53 API 和命令 hange-resource-record-sets ,为您托管区域中的域创建资源记录集。sample.json 文件将指定 创建记录的值 。
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json
除非 JSON 文件中有错误,否则应使用唯一 ID 返回 PENDING 状态 :
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXX --change-batch file://sample.json
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
}
使用您的 change-resource-record-sets 响应中带有 Id 值的 API 调用 get-change 来检查更改的状态:
- PENDING 表示此请求中的更改尚未传播到所有 Route 53 DNS 服务器。这是所有更改批处理请求的初始状态。
- INSYNC 表示更改已传播到所有 Route 53 DNS 服务器。
传播之前:
aws route53 get-change --id /change/C3QYC83OA0KX5K
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
}
传播之后:
$ aws route53 get-change --id /change/C3QYC83OA0KX5K
{
"ChangeInfo": {
"Status": "INSYNC",
"Comment": "optional comment about the changes in this change batch request",
"SubmittedAt": "2018-07-10T19:39:37.757Z",
"Id": "/change/C3QYC83OA0KX5K"
}
创建并发请求
您必须为每个并发请求使用单独的 操作 键。例如,您无法在一个请求中创建 A 记录和 MX 记录。相反,您必须为同一域名创建两个记录集,并使用以下格式:
{
"Comment": "CREATE/DELETE/UPDATE",
"Changes": [ {
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "5.5.5.5"}]
}},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "MX",
"TTL": 300,
"ResourceRecords": [{"Value": "10 example.com"}]
}}
]
}