我正在编写一些 Ruby 代码以使用区域顶点虚拟 A 记录功能自动更新 Route53 DNS 区域(域)。但是,要设置此类记录,除了 FQDN 之外还需要 Elastic Load-balancer 托管区域 ID。
有谁知道最好的方法吗? (即任何可以做到的 gem 等?)我目前正在将 appoxy aws gem 与 pcorliss 的 route53 gem 结合使用。
谢谢。
在现代AWS Ruby SDK's ELB module ,我想出了这个解决方案(部分伪代码):
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
gem。希望这在某些时候对某人有帮助。
我是一名优秀的程序员,十分优秀!