AWS Boto Route53:为存储桶添加别名

3
我正在编写一个脚本,用于创建网站存储桶并为其分配DNS条目。
我不知道如何为apex正确分配适当的ALIAS记录,以使其指向存储桶。
此函数接收r53连接、区域对象和一个包含存储桶对象的字典。它尝试向区域添加正确的记录。
如何正确创建DNS条目以转发到存储桶?
请注意,www存储桶会转发到apex。
def create_website_records(r53,zone,buckets):
  records = r53.get_all_rrsets(zone.id)
  change = records.add_change('CREATE', zone.name, 'A',alias_hosted_zone_id=buckets['apex'])
  change.add_value('%s' % buckets['apex'].get_website_endpoint())
  change = records.add_change('CREATE', 'www.' + zone.name, 'CNAME')
  change.add_value('%s' % buckets['www'].get_website_endpoint())
  records.commit()
  return records
1个回答

1

显然,你无法通过API获取存储桶的hosted_zone_id

https://forums.aws.amazon.com/thread.jspa?threadID=116724#

你需要手动设置托管区域(可以在这里查找)。我的方法最终看起来像这样:
def create_website_records(r53,zone,buckets):
  records = r53.get_all_rrsets(zone.id)
  change = records.add_change('CREATE', zone.name,    'A',alias_hosted_zone_id='Z3AQBSTGFYJSTF',alias_dns_name='s3-website-us-east-1.amazonaws.com')
  change.add_value('ALIAS s3-website-us-east-1.amazonaws.com (Z3AQBSTGFYJSTF)')
  change = records.add_change('CREATE', 'www.' + zone.name, 'CNAME')
  change.add_value('%s' % buckets['www'].get_website_endpoint())
  records.commit()
  return records

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接