В настоящее время я использую механизм приложений nodejs (гибкая среда) для выполнения запланированных задач, таких как выключение и запуск экземпляров или создание моментальных снимков. Проблема в том, что эти App Engine доступны отовсюду, но я хочу, чтобы они были доступны только в моей облачной сети Google. Я не могу заставить брандмауэр работать таким образом. Кто-нибудь знает, есть ли способ сделать это или нет?
Как разрешить только внутренние (cron) запросы в моем App Engine
Ответы (1)
Чтобы принудительно запускать задания cron только в сети Google Cloud Network, вы можете проверить заголовок X-Appengine-Cron: true
запроса, а IP-адрес клиента — 0.1.0.1
.
Из документации:
Возможно, вы захотите проверить, что запросы к вашим URL-адресам cron поступают из App Engine, а не из другого источника. Вы можете сделать это, проверив заголовок HTTP и исходный IP-адрес для запроса:
Запросы от службы Cron также будут содержать HTTP-заголовок:
X-Appengine-Cron: true
Заголовок X-Appengine-Cron задается внутри Google App Engine. Если ваш обработчик запросов находит этот заголовок, он может быть уверен, что запрос является запросом cron. Заголовки X удаляются App Engine, когда они происходят из внешних источников, чтобы вы могли доверять этому заголовку.
- Google App Engine отправляет cron-запросы с IP-адреса 0.1.0.1.
X-Appengine-Cron
, но не все заголовки X-
. Я предполагаю, что любые X-
заголовки, которые использует appengine, будут удалены. Я смог отправить X-AppengineCrn
просто отлично (для проверки работоспособности почтальон работал)
- person Jer_TX; 11.10.2019