Paul C が言ったことに加えて、以下に示すように、 X-Appengine-Cronヘッダーをチェックするデコレータを作成できます。ところで、ヘッダーはスプーフィングできません。つまり、cron ジョブから発信されたものではないリクエストにこのヘッダーがある場合、App Engine はヘッダーの名前を変更します。この場合、 X-AppEngine-TaskNameをチェックする、タスク用の同様のメソッドを作成することもできます。
"""
Decorator to indicate that this is a cron method and applies request.headers check
"""
def cron_method(handler):
def check_if_cron(self, *args, **kwargs):
if self.request.headers.get('X-AppEngine-Cron') is None:
self.error(403)
else:
return handler(self, *args, **kwargs)
return check_if_cron
そしてそれを次のように使用します:
class ClassName(webapp2.RequestHandler):
@cron_method
def get(self):
....