Я пытаюсь использовать IP экземпляра на AWS OpsWorks в рецептуре шеф-повара, код выглядит следующим образом:OpsWorks Config Data: TypeError - Символ как индекс массива
variables(
:db_host => (node[:scraper][:db_host] rescue nil),
:db_user => (node[:scraper][:db_user] rescue nil),
:db_pass => (node[:scraper][:db_pass] rescue nil),
:db_name => (node[:scraper][:db_name] rescue nil),
:beanstalk_host => (node[:opsworks][:layers][:admin][:instances].first[:private_ip])
)
Но я получаю ошибку TypeError - Symbol as array index
,
Я не разработчик Ruby, поэтому я немного потерялся, чтобы попробовать. список Даже документы, что синтаксис:
Следующий пример получает частный IP-адрес первого экземпляра слоя HAproxy в:
node[:opsworks][:layers][:lb][:instances].first[:private_ip]
При входе значение node[:opsworks][:layers][:admin][:instances].first
я получаю:
["admin1", {"elastic_ip"=>"54.221.245....
Спасибо. Журнал смутил меня, не был уверен, что шеф-повар каким-то образом запустил ключ «первого» элемента хэша, а также данные. Кажется, что либо документация AWS неверна в структуре данных, либо '.first' возвращает данные так, как я не видел документально. В любом случае, это работает, и я понимаю, что происходит. –