当我运行这个boto3来创建或者插入A记录时,我收到错误:
文件“./metakube.py”,第523行,在post_create中 self.route53_update_alias_record(self.fugu_editor_external_dns,fugu_elb_identifier)
文件“./metakube.py”,第508行,在route53_update_alias_record中 'EvaluateTargetHealth':错误
文件“/home/pairaccount/.virtualenvs/fugui-devops/local/lib/python2.7/site-packages/botocore/client.py”,第236行,在_api_call return self._make_api_call(operation_name,kwargs)
文件“/home/pairaccount/.virtualenvs/fugui-devops/local/lib/python2.7/site-packages/botocore/client.py”,第500行,在_make_api_call 提升ClientError(parsed_response,operation_name)
botocore.exceptions.ClientError:调用ChangeResourceRecordSets操作时发生错误(InvalidInput):无效请求
根据boto3文档,这看起来像是正确的输入。我们也尝试了一些不同的变体,但是当我们尝试使用下面的方法创建或Upsert A记录时,我们会收到此错误。我们有一个类似的方法,调用change_resource_record_sets
删除A记录,它工作正常。
有关需要纠正的内容的任何想法?
def route53_update_alias_record(self, external_dns_name, load_balancer_identifier):
route53_client = boto3.client('route53')
hosted_zone_id = self.get_hosted_zone_id(route53_client)
response = route53_client.change_resource_record_sets(
HostedZoneId=hosted_zone_id,
ChangeBatch={
'Comment': 'upsert alias record',
'Changes': [
{
'Action': 'UPSERT',
'ResourceRecordSet': {
'Name': external_dns_name,
'Type': 'A',
'Region': 'us-east-1',
'AliasTarget': {
'DNSName': load_balancer_identifier,
'HostedZoneId': 'Z3DZXE0Q79N41H',
'EvaluateTargetHealth': False
}
}
}
]
}
)
self.logger.info("Delete route53 alias {} response: {}".format(external_dns_name, response))
答案 0 :(得分:2)
你需要TTL
喜欢:
response = client.change_resource_record_sets(
HostedZoneId=hostedzoneid,
ChangeBatch={
'Comment': 'add record',
'Changes': [
{
'Action': 'UPSERT',
'ResourceRecordSet': {
'Name': name,
'Type': 'A',
'TTL': ttl,
'ResourceRecords': [
{
'Value': value
}
]
}
}
]
}
)