Заголовок хоста GAE urfetch установлен на IP-адрес вместо имени хоста

Я вызываю стороннюю веб-службу из механизма приложения. Эта конкретная услуга требовательна. Я столкнулся с проблемой, из-за которой звонки некоторое время работали нормально, затем переставали работать, а затем снова начинали работать. Я понял, что если я вручную остановлю все экземпляры в консоли администратора, вызовы снова будут работать.

Я настроил прокси-сервер для маршрутизации вызовов через него, чтобы я мог видеть заголовки и все подробности. Я думаю, что я отследил проблему до следующего. После того, как экземпляр был запущен некоторое время (приложению обычно требуется от 1 до 3 экземпляров прямо сейчас), механизм приложения начнет использовать IP-адрес пункта назначения в качестве значения для заголовка хоста вместо имени хоста. Ну сервису это не нравится. Другой вопрос, следует ли это заботиться.

Итак, мой вопрос: почему движок приложения в конечном итоге использует IP-адрес для заголовка хоста вместо имени хоста? И, конечно же, могу ли я что-нибудь с этим поделать? Я знаю, что не могу установить заголовок хоста, но, возможно, можно сделать что-то еще.

Спасибо за любое понимание.


person Jay    schedule 23.06.2014    source источник


Ответы (1)


Во-первых, спасибо за обнаружение этого поведения. У нас были периодические проблемы с urfetch в течение длительного времени, и мы попытаемся определить, не в этом ли проблема.

Одна вещь, которую вы можете попробовать, это настроить таргетинг на конкретный экземпляр/модуль:

http://instance.version.module.app-id.appspot.com

и прокручивайте экземпляры. Если вы просто нацелитесь на модуль, он убьет экземпляр после некоторого бездействия. Так что, возможно, это не вызовет ярлык GAE DNS.

Еще один прием — добавить фальшивую случайную строку запроса после вашего URL: ?foo=D7hfka67h. Возможно, это помешает GAE распознать повторный URL-адрес и попытаться сократить DNS.

person GAEfan    schedule 23.06.2014