2015年3月15日日曜日

GAE/Python の Backend Instance を使う

GAE/Python は、9時間/日の Backend Instance 無料枠があります。

この無料枠を使う方法をメモっておきます。

[公式ドキュメント]
https://cloud.google.com/appengine/docs/python/modules/

【重要】
・Backends Python API は、2014/3/13 に停止されています。
・WEB上の古い記事に注意しましょう。

[利用ケース]
この Backend Instance は、Cron で起動して、バッチ処理に使うとよいでしょう。

[必要なファイル]
app.yaml
dispatch.yaml
backend.yaml
cron.yaml

[app.yaml]
デフォルト(Frontend Instance)の設定ファイルです。

例:自動スケーリング(F1)を使用します。
-- ここから --
application: <アプリケーション名>
module: default
version: 1
runtime: python27
api_version: 1
threadsafe: true

instance_class: F1
automatic_scaling:
 max_idle_instances: 1
 min_pending_latency: 15.0s

handlers:
- url: /.*
 script: <スクリプト>
-- ここまで --

[dispatch.yaml]
どの処理を Backend Instance に渡すかを記述します。

例: /backend にリクエストがあった場合、module:backend を利用します。
-- ここから --
application: <アプリケーション名>
dispatch:
- url: "*/backend/*"
 module: backend
-- ここまで --

[backend.yaml]
バックエンドの設定ファイルです。

例:基本スケーリング(B1)を使用します。
-- ここから --
application: <アプリケーション名>
module: backend
version: 1
runtime: python27
api_version: 1
threadsafe: true

instance_class: B1
basic_scaling:
 max_instances: 1
 idle_timeout: 10m

handlers:
- url: /.*
 script: <スクリプト>
-- ここまで --

[Cron.yaml]
Cron で処理を起動するには、cron.yaml を準備します。

例: 毎日 02:00 に、/backend/cron/day の処理を起動します。
-- ここから --
cron:
- description: Cron Day Job of Backend
 url: /backend/cron/day
 schedule: every day 02:00
 timezone: Asia/Tokyo
 target: backend
-- ここまで --

[開発用サーバの起動]
$ google_appengine/dev_appserver.py app.yaml dispatch.yaml backend.yaml

[デプロイ]
$ google_appengine/appcfg.py update app.yaml backend.yaml

[参考]
http://www.topgate.co.jp/blog/20140715

0 件のコメント:

コメントを投稿