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

标签 python dns amazon-route53 boto3

我正在尝试使用 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/

相关文章:

amazon-web-services - 将 Amazon CloudFront 指向 A 记录而不是 CNAME

python - pandas系列/帧分位数函数采用多个概率?

python - Matplotlib 错误地绘制 Pandas DataFrame 中的 x 个刻度

python - 使用 Mandrill send_at 或 Celery countdown/eta 延迟发送电子邮件

python - 从字典中获取值到集合中的最有效方法

dns - 使用 gcloud 删除 DNS 条目

email - 我可以为每个子域使用不同的邮件服务器吗?

amazon-web-services - AWS CloudFormation 模板将 IP 地址添加到 Route 53 记录,而不是 URL

amazon-web-services - AWS 暂存到生产

amazon-web-services - AWS 不允许我访问静态网站的子页面