如何在Ruby中获取AWS ELB的托管区域ID?
我正在编写一些Ruby代码,以使用Zone apex虚拟A记录功能自动更新Route53 DNS区域(域)。但是,要设置此类记录,除了FQDN之外,还需要弹性负载平衡器承载的区域ID 有人知道最好的方法吗?(即,有任何宝石等可以做到这一点?) 我目前正在使用appoxy aws gem和pcorliss的route53 gem如何在Ruby中获取AWS ELB的托管区域ID?,ruby,amazon-ec2,amazon-web-services,amazon-elb,Ruby,Amazon Ec2,Amazon Web Services,Amazon Elb,我正在编写一些Ruby代码,以使用Zone apex虚拟A记录功能自动更新Route53 DNS区域(域)。但是,要设置此类记录,除了FQDN之外,还需要弹性负载平衡器承载的区域ID 有人知道最好的方法吗?(即,有任何宝石等可以做到这一点?) 我目前正在使用appoxy aws gem和pcorliss的route53 gem 谢谢。Aws gemAws::Elb代码使用的是Aws Elb API版本2009-05-15。自那以后,Amazon进行了几次API版本更新,最近一次是2011年11月
谢谢。Aws gem
Aws::Elb
代码使用的是Aws Elb API版本2009-05-15。自那以后,Amazon进行了几次API版本更新,最近一次是2011年11月15日
在2009-05-15版和2009-11-25版之间更改了DescribeLoadBalaners响应的格式,这打破了当前的Aws::Elb
代码(Listeners
更改为ListenerDescriptions
)。此外,响应中的主体分区元素直到2011-04-05版本才添加
通过破解Aws::Elb
源代码,使用最新的API并提取相关数据,可以获取托管区域信息
现在我们只需要让Aws维护人员更新官方gem。在现代,我提出了这个解决方案(部分伪代码):
credentials_data=#某物
config=AWS.config(凭证和数据)
elb_name='your.elb.dns.name.elb.amazonaws.com'
elb_client=config.elb_client
response=elb\u client.description\u load\u balancers()
elbs=响应[:负载\平衡器\说明]
|elb=elbs.select{| elb | elb[:dns_name]==elb_name}
_hosted_id=_elb[:规范的_hosted_zone_name_id]
然后,稍后在执行Route53任务时,您可以将这些数据包括在内,如下所示:
#。。。
:别名_目标=>{
:dns_name=>elb_name,
:hosted_zone_id=>_hosted_id,
:evaluate_target_health=>true、#或false,如果您愿意
},
# ...
我承认,我真希望这一切都有一个好的“ruby-ish”(更惯用的)前端(或者可能有,我只需要去寻找它),但是上面的内容对我使用stockaws sdk
gem很有用。希望这对某些人有所帮助