我正在尝试使用AWS Route 53,python3和boto3来运行动态DNS更新程序脚本。它的功能如下:
第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
答案 0 :(得分:2)
我解决了这个问题。只能为基于延迟的记录集设置Region
选项;评论它解决了问题。