我正在编写一些 Ruby 代码来使用区域顶点虚拟 A 记录功能自动更新 Route53 DNS 区域(域)。但是,要设置此类记录,除了 FQDN 之外,还需要弹性负载均衡器托管区域 ID。
有谁知道最好的方法?(即任何可以做到这一点的宝石等?)我目前正在将 appoxy aws gem 与 pcorliss 的 route53 gem 结合使用。
谢谢。
我正在编写一些 Ruby 代码来使用区域顶点虚拟 A 记录功能自动更新 Route53 DNS 区域(域)。但是,要设置此类记录,除了 FQDN 之外,还需要弹性负载均衡器托管区域 ID。
有谁知道最好的方法?(即任何可以做到这一点的宝石等?)我目前正在将 appoxy aws gem 与 pcorliss 的 route53 gem 结合使用。
谢谢。
在现代AWS Ruby SDK 的 ELB 模块中,我提出了这个解决方案(部分伪代码):
credentials_data = # something
config = AWS.config(credentials_data)
elb_name = 'your.elb.dns.name.elb.amazonaws.com.'
elb_client = config.elb_client
response = elb_client.describe_load_balancers()
elbs = response[:load_balancer_descriptions]
the_elb = elbs.select {|elb| elb[:dns_name] == elb_name}.first
the_hosted_id = the_elb[:canonical_hosted_zone_name_id]
然后,稍后在执行 Route53 时,您可以将这些数据包含为:
# ...
:alias_target => {
:dns_name => elb_name,
:hosted_zone_id => the_hosted_id,
:evaluate_target_health => true, # or false, if you wish
},
# ...
我承认,我确实希望所有这些都有一个不错的“ruby-ish”(更惯用的)前端(或者也许有,我只需要去找它),但上面的方法对我有用股票aws-sdk
宝石。希望这在某些时候对某人有所帮助。
Aws gemAws::Elb
代码使用 AWS ELB API 版本 2009-05-15。从那时起,Amazon 进行了几次 API 版本更新 - 目前最新的是 2011 年 11 月 15 日。
DescribeLoadBalaners 响应的格式在版本 2009-05-15 和版本 2009-11-25 之间更改,这会破坏当前Aws::Elb
代码(Listeners
更改为ListenerDescriptions
)。此外,响应中的托管区域元素直到版本 2011-04-05 才添加。
可以通过破解Aws::Elb
源以使用最新的 API 并提取相关数据来获取托管区域信息。
现在我们只需要让 Aws 维护人员更新官方 gem。