Ваш файл app.yaml смешивает стандартные обработчики элемент> в гибкую конфигурацию среды, поэтому, вероятно, его игнорируют. Вы, вероятно, можете увидеть запросы cron в журналах приложения в консоли разработчика (хотя, вероятно, с ошибками).
Вам нужно добавить обработчик для /cronapp
внутри кода вашего приложения, а не в app.yaml
. Не совсем уверен, как вы это делаете (я все еще использую только стандартную среду), это зависит от вашего приложения и / или его фреймворка. Взгляните на обзор кода Hello World для фляги. пример.
Обновление:
Возможно, я не совсем прав, я основывал свой ответ на документации, но я просто заметил некоторые несоответствия (я отправил некоторые отзывы о документации в Google по этому поводу).
Гибкая среда Защита URL-адресов для cron (который в основном скопирован из эквивалента стандартной среды) упоминает несколько решений:
- один действительно основан на опции
login: admin
для handler
:
Вы можете ограничить URL, добавив login: admin
в раздел конфигурации обработчика в app.yaml
. Для получения дополнительной информации см. Защита URL-адресов.
Но handler
не упоминается в настройке ваше приложение с app.yaml и Защита URL-адресов указывает на несуществующий тег. Так что я не уверен, действительно ли это работает или нет.
- второй основан на заголовке
X-Appengine-Cron
(как и в стандартной среде):
Запросы от службы Cron также будут содержать заголовок HTTP:
X-Appengine-Cron: true
Заголовок X-Appengine-Cron
устанавливается внутри Google App Engine. Если ваш обработчик запросов находит этот заголовок, он может доверять тому, что запрос является запросом cron. Если заголовок присутствует в запросе внешнего пользователя к вашему приложению, он удаляется, за исключением запросов от зарегистрированных администраторов приложения, которым разрешено устанавливать заголовок для целей тестирования.
Но в удаленных заголовках это упомянул, что:
Кроме того, из запроса удаляются некоторые выбранные заголовки, соответствующие следующему шаблону:
Неясно, распространяется ли это на X-Appengine-Cron
или нет. Стоит попробовать. Это моя проверка в (стандартном env, на основе webapp2) коде обработчика cron:
if self.request.headers.get('X-AppEngine-Cron') is None:
self.abort(403) # HTTPForbidden
person
Dan Cornilescu
schedule
28.07.2017