2012-01-23 3 views
1

Я задавался вопросом, может ли кто-нибудь мне помочь, я довольно новичок в рубине и немного застрял при попытке написать сценарий, используя камень Amazon Web Service Route53.Ruby/Amazon Route 53 Ruby gem синтаксис и использование

При использовании сценария примера для создания новой зоны и создания записей с ним он отлично работает. однако я не уверен, как указать зону при создании записи CNAME. объект new_zone отличается, и я не уверен, как он работает.

Я пытаюсь это сделать, просто создайте новую запись cname. Я использую документацию здесь: http://rubydoc.info/gems/route53/0.2.1/frames

new_zone = 'abcd.net. /hostedzone/Z4W3K5G8FBG6R' 

new_record = Route53::DNSRecord.new("cbs.abcd.net.","CNAME","3600",["abcd.net."],new_zone) 
resp = new_record.create 

как указать зону? Я пытаюсь сделать это с помощью строки, но он не ...

/var/lib/gems/1.8/gems/route53-0.2.1/lib/route53.rb:364:in `create': undefined method `perform_actions' for "abcd.net. /hostedzone/Z4W3K5G8FBG6R":String (NoMethodError) 
    from ./cname.rb:12 

ответ

1

Это может быть решена, только я нашел этот вопрос:

require 'route53' 

HOSTED_ZONE_ID = "your_hosted_zone_id" 

conn = Route53::Connection.new('AccessKey', 'SecretKey') 
new_zone = Route53::Zone.new("example.com.", "/hostedzone/#{HOSTED_ZONE_ID}", conn) # you need to pass connection 
new_record = Route53::DNSRecord.new("foo.example.com.","CNAME","3600", ["example.com."],new_zone) 
resp = new_record.create 
0

Переменная new_zone не является строкой, но является объектом Route53 :: Zone.

Если вы хотите использовать существующую зону, вам нужно будет либо принести существующую зону объектов в массив, как это:

conn = Route53::Connection.new('access_key','secret_key') 
zones = conn.get_zones("abcd.net.") 
new_record = Route53::DNSRecord.new("cbs.abcd.net.", "CNAME", "3600", ["abcd.net."], zones.first) 
resp = new_record.create 

или инициализировать объект Route53 :: зоны, как это:

conn = Route53::Connection.new('access_key','secret_key') 
zone = Route53::Zone.new("abcd.net.", "/hostedzone/Z4W3K5G8FBG6R", conn) 
new_record = Route53::DNSRecord.new("cbs.abcd.net.", "CNAME", "3600", ["abcd.net."], zone) 
resp = new_record.create 

(я предполагаю, что это повторяет ответ выше, но немного больше объяснений помогает)

Смежные вопросы