Python boto3 route53简单示例错误

时间:2017-05-26 09:56:42

标签: python amazon-web-services boto3

下面的脚本(简化的,虚构的区域/ zoneid)运行时会出现错误

  

botocore.errorfactory.InvalidInput:调用ChangeResourceRecordSets操作时发生错误(InvalidInput):无效请求

#!/usr/bin/python3.3

import boto3

ipaddress = '10.32.24.82'

zoneid = 'Z3GJIR73GHRHXX'
response = boto3.client('route53').change_resource_record_sets(
     HostedZoneId=zoneid,
     ChangeBatch={
       'Comment': 'swarm manager',
       'Changes': [
         {
             'Action': 'UPSERT',
                       'ResourceRecordSet':
                    {
                     'TTL': 600,
                     'Name': 'www.giganticwasteoftime.com.',
                     'SetIdentifier': 'abc1',
                     'Type': 'A'
                     'ResourceRecords':
                         [{'Value': ipaddress}, ],
                    }
         }, ]
    }
)
print(response)

我之前已经成功地使用python脚本来查询route53,但我从未在

之前写过它

我在boto3上做了一个pip install --update,但是对于这些版本的python模块得到了完全相同的错误: boto3-1.4.4 botocore-1.5.56 docutils-0.13.1 jmespath-0.9.2 python-dateutil-2.6.0 s3transfer-0.1.10

1 个答案:

答案 0 :(得分:1)

这不是python libs的问题,错误来自AWS。从您的请求中省略 SetIdentifier ,因为您正在创建 A记录;如果域名 www.giganticwasteoftime.com 存在则应该有效。

来自boto3 docs

  

SetIdentifier(string) -

     

仅限加权,延迟,地理位置和故障转移资源记录集:用于区分具有相同DNS名称和类型组合的多个资源记录集的标识符。对于具有相同DNS名称和类型组合的每个资源记录集,SetIdentifier的值必须是唯一的。忽略任何其他类型记录集的SetIdentifier。