我想使用 AWS Command Line Interface (AWS CLI) 在 Amazon Route 53 中建立簡易資源記錄集。
解決方法
若要建立、刪除或變更 (更新) 資源記錄集,請使用對 Route 53 API 的 ChangeResourceRecordSets 請求。
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新的 AWS CLI 版本。
建立 ChangeResourceRecordSets 請求
您可以使用 ChangeResourceRecordSets 請求執行下列動作:
- **CREATE:**在託管區域中建立具有指定值的記錄集。
- **DELETE:**刪除託管區域中具有指定值的記錄集。
- **UPSERT:**建立具有指定值的新記錄集,或者如果該記錄集已存在,則使用指定值更新該記錄集。
若要建立、刪除或變更簡易 A 記錄集,請修改下列範例 JSON 檔案 (sample.json)。請求的內文包含變更項目清單,又稱為變更批次:
{
"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 搭配命令 change-resource-record-sets。sample.json 檔案指定記錄建立的值:
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.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"
}
}
如果您在 ID 中沒有看到此狀態,則 JSON 檔案中有錯誤。
若要檢查變更狀態,請使用 API 呼叫 get-change 和 change-resource-record-sets 回應中的 Id:
- PENDING 表示此請求中的變更尚未傳播到所有 Route 53 DNS 伺服器。這是所有變更批次請求的初始狀態。
- INSYNC 表示變更已傳播到所有 Route 53 DNS 伺服器。
以下是傳輸前的 PENDING 狀態:
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"
}
}
以下是傳輸後的 INSYNC 狀態:
$ 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"}]
}}
]
}
相關資訊
如何對使用 AWS CLI 建立 Route 53 資源記錄集時收到的錯誤進行疑難排解?