2009-02-13

Google App Engineの本番環境のMemcacheエントリをいじる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Google App Engineのローカルの開発環境には、以下のURLでアクセスできる
http://localhost:8080/_ah/admin/memcache
Memcacheのエントリを見たりいじったりできる環境があるのですが、
本番環境にありません。
SOBARCOでは、携帯キャリアのIPアドレスをMemcacheにキャッシュさせているのですが、クローラーに対応していなかったため、携帯用のクローラーが来てもPCサイトの方を表示していました。
ちょっともったいなぁと思って、携帯用クローラーのIPも対応できるように改造したのですが、本番用のMemcacheのキャッシュが切れるまで待つのいやだなぁと思っていたのです。
自分でMemcacheをいじる管理画面を作るしかないのかなぁとか思っていたのですが、
http://www.moongift.jp/2009/02/app_engine_console/
で、App Engine Consoleという本番環境でのPythonコンソールがあることを知り、これを利用することにしました。

導入方法は、簡単です。
1.以下のサイトからApp Engine Consoleのzipファイルをダウンロードする。
http://www.proven-corporation.com/software/app-engine-console/
2.zipファイルを展開して、展開して出来たconsoleディレクトリを自分のGoogle App Engineアプリケーションのディレクトリの直下に置きます。
 私の場合は、
 sobarco
  |-console
  |-app.yaml
 という感じです。
3.app.yamlにエントリを追加する。
 以下のような感じで追加です。

- url: /console/static
static_dir: console/app/view/static
login: admin

- url: /console.*
script: console/app/console.py
login: admin

ここでlogin: adminをつけた方がよいと思います。これでアプリケーションに対してadmin権限があるユーザでログインしていない限り表示されることがなくなります。
4.おまけでGoogle Analyticsを利用している場合は、console/config.pyのanalytics_idにAnalytics用のIDを記載する。
 書いておくと、App Engine ConsoleからAnalyticsに飛べるだけなので別に無理に記述する必要はないです。
5.本番環境へデプロイする。

本番環境にデプロイしたら、
/console
をつけてアクセスするとgoogleへのログイン画面が出てくるのでadmin権限のユーザでログインすると表示されます。
そこで表示されたコンソールで
from google.appengine.api import memcache
print memcache.get('key')
とすると現在keyに設定されている値を取得できます。
memcache.delete('key')
とするとkeyに設定されている値をキャッシュから消すことができます。

App Engine Consoleは、他にも普通にコンソールとして使えるのでMemcache以外にも便利に使えそうです。
普通にApp Engineの管理サイトに盛り込んでくれればいいのに・・・
と思ってしまうぐらいです。
コメントを投稿