EC2 在实例停止然后重新启动时会为其提供一个新的 IP 地址,因此我需要能够自动管理 route53 记录集,以便我可以一致地访问事物。遗憾的是,sdk 的 route53 部分的文档并不像 ec2 的那么健壮(可以理解),所以我有点卡住了。从到目前为止我所看到的情况来看,似乎change_resource_record_sets
( link ) 是要走的路,但我对需要进入的内容感到困惑,:chages
因为它提到了一个Change
对象,但未能提供对所述对象的描述的链接。
这是我的代码当前的创建内容:
r53.client.change_resource_record_sets(:hosted_zone_id => 'MY_ID', :change_batch => {
:changes => 'I DONT KNOW WHAT GOES HERE',
:action => 'CREATE',
:resource_record_set => {
:name => @instance.instance_name,
:type => 'CNAME',
:ttl => 330,
:value => @instance.ip_address
}})
编辑:好的,因为我在这里或在官方论坛上都没有得到任何帮助,所以我自己一直在搞砸。所以事实证明,文档简直太糟糕了。所有的值都存储在一个Change
对象中,而不是在那里给出。所以它实际上看起来更像这样:
some_change = AWS::Route53::CreateRequest.new(@instance.instance_name,
'CNAME',
:ttl => 330,
:resource_records => [
{:value => @instance.ip_address}
])
r53.client.change_resource_record_sets(:hosted_zone_id => 'MY_ZONE', :change_batch => {
:changes => [some_change],
})