gpt4 book ai didi

python - 无法使用 boto3 更新 Route 53 上的 DNS 记录

转载 作者:行者123 更新时间:2023-12-01 03:48:32 24 4
gpt4 key购买 nike

我正在尝试使用 AWS Route 53、python3 和 boto3 获取动态 DNS 更新程序脚本。其功能如下:

  1. 从互联网服务检索计算机 IP
  2. 检索 Route 53 DNS 中的当前 IP
  3. 检查它们是否匹配(如果匹配,则退出)
  4. 更新 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

最佳答案

我解决了这个问题。 Region 选项只能针对基于延迟的记录集设置;注释掉它解决了问题。

关于python - 无法使用 boto3 更新 Route 53 上的 DNS 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38554754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com