仕事はじめ&GAEでバッチが動かなかった問題解決した

 個人的には今日が仕事始め。正月ボケというやつか、そこそこ睡眠時間とってるはずなのに眠い。


 正月休み中に上手く動かなくて苦い思いをしたGAEでflexなcronも何とか動かせた。

 そのうちちゃんとまとめるとして、引っかかったポイントは↓みたいな感じ。

  • サービスごとにuriが重複しないようにする
  • ↑のuriにアクセスできるようにdispatch.yamlを記述する
  • cron.yamlではtarget項で指定するのではなく上記のuriを指定する
  • webのエンドポイントを叩いて駆動するので、ファイアーウォールで塞いでしまうと失敗する(dispatchされた方だと0.1.0.1では不足っぽい。10.0.0.1から叩かる?)
  • flexだとapp.yamlでuriごとにアクセス制限するlogin: adminが使えなそう(そんでもってググって出て来るリクエストヘッダX-Appengine-Cronを見るってのも試したんだけど、なんか上手くいかない)

 ひとまずこれで動くことは動いた。色々と「?」な部分はあるし公式ドキュメント怪しいし、ググっても古い記事ばっかりでどこまで参考にできるか怪しかったりするけれど、とりあえず技術要素的にはやりたい要件は満たした。時間を見つけてコツコツ作業していきたい。


 flex使うと折角のGAEの便利機能が色々使えないが、standardは突っ込んだ用途に使うには辛い・・・というところでふと思ったんだが、今

  • standardなウェブアプリをdefault
  • flexibleなバッチをsub

という構成にしてるのを逆に

  • flexibleなバッチをdefault
  • standardなウェブアプリをsub

にすれば、リクエストヘッダ周りはドキュメント通りのが来てくれるんじゃないかって気がしてきた。時間見つけて試す。