GAEのバージョンアップを追いかけきれなくて、
と言われたまま長らく放置していたけれど、今日になって「最近同期ができない」というユーザさんからのクレームを3件もいただいたので、ちょっと調べてみました。
google.appengine.runtime.DeadlineExceededError が出ているのはMaster/Slaveだからか…。ちょっと仕事が落ち着いた?ので今のうちにえいやっとHRDにmigrateしようと思います。(2日に1回寝る生活から毎日寝る生活に戻ってきた)
Python2.7はHRD専用なので、まずはMaster/SlaveをHRDにmigrateしてからPython2.7化します。
HRD化
念のためサーバにある最新のソースをダウンロード ⇒ 手元にあるソースと同一でした(確認しただけ)
appcfg.py download_app -A atode-yomu -V 1 server/
- Master/Slaveの旧アプリの管理画面で、Administration - Application Settings を開く。
- 下の方に Duplicate Application Settings というセクションがあって、New Application Identifier に atode-yomu-hrd と入っているのでそのまま Check Availability の確認をして [Duplicate Application ...]
- app.yaml を application: atode-yomu に書き換えて appcfg.py update
- 2.の Duplicate Application Settings の上に Migrate Application というセクションがあるので [View Migration Tool...] ボタンをクリック
- Destination Application を atode-yomu-hrd にして、email受け取るチェックを入れたまま [Start Migration] !
- しばらくするとメールが来るので [Launch Incremental Copy] 開始
- Incremental Copy はすぐに終わってまたメールが来たので今後は [Acticate Read-only] 。表示が Waiting のまま Sync までいってないっぽくて Incremental Copy どうなったの?て感じで何度もやってみたけど進捗がないので。
- メールが来たのでHRDの新アプリの管理画面で軽く Data Viewer 使ってみて問題なさそうなので、Create Aliasセクションの [Finish Migration] をクリック!
移行するとKeyが変わるらしいけど ReferenceProperty 大丈夫なの? と思ったけど、どうやら自動的に変換してくれるもよう。ありがたや(-人-)
だったらもっと早くやっておけばよかったー←
英語の説明を一通り読んで、でも不安があるなーと思っていたけれど、こちらのブログがとても参考になりました。自分の理解が間違っていないことを確認できたというか(o'ヮ'o)
Python2.7化
- app.yaml 書き換え
- runtime: python27
- threadsafe: true 追加
- メインハンドラ /.* の指定をファイル名から WSGIApplicationインスタンス名に変更
- メインスクリプト
- __main__ のとき run_wsgi_app()する、、という実装を、グローバルに webapp2.WSGIApplicationインスタンスを置くだけに変更
- その他
- import django.utils.simplejson as json → import json
あっさりすんなりでした…(足かせはDatastoreがHRDでなかったことなので本体自体は別に問題なかった)
ここにきてやっと自分の端末に入っている「あとでよむ」アプリで動作確認…
やっぱり同期できないじゃん/(^o^)\
えー、あれー? GAE管理画面のログにも何も出てないよー?
あれ、もしかして atode.coffee-club.jp ドメインの中間サーバ(リバースプロキシ)が原因? → サーバ見に行く → ばっちりエラーログ出てたorz
元を正すと↓これ。
さくらさんから「おめーんとこオープンリゾルバになってね?」て怒られたので修正したなど
— tama (@tamacjp) 2014, 2月 18
BINDの再帰問い合せをdisableにした → それまでは 127.0.0.1(localhost) をリゾルバに使っていたけれどさくらサーバのDNSを見に行くようになった → 再起動していないApacheが引き続き 127.0.0.1 に問い合せをなげてエラーしていた → エラーするからリバースプロキシできない という流れ。Apacheを再起動したらすんなり同期できるようになりましたorz
まぁ…この機にHRD化できたし…結果オーライってことで(^^ゞ(作業的にはトータルで2〜3時間くらい?)
p.s. ついでにGAEのBillingも止めました。ひところより利用量減ってると思うし、HRDだからフリーの範疇でいけないかな…(せいぜい月1,000円とかだけど^^;)
0 件のコメント:
コメントを投稿