【问题标题】:Using Ruby AWS SDK to create a Route53 alias to a Cloudfront distribution使用 Ruby AWS 开发工具包为 Cloudfront 分配创建 Route53 别名
【发布时间】:2014-11-30 14:33:21
【问题描述】:

我正在尝试自动创建在 Route53 托管 DNS 上提供服务的 S3 支持的 CloudFront 缓存网站。

我可以使用静态网站托管创建 S3 存储桶,并且我知道如何创建 CloudFront 分配和 Route53 记录,但是在创建作为 CloudFront 分配别名的 Route53 记录时,需要提供“托管区域 ID” " - Route53 接口没有问题,但我不知道如何使用 AWS 开发工具包获取该信息。

这是我所拥有的:

def create_cf(domain)
  AWS::CloudFront.new.client.create_distribution distribution_config: createOptions(domain)
end

def create_r53(cfdistro, domain)
  target = {
    hosted_zone_id: cfdistro.id,
    dns_name: cfdistro.domain_name,
    evaluate_target_health: false
  }
  AWS::Route53.new.hosted_zones[myzone].rrsets.create "#{domain}.", 'A',
    alias_target: target
end

不幸的是,从 create_distribution(或 get_distribution)返回的字段 id 是 CloudFront 控制台显示为分配的 ID,但不是 Route53 的控制台在我选择 CloudFront 分配作为别名时显示的内容目标。我实际上不知道在 CloudFront 控制台中的哪里可以找到托管区域 ID!

【问题讨论】:

    标签: ruby amazon-web-services amazon-cloudfront amazon-route53


    【解决方案1】:

    好吧,这很愚蠢 - 正如 AWS Route53 documentation 中所述,所有 CloudFront 分配都托管在 ID 为 Z2FDTNDATAQYW2 的区域中。

    “托管区域 ID”(我在进一步阅读后发现)是 Route53 区域的加密标识符。公共 AWS 域(例如 cloudfront.net)的 Route53 区域 ID 由 Amazon 在其文档中发布,正是出于此目的。

    我上面的代码应该是:

    def create_r53(cfdistro, domain)
      target = {
        hosted_zone_id: 'Z2FDTNDATAQYW2',
        dns_name: cfdistro.domain_name,
        evaluate_target_health: false
      }
      AWS::Route53.new.hosted_zones[myzone].rrsets.create "#{domain}.", 'A',
        alias_target: target
    end
    

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 2015-08-17
      • 2014-03-03
      • 2022-07-11
      • 2013-07-19
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      相关资源
      最近更新 更多