実録、ともおじちゃん

典型的な客先常駐型ソフトウェア技術者の13年の軌跡

Google App Engine: vacuum_indexes

2010年04月21日 | コンピュータ・家電
昨年度にGoogle App Engine for Javaで作成したアプリケーションのパフォーマンス改善のために、データストア周り、特にエンティティの設計を見直しているのですが、クラウド環境にアップロードすると、

NeedIndexError: no matching index found ...

というエラーが発生します。これは、エラーメッセージに含まれるデータストアのインデックスの定義を WEB-INF/datastore-indexes.xml に追記するだけでよいのですが、管理コンソールのDatastore Indexes には、使わなくなったインデックスがズラリ…

データストアのインデックスの総数は割り当て制限されているので、使わなくなったインデックスを削除したいのですが、削除の方法がまったく分からず…調べてみると、どうやら、Google App Engine for Python に付属する appcfg.py vacuum_indexes コマンドを使用すればよいようです。 Java版では、このような機能は提供されていない模様…



モノは試しで、Google App Engine for Pythonの開発環境を構築し、ダミーのプロジェクトも用意。さらにHTTPプロキシ経由で App Engineに接続できるように環境変数を設定して、イザ、

> python appcfg.py vacuum_indexes myApp

残念ながら、プロキシがネットワークエラーを返送。この後、--insecure オプションを指定して再挑戦しました。PythonのSSLモジュールが必要だというので、MinGWでSSLモジュールをビルドしました…が、結局、状況は改善せず(泣)。Active Pythonでは、ビルドに失敗するから、Python 2.5.2に入れなおしたりと苦労したのに(泣)

DMZに作業できるマシンを持たない私は、最終顧客である研究員に状況を報告。いろいろ試してもらったところ、彼の環境でもプロキシ経由では同じ現象が再現された模様。直接App Engineに接続できる環境では、期待通り、不要なデータストア・インデックスを削除できたそうです。

Android SDK付属のエミュレータも、Google App Engineも、HTTPプロキシを使用する開発者に優しくないなぁ、Googleは(怒)。あ゛ーーーっ!!


最新の画像もっと見る