こちらをご参照下さい→『GAE-Cron』のソース&サービス登録サイト公開 - 風柳メモ
『GAE-Cron』のソース&サービス登録サイト公開
この記事は Google App Engine の Python 2.5 runtime 版 GAE-Cron について書かれたものです。
Python 2.7 runtime 版 GAE-Cron のソースファイルは、
GAE-Cronの説明書
furyutei/GAE-Cron · GitHub
GAE-Cronソースファイルダウンロード
にて公開中です。
2014年現在、Python 2.5 runtime 版アプリケーションは、Google App Engine 上では新規に作成できなくなっている模様です。
2013年以前に Python 2.5 runtime で作成したアプリケーションはまだ動作しています(将来的には動作しなくなる可能性があります)。
バージョン2.7への移行を:Google App Engine、Python 2.5ランタイムを非推奨に - @IT
Google App Engine Blog: Python 2.5, thanks for the good times
GAE-Cronがなぜか好評みたいで、おかわりぶんもなくなったみたいなので、
- ソースを公開しました(ダウンロードはこちら)。
下の解説を読んでサービスを立上げてみてください。 - 各自がアップロード(デプロイ)したGAE-Cronを登録するサイトを作りました。
ゼットンでも倒せそうな勢いのやっつけ仕事なので、いろいろ不具合はあるかと思いますが、ご容赦を。
更新履歴
- 2014/04/20: GAE-Cron:Python 2.7 runtime版を公開(version 0.0.3) - 風柳メモ
- 2011/09/23: GAE-Cronをバージョンアップしました(version 0.02a) - 風柳メモ
- 2010/10/25:GAE-Cronをバージョンアップしました(version 0.02) - 風柳メモ
- 2010/10/19:GAE-Cronで最終起動時刻と結果が表示されない不具合が発生していました - 風柳メモ
- 2010/06/20:GAE-Cronのタイマ負荷軽減と不具合修正(version:0.01e) - 風柳メモ
- 2010/05/22:GAE-Cronの負荷軽減と不具合修正(version:0.01d) - 風柳メモ
- 2010/05/07:GAE-Cronの機能追加と不具合修正(version:0.01c) - 風柳メモ
- 2010/04/29:GAE-Cron Clubに正常に登録できない(無効となる)不具合修正 - 風柳メモ
- 2010/02/04:GAEへの登録〜Pythonのセットアップまでは別記事に(Google App Engineへの登録と開発環境のセットアップ(Python編))
- 2010/01/18:GAE-Cronの不具合修正(version:0.01b) - 風柳メモ
- 2010/01/18:GAE-Cronの不具合修正(version:0.01a) - 風柳メモ
GAE-Cronアップロード(デプロイ)手順
Google App Engineへの登録がまだの方は、先に
の記事を参照して、登録を済ませておいてください。
また、新規にアプリケーションを作成する前提で説明してあります。
Google App Engine上のWebアプリケーションは、通常、
http://<appid>.appspot.com/
がトップページになりますが、このappidの部分(アプリケーションID)はユーザが決める必要が有ります。
既存のアプリケーションに相乗りさせる場合は、GAE-Cronのソースアーカイブ内にある、READMEを参照して下さい。
■ アプリケーション名の決定
Google App EngineのApplications Overviewページ
https://appengine.google.com/
へ行き(必要に応じてGoogleアカウントでのログインすること)、[Create an Application]ボタンを押すと、
の画面が出てくるので、
- アプリケーションID:Application Identifier(appidとも。デフォルトでは<appid>.appspot.comがドメイン名)
- タイトル:Application Title(英文しか受け付けない模様)
を決定し、[Save]。
appidは他のアプリケーションのものと重なるものは使用不可(<appid>.appspot.comがWeb上で一意である必要があるため、早い者勝ち)。使用できるかどうかは[Check Availability]ボタンで確認可能。
■ GAE-Cronのダウンロードと設定ファイル(app.yaml)の修正
GAE-Cronのソースアーカイブ(ZIPファイル)
https://github.com/furyutei/GAE-Cron/archive/master.zip
をダウンロードし、適当なフォルダに展開。
この例では、C:\GAE というフォルダを作り、その下に展開して C:\GAE\gaecron というフォルダができたものとして説明しています。自分で実際に展開したフォルダ名に適宜読み替えて下さい。
テキストエディタで app.yaml を開き、
application: gaecron
の行の"gaecron"を、自分で登録したアプリケーションID(appid)に書き換え。
■ GAE-Cronのアップロード(デプロイ)
SDKのランチャを起動し(Windows XPのデフォルトではC:\Program Files\Google\google_appengine\launcher\GoogleAppEngineLauncher.exeにある。デスクトップ上のショートカットがあれば、これをダブルクリック)、
[File]メニューから[Add Existing Application... Ctrl+Shift+N]を選択すると
のようなダイアログが出てくるので、 Application PATH にフォルダ名(例ではC:\GAE\gaecron)を入れて[Add]し、その後、[Deploy]アイコンを押して出てくる
のようなダイアログに、登録時に使用したGoogleアカウント及びパスワードを入れて(見切れているが)[OK]ボタンを押してアップロード(デプロイ)する。
■ 動作確認
Web上の管理画面(https://appengine.google.com/)にて、デプロイしたアプリケーション名(IDとタイトル)が表示されていることと(図のApplicationとTitleは例、実際は自分で登録したときのものが表示される)、
のように /gaetimer/timercycle と
また、実際にブラウザで http://<appid>.appspot.com/ にアクセスしてみて(<appid>は自分で登録したアプリケーションID)、GAE-Cronのトップページ
が表示され、ログインや設定などができるかどうかを確認。
■ GAE-Cron Clubへの登録→GAEの仕様変更に伴う負荷増大のため、現在は稼働しておりません
自分だけで使うのも悪いとはいいませんが(笑)、どうせなら公開して、皆で共有できるようにしましょう。
というわけで、
へ行って、自分のアプリを登録したアカウントでログインし、自分のGAE-CronのトップページのURLを登録して下さい。ご協力お願いいたします。
登録した人と提供した人が同じかどうか調べるためにちょっと変なことをやっているので、登録するとメールが行くと思いますが、気にしないで下さい(苦笑)。
Google App Engineへの登録と開発環境のセットアップ(Python編)
この記事は、Google App Engine の Python 2.5 runtime 環境用に書かれたものです。
2014年現在、推奨環境が Python 2.7 runtime へと移行し、Python 2.5 runtime では新規アプリケーションの作成は出来なくなっています。
Python 2.7 runtime 環境を使用するには、
- Python は 2.7.x をインストールして下さい(2014.04.20現在の最新版はPython 2.7.6です。ただ、2.7.6ではエラーが発生したという記事もありましたので、2.7.5をインストールする方が無難かもしれません。)。
- Google App Engine SDK for Python をインストールして下さい。
- その他、実際のアプリケーションの開発手順は、公式のチュートリアル(和訳はこちら)などを参照してください。
Google App Engineへの登録から、Python版の開発環境セットアップまでの手順です(当方の環境:Windows XP上での例です)。
Google App Engineへの登録には、
- Googleアカウント(GMail等で使っているものでOK。未取得時はこちらから無料で取得可)
- 携帯電話
が必要となりますので、あらかじめ用意しておいてください。
Google App Engine(GAE)は自分のWebアプリケーションをGoogleのインフラ上で実行出来るプラットホームです。
基本無料で使用出来ます*1
Google App Engine への登録
■ Googleアカウントでログイン
https://appengine.google.com/へとアクセスして、Googleアカウントでログイン。
Googleのアカウントを持っていない場合には、こちらから作成。
■ 携帯電話(SMS)による認証
のような、SMS(携帯電話のショートメッセージサービス)認証用の画面がでるので、Country は Japan を選び(日本の携帯の場合)、その横の Carrier は、使っている携帯電話に合わせたキャリアを選択。
Usernameのところには、携帯電話のメールアドレスの@よりも前の部分(@は含まない)を入力し、[Send]を押す。
しばらくすると、Googleより、
from: noreply@google.com
to: (あなたの携帯電話のメールアドレス)
subject: Google App Engine Code
のようなヘッダが付き、本文に
Google App Engine Code: *******
となったメールが送られてくるので、このGoogle App Engine Code(********部分、実際は数字)を
のような画面が出てくるが、アプリケーション名がすぐに決められなければ[Cancel]しておき、決まった時点で再度
https://appengine.google.com/
にアクセスし、[Create an Application]ボタンを押せばよい。
アプリケーションのアップロード(デプロイ)の前にはアプリケーションID(Application Identifier、appid)を決定しておく必要が有るので注意(ローカルでのテストだけなら未決定でも可)。なお、appidは、デプロイ前にapp.yaml(アプリケーションの設定ファイル)に予め記述しておく。
開発環境のセットアップ
■ Python 2.5.x のインストール*2
Pythonのリリースページ
http://www.python.org/download/releases/
に行って、開発環境に応じた2.5.x系をダウンロードし、インストール。
なお、Python には 2.6.x や、3.x.x 系もあるが、こちらだと動かない場合やWeb上の実行環境と条件が異なる場合があるので、必ず 2.5.x 系を使用すること。
【2011.04.09追記】
Windowsの場合には
http://www.python.org/download/releases/2.5.4/
にある、
python-2.5.4.msi
をダウンロードし、ダブルクリックしてインストールするのが吉。
また、そのままでは、デプロイ時等に
WARNING appengine_rpc.py:xxx ssl module not found.
のような警告が出るので、気になる方はSSLモジュールインストーラー
ssl-1.15.win32-py2.5.exe
をダウンロードし、ダブルクリックしてインストールすること。
参考:Holy (K)night [Python] GAEにおけるSSLの警告とSSLのインストール [GAE]
■ GAE SDK(GAE/Python開発キット)のインストール
SDKのダウンロードページ
http://code.google.com/intl/en/appengine/downloads.html
に行って、開発環境に応じたGoogle App Engine SDK for Pythonをダウンロードする。
Windows XPの場合、Windows用のもの(Packageにmsiという拡張子付きのもの)をダウンロード後、ダブルクリックしてインストール。
2010/01/17現在の最新版はhttp://googleappengine.googlecode.com/files/GoogleAppEngine_1.3.0.msiでしたが、SDKはよく更新されているので、必ずダウンロードページに行って最新版を確認して下さい。
完了すると、
というショートカットがデスクトップ上に作成される。
以上で完了です。お疲れ様でした。
実際のアプリケーションの開発手順は、http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/を参照して下さい。
*1:無料分=Free Quotaは使えるリソース(CPU時間、アクセス頻度など)に制限があり、上限を越えるとリセットされるまでアクセスできなくなります(1日毎・太平洋時間(PT)の0時頃にリセットされます。日本時間(JST)だと午後4時頃(太平洋夏時間(PDT)0時)または5時頃(太平洋標準時(PST)0時)です)。別途、有料プランを選択することで、使用可能なリソースを増やすことができます(課金は上限を設定可能)。
*2:開発では無くデプロイだけならば開発環境だけで出来ると思っていたのですが、『このcronサービスは凄すぎて紹介せずにはいられない - ある日のほしみつの(まわりの?)おしゃべり』によれば、Pythonをインストールしておかないとデプロイが出来ないということでしたので、2010/01/17追記しました。ご迷惑をおかけしました、ご指摘有り難うございます。
いったい世の中にはbotが何体いるのだろう……
GAE-Cronはもともと、EasyBotter - プログラミングができなくても作れるTwitter botの作り方でcronの設定が難関だということで作ってみたサービスだったのですが、一週間も経たぬ間に150アカウントがなくなってしまったわけで……。
やっぱりほとんどがbot用なんですかねぇ?
だとするといったいどれほどのbotが世に溢れていることやら……空恐ろしい気もしますね。
ところで、TwitBot Clubの方も別に見放したわけじゃなく、いろいろと手を入れているのですが、やはり今くらいの数(アカウント数で180強、bot数で300強)をさばくには、単体アプリ・Free Quotaの範囲では無理が有りすぎるようなので……抜本的対策を検討中です。
今のところ、タイマを外出しすることを考えているけれど……上手い方法あれば教えて下さい。
同じようなサービスで、
のようなものがあるのだけれども、これらは負荷をどうしているのかな?
データカードでもメールアドレスが取れたのですねぇ
Google App Engineのアプリ数がもう満杯、でも携帯はPHS一台だけだし、どうしよう…と思っていたのですが、データカード(自分のはAH-N401C)でもちゃんとメールアドレス取得できるんですね。
『H″問屋』で出来た…知らなんだ(恥)。とにかく、これで10アプリ増えたのでちょっと一息。