Ruby / Amazon Route 53 Синтаксис и использование Ruby gem - PullRequest
1 голос
/ 23 января 2012

Я подумал, может ли кто-нибудь мне помочь, я новичок в ruby ​​и немного застрял при попытке написать скрипт, используя гем Amazon Web Service Route53.создайте новую зону и создайте записи с ней, она отлично работает.однако я не уверен, как указать зону при создании записи 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

Ответы [ 2 ]

1 голос
/ 11 апреля 2012

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

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 голосов
/ 06 сентября 2016

Переменная 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 :: Zone следующим образом:

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

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

...