Настройка приложения рабочего уровня AWS

У меня есть приложение rails, размещенное на ASW Elastic Beanstalk (рабочий уровень), и я хочу настроить обычную рассылку. Я включил файл cron.yaml в корень моего приложения, который выглядит следующим образом.

cron.yaml

version: 1
cron:
 - name: "test-email"
   url: "/schedule/send_test_email"
   schedule: "*/10 * * * *"

Из рейк-маршрутов

POST /schedule/send_test_email(.:format) расписание#send_test_email

Конечная точка API, в которую я публикую

def send_test_email
  Merchant.test_production_email
  render json: nil, status: :ok
end

И из журналов

-------------------------------------
/var/log/aws-sqsd/default.log
-------------------------------------
2015-10-23T07:09:59Z message: sent to %[http://localhost:80/schedule/send_test_email]
2015-10-23T07:09:59Z http-err: 257fb276-d39e-4068-baf0-9106434674c5 (1) 502 - 0.004
2015-10-23T07:10:01Z message: sent to %[http://localhost:80/schedule/send_test_email]
2015-10-23T07:10:01Z http-err: 257fb276-d39e-4068-baf0-9106434674c5 (2) 502 - 0.007
2015-10-23T07:10:03Z message: sent to %[http://localhost:80/schedule/send_test_email]
2015-10-23T07:10:03Z http-err: 257fb276-d39e-4068-baf0-9106434674c5 (3) 502 - 0.004
2015-10-23T07:10:05Z message: sent to %[http://localhost:80/schedule/send_test_email]

HTTP-запрос, отправленный локально на localhost:3000/schedule/send_test_email, возвращает 200.

Устранение неполадок Amazon на 502 Bad Gateway

Описание. Указывает, что балансировщику нагрузки не удалось проанализировать ответ, отправленный зарегистрированным экземпляром.

Причина: искаженный ответ экземпляра или возможная проблема с балансировщиком нагрузки.

Решение. Убедитесь, что ответ, отправляемый экземпляром, соответствует спецификациям HTTP.

Я действительно не знаю, что это за проблема и как ее отладить. Помощь очень ценится.


person Iain Watt    schedule 23.10.2015    source источник
comment
Я решил это. На самом деле это была проблема с отсутствующим секретным_токеном. Добавлен   -  person Iain Watt    schedule 23.10.2015
comment
secret_token: ‹%= ENV[SECRET_TOKEN] %› в secrets.yml, а затем использовал команды rake secret для создания секретного токена, а затем eb setenv SECRET_TOKEN=********* для его установки, затем eb deploy и затем все работает !!   -  person Iain Watt    schedule 23.10.2015
comment
Пожалуйста, ответьте на свой вопрос и примите его   -  person Tal    schedule 27.10.2015


Ответы (1)


Я решил это. На самом деле это была проблема с отсутствующим секретным_токеном.

secret_token: ‹%= ENV["SECRET_TOKEN"] %> в secrets.yml, а затем использовал команды rake secret для создания секретного токена, а затем eb setenv SECRET_TOKEN=********* для его установки, затем eb deploy и затем оно работает!!

person Iain Watt    schedule 27.10.2015