AWS CLI を使用して Route 53 リソースレコードセットを作成するときに受信したエラーをトラブルシューティングするにはどうすればよいですか?

最終更新日: 2021 年 2 月 2 日

AWS コマンドラインインターフェイス (AWS CLI) を使用してリソースレコードセットを作成しようとすると、エラーメッセージが表示されるのはなぜですか? エラーを修正するにはどうしたらいいですか?

解決方法

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

エラーの原因とそのトラブルシューティングの方法を特定するためには、次の一般的なエラーメッセージをご参照ください。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidInput): 無効な XML ; cvc-enumeration-valid: 値「Delete」は列挙 '[CREATE, DELETE, UPSERT]' に関してファセットが有効ではありません。これは、列挙からの値でなければなりません。

JSON ファイル形式では、設定ファイルで大文字の CREATEDELETE、または UPSERT の値が必要です。

設定ファイルで、値を大文字に変更します。例:

"Action": "CREATE",

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): ゾーンの domain.com の Apex では、DNS 名が domain.com である CNAME タイプの RRSet は許可されていません。

DNS 名前空間の最上位ノード (Zone Apex とも呼ばれます。example.com など) で CNAME レコードを作成することはできません。

AWS リソースをポイントするように Apex ドメインのレコードを作成する場合は、CNAME の代わりにエイリアスレコードを使用します。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): DNS 名が b.domain.com である MX タイプの RRSet は、同じ DNS 名を持つ CNAME タイプの競合する RRset がゾーンの domain.com に既に存在するため、許可されません。

サブドメイン名 (test.example.com など) 用の CNAME リソースレコードセットがある場合、そのサブドメイン用の MX レコード、A レコード、または TXT レコードを持つことはできません。

同じホストゾーン内の別のレコードセットで MX レコードを作成します。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): [DNS 名が b.domain.com である A タイプの RRSet は、同じ DNS 名を持つ CNAME タイプの競合する RRset がゾーンの b.domain.com に既に存在するため、許可されません。]

「UPSERT」を使用して CNAME レコードを他のレコードに更新する場合、または既存のレコードを CNAME レコードに変更しようとすると、このエラーが発生します。

UPSERT は、元々 CNAME レコードがあり、別の CNAME レコードに UPSERT する場合にのみ成功します。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): リソースレコードセット [name='b.domain.com.', type='CNAME'] を作成しようとしましたが、既に存在しています。

ドメインに既に存在する CNAME リソースレコードセットに対して CREATE アクションを実行しています。

CNAME レコードセットがまだ存在していないドメインについて CNAME レコードセットを作成します。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): リソースレコードセット [name='a.domain.com.', type='A'] を削除しようとしましたが、指定された値は現在の値と一致しません。

JSON ファイルを使用してリソースレコードセットを削除しようとしていますが、コンテンツが既存のレコードセットの値と一致しません。

設定ファイルの [Name] (名前)、[Type] (タイプ)、および [TTL] の値を確認して更新します。その後、リソースレコードセットの削除をもう一度試みます。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): リソースレコードセット [name='a.domain.com.', type='A'] を削除しようとしましたが、指定された rdata は無効です。

リソースレコードセットに対して DELETE アクションを実行しているが、ResourceRecord の値が既存のリソースレコードセットの値と一致しません。

設定ファイルの ResourceRecord の値を確認し、更新します。その後、リソースレコードセットの削除をもう一度試みます。

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): リソースレコードセット [name='a.domain.com.', type='A'] を削除しようとしましたが、見つかりませんでした。

ドメイン名に誤ったホストゾーン ID が使用しています。

次の形式を使用して、change-resource-record-sets コマンドを正しい ID で再度実行します。

aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXXXX --change-batch file://sample.json

ChangeResourceRecordSets オペレーションを呼び出すときにエラーが発生しました (InvalidChangeBatch): applicationenv.us-west-2.elasticbeanstalk.com. (ゾーン Z1H1FL5HABSF5 のタイプ A) をターゲットとするエイリアスを作成しようとしましたが、エイリアスターゲット名がターゲットゾーン内にありません。

設定ファイルにおいて、AWS リソースについて誤った HostedZoneId の値を使用しています。HostedZoneId キーの値は、ドメイン名のホストゾーン ID ではなく、各リージョンの AWS リソースの一意の ID であることに留意してください。

HostedZoneId の値を確認し、AWS リソースのホストゾーン ID に更新します。詳細については、「AWS CLI を使用して Route 53 でエイリアスリソースレコードセットを作成するにはどうすればよいですか?」をご参照ください。