Как запускать cronjobs Google App Engine в Django только в том случае, если вызывающим является движок приложений Google?

#python #django #google-app-engine #deployment

#python #django #google-app-engine #развертывание

Вопрос:

Я развернул свой проект Django в Google App Engine. Я хочу добавить cronjobs в свой проект Django, и для этого есть классная функция в Google App Engine.

Если я хорошо понимаю, я должен создать функции GET для своих cronjobs в моем views.py . Но как мне сделать их вызываемыми только App Engine и никем другим? Или, может быть, есть лучшее решение для cronjobs в Django?

Комментарии:

1. Это действительно зависит от ваших потребностей — вы должны предоставить больше информации о своем приложении, чтобы дать лучший контекст. AWS предоставляет бесплатный уровень, который был бы хорош для простого приложения «4 fun» и для бесплатного изучения чего-либо. Если вы хотите развернуть что-то, что потребует лучшей производительности (из-за большего трафика или из-за сложности вычислений в вашем приложении), вам следует подумать о чем-то другом, но это зависит от ваших потребностей.

2. @rafaljusiak Я все еще разрабатываю приложение, это не для развлечения, и я пока не знаю, насколько большой трафик я могу исключить.

3. Если вы не знаете, насколько велик будет ваш трафик, вам не стоит беспокоиться об этом на ранней стадии. Я думаю, что в этом случае вы можете попробовать использовать бесплатный уровень AWS (EC2 RDS и S3, если необходимо) — просто потому, что он бесплатный. Если ваш сайт будет слишком медленным для пользователей из-за ограничений сервера, вы всегда можете переключиться на какой-нибудь платный план.

Ответ №1:

Вы можете подтвердить свой запрос, проверив заголовок X-Appengine-Cron в своей конечной точке. Этот заголовок предоставляется только тогда, когда ваша конечная точка запускается заданиями GAE cron.

Ссылка для ссылки: https://cloud.google.com/appengine/docs/standard/python3/scheduling-jobs-with-cron-yaml#validating_cron_requests