1
AWS Route 53、python3、boto3を使用して動的DNSアップデータスクリプトを作成しようとしています。boto3を使用してRoute 53のDNSレコードを更新できません
- は、それらが一致する場合(その場合、出口、)
- 更新DNS(旧IPを置き換えるルート53 DNS
- チェックして、現在のIPを取得し、インターネットサービスからマシンのIPを取得します。これは次のように機能し
手順4は機能していません。そのコードは以下の通りです。 my_ip
には、1.2.3.4
のような文字列が含まれています。私は直接文字列("Value": "1.2.3.4"
)で置き換えようとしましたが、それはエラーを修正しませんでした。 hosted_zone_id
は、IPアドレスを取得するためにすでに使用されていたので正しいです。 record_name
は"microbug.uk."
です。
response = client.change_resource_record_sets(
HostedZoneId=hosted_zone_id,
ChangeBatch={
"Comment": "Automatic DNS update",
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": record_name,
"Type": "A",
"Region": "eu-west-1",
"TTL": 180,
"ResourceRecords": [
{
"Value": my_ip
},
],
}
},
]
}
)
これは、エラーがスローされます。
Traceback (most recent call last):
File "update-dns.py", line 42, in <module>
"Value": my_ip
File "/usr/lib/python3.5/site-packages/botocore/client.py", line 278, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/lib/python3.5/site-packages/botocore/client.py", line 572, in _make_api_call
raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request
任意の提案ですか?前もって感謝します。
編集:
$ cat ~/.aws/config
[default]
region = eu-west-1
output = json
このファイルの内容を〜/ .aws/configに貼り付けることができます。my_ipは二重引用符または一重引用符で囲む必要があります。 – error2007s
@ error2007sファイルを投稿しました。 my_ipは、スクリプト内の他の場所に設定された変数で、文字列値(例: 'my_ip =" 8.8.8.8 ")です。 – microbug