Module: Aws::Route53

Defined in:
lib/roadworker/route53-ext.rb

Constant Summary collapse

S3_WEBSITE_ENDPOINTS =
{
  's3-website-ap-northeast-1.amazonaws.com' => 'Z2M4EHUR26P7ZW',
  's3-website.ap-northeast-2.amazonaws.com' => 'Z3W03O7B5YMIYP',
  's3-website.ap-south-1.amazonaws.com'     => 'Z11RGJOFQNVJUP',
  's3-website-ap-southeast-1.amazonaws.com' => 'Z3O0J2DXBE1FTB',
  's3-website-ap-southeast-2.amazonaws.com' => 'Z1WCIGYICN2BYD',
  's3-website.eu-central-1.amazonaws.com'   => 'Z21DNDUVLTQW6Q',
  's3-website-eu-west-1.amazonaws.com'      => 'Z1BKCTXD74EZPE',
  's3-website-sa-east-1.amazonaws.com'      => 'Z7KQH4QJS55SO',
  's3-website-us-east-1.amazonaws.com'      => 'Z3AQBSTGFYJSTF',
  's3-website-us-gov-west-1.amazonaws.com'  => 'Z31GFT0UA1I2HV',
  's3-website-us-west-1.amazonaws.com'      => 'Z2F56UZL2M1ACD',
  's3-website-us-west-2.amazonaws.com'      => 'Z3BJ6K6RIION7M',
}
CANONICAL_HOSTED_ZONE_NAME_IDS =
{
  'ap-northeast-1' => 'Z2YN17T5R711GT',
  #'ap-northeast-2' => '',
  #'ap-south-1'     => '',
  'ap-southeast-1' => 'Z1WI8VXHPB1R38',
  'ap-southeast-2' => 'Z2999QAZ9SRTIC',
  'eu-central-1'   => 'Z215JYRZR1TBD5',
  'eu-west-1'      => 'Z3NF1Z3NOM5OY2',
  'sa-east-1'      => 'Z2ES78Y61JGQKS',
  'us-east-1'      => 'Z3DZXE0Q79N41H',
  'us-west-1'      => 'Z1M58G0W56PQJA',
  'us-west-2'      => 'Z33MTJ483KN6FU',
}
DUALSTACK_CANONICAL_HOSTED_ZONE_NAME_IDS =
{
   'ap-northeast-1' => 'Z14GRHDCWA56QT',
   'ap-northeast-2' => 'ZWKZPGTI48KDX',
   'ap-south-1'     => 'ZP97RAFLXTNZK',
   'ap-southeast-1' => 'Z1LMS91P8CMLE5',
   'ap-southeast-2' => 'Z1GM3OXH4ZPM65',
   'eu-central-1'   => 'Z215JYRZR1TBD5',
   'eu-west-1'      => 'Z32O12XQLNTSW2',
   'sa-east-1'      => 'Z2P70J7HTTTPLU',
   'us-east-1'      => 'Z35SXDOTRQ7X7K',
   'us-west-1'      => 'Z368ELLRRE2KJ0',
   'us-west-2'      => 'Z1H1FL5HABSF5',
}
NLB_CANONICAL_HOSTED_ZONE_NAME_IDS =
{
  'us-east-2' => 'ZLMOA37VPKANP',
  'us-east-1' => 'Z26RNL4JYFTOTI',
  'us-west-1' => 'Z24FKFUX50B4VW',
  'us-west-2' => 'Z18D5FSROUN65G',
  'ap-south-1' => '  ZVDDRBQ08TROA',
  # 'ap-northeast-3' => '',
  'ap-northeast-2' => 'ZIBE1TIR4HY56',
  'ap-southeast-1' => 'ZKVM4W9LS7TM',
  'ap-southeast-2' => 'ZCT6FZBF4DROD',
  'ap-northeast-1' => 'Z31USIVHYNEOWT',
  'ca-central-1' => 'Z2EPGBW3API2WT',
  # 'cn-north-1' => '',
  # 'cn-northwest-1' => '',
  'eu-central-1' => 'Z3F0SRJ5LGBH90',
  'eu-west-1' => 'Z2IFOLAFXWLO4F',
  'eu-west-2' => 'ZD4D7Y8KGAS4G',
  'eu-west-3' => 'Z1CMS0P5QUZ6D5',
  'eu-north-1' => 'Z1UDT6IFJ4EJM',
  'sa-east-1' => 'ZTK26PT1VY4CU',
}
CF_HOSTED_ZONE_ID =
'Z2FDTNDATAQYW2'
ELASTIC_BEANSTALK_HOSTED_ZONE_NAME_IDS =
{
  'ap-northeast-1' => 'Z1R25G3KIG2GBW',
  'ap-northeast-2' => 'Z3JE5OI70TWKCP',
  'ap-south-1'     => 'Z18NTBI3Y7N9TZ',
  'ap-southeast-1' => 'Z16FZ9L249IFLT',
  'ap-southeast-2' => 'Z2PCDNR3VC2G1N',
  'eu-central-1'   => 'Z1FRNW7UH4DEZJ',
  'eu-west-1'      => 'Z2NYPWQ7DFZAZH',
  'sa-east-1'      => 'Z10X7K2B4QSOFV',
  'us-east-1'      => 'Z117KPS5GTRQ2G',
  'us-east-2'      => 'Z14LCN19Q5QHIC',
  'us-west-1'      => 'Z1LQECGX5PH1X',
  'us-west-2'      => 'Z38NKT9BP95V3O',
}
API_GATEWAY_HOSTED_ZONE_NAME_IDS =
{
  "us-east-2"       => "ZOJJZC49E0EPZ",
  "us-east-1"       => "Z1UJRXOUMOOFQ8",
  "us-west-1"       => "Z2MUQ32089INYE",
  "us-west-2"       => "Z2OJLYMUO9EFXC",
  "ap-south-1"      => "Z3VO1THU9YC4UR",
  "ap-northeast-3"  => "Z2YQB5RD63NC85",
  "ap-northeast-2"  => "Z20JF4UZKIW1U8",
  "ap-southeast-1"  => "ZL327KTPIQFUL",
  "ap-southeast-2"  => "Z2RPCDW04V8134",
  "ap-northeast-1"  => "Z1YSHQZHG15GKL",
  "ca-central-1"    => "Z19DQILCV0OWEC",
  "eu-central-1"    => "Z1U9ULNL0V5AJ3",
  "eu-west-1"       => "ZLY8HYME6SFDD",
  "eu-west-2"       =>  "ZJ5UAJN8Y3Z2Q",
  "eu-west-3"       =>  "Z3KY65QIEKYHQQ",
  "sa-east-1"       =>  "ZCMLWB8V5SYIT"
}

Class Method Summary collapse

Class Method Details

.dns_name_to_alias_target(name, options, hosted_zone_id, hosted_zone_name) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/roadworker/route53-ext.rb', line 126

def dns_name_to_alias_target(name, options, hosted_zone_id, hosted_zone_name)
  hosted_zone_name = hosted_zone_name.sub(/\.\z/, '')
  name = name.sub(/\.\z/, '')
  options ||= {}

  if name =~ /([^.]+)\.elb\.amazonaws.com\z/i
    # CLB or ALB
    region = $1.downcase
    alias_target = elb_dns_name_to_alias_target(name, region, options)

    # XXX:
    alias_target.merge(options)
  elsif name =~ /\.elb\.([^.]+)\.amazonaws\.com\z/i
    # NLB
    region = $1.downcase
    alias_target = nlb_dns_name_to_alias_target(name, region, options)
  elsif (s3_hosted_zone_id = S3_WEBSITE_ENDPOINTS[name.downcase]) and name =~ /\As3-website-([^.]+)\.amazonaws\.com\z/i
    region = $1.downcase
    s3_dns_name_to_alias_target(name, region, s3_hosted_zone_id)
  elsif name =~ /\.cloudfront\.net\z/i
    cf_dns_name_to_alias_target(name)
  elsif name =~ /(\A|\.)#{Regexp.escape(hosted_zone_name)}\z/i
    this_hz_dns_name_to_alias_target(name, hosted_zone_id, options)
  elsif name =~ /\.([^.]+)\.elasticbeanstalk\.com\z/i
    region = $1.downcase
    eb_dns_name_to_alias_target(name, region)
  elsif name =~ /\.execute-api\.([^.]+)\.amazonaws\.com\z/i
    region = $1.downcase
    apigw_dns_name_to_alias_target(name, region, hosted_zone_id)
  elsif name =~ /\.([^.]+)\.vpce\.amazonaws\.com\z/i
    region = $1.downcase
    vpce_dns_name_to_alias_target(name, region, hosted_zone_id)
  else
    raise "Invalid DNS Name: #{name}"
  end
end

.normalize_dns_name_options(src) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
# File 'lib/roadworker/route53-ext.rb', line 114

def normalize_dns_name_options(src)
  dst = {}

  {
    :evaluate_target_health => false,
  }.each do |key, defalut_value|
    dst[key] = src[key] || false
  end

  return dst
end