下面的脚本(简化的,虚构的区域/ 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
答案 0 :(得分:1)
这不是python libs的问题,错误来自AWS。从您的请求中省略 SetIdentifier ,因为您正在创建 A记录;如果域名 www.giganticwasteoftime.com 存在则应该有效。
来自boto3 docs:
SetIdentifier(string) -
仅限加权,延迟,地理位置和故障转移资源记录集:用于区分具有相同DNS名称和类型组合的多个资源记录集的标识符。对于具有相同DNS名称和类型组合的每个资源记录集,SetIdentifier的值必须是唯一的。忽略任何其他类型记录集的SetIdentifier。