57357


お世話になります。

GCPとDjangoで定期的1日1回動かしたい、処理があります。

[code]

    cron:
    - description: "hoge"
      url: /batch/hoge
      schedule: every day 00:00
      timezone: Asia/Tokyo
    
[/code]

`https://example.com/batch/hoge`(これをcurlで叩くと実行される)

というようなものを作ったのですが、こちらのcron.yamlをdeployしてしまうと、外部アクセスがあったときもこの処理がされてしまいます。

これを防ぐためにはどうしたら良いのでしょうか。

普通は、`/batch/xxx`などにスクリプトを書いて、crontabで動かすと思うのですが、GCPでもそのようなことはできるのでしょうか。またこのスクリプトにはDjangoの機能は使っておらず、素のpythonスクリプトになります。


CC BY-SA 4.0
2019-08-13T15:41:35.043
57333
2019-08-14T07:47:07.853
14968
question
python django
GCPとDjangoでbatch処理


GCPのCronはリクエストヘッダーに自動でパラメーターを付加してくれます。

> X-Appengine-Cron: true

リクエストの結果を調査して、上記のヘッダーがなければ処理がされないようにアプリケーションを作ってはどうでしょう。

<https://cloud.google.com/appengine/docs/standard/go/config/cronref?hl=ja#cron_requests>


CC BY-SA 4.0
2019-08-14T07:47:07.853
57357
2019-08-14T07:47:07.853
22665
57333
answer