[Google App Engine]You do not have permission to modify this app

By |2月 4, 2010|Google App Engine, |


Google App Engineのデプロイはforce.comと同様、非常に手軽で、クラウド開発の恩恵を体感できます。Python版でUnix/Linux系OSやWindowsの場合、基本的にコンソールでappcfg.pyを叩いてデプロイします。※Pythonアプリケーションのアップロードと管理参照

しかし、Mac OS XのSDKだけGoogleAppEngineLauncher.appというapp形式になっているので/usr/local/binにappcfg.pyが作られないようです。EclipseにPyDevを入れた環境であればプロジェクトのメニューに「PyDev: Google App Engine」というメニューがあって、そこからアップロードやその他の管理コマンドを入力できます。Java版はEclipse環境の場合「Deploy Project to Google App Engine」というボタンがありますので更に楽ですね。

ただ、たまに以下のようなエラーではじかれる場合があります。

Error 403: — begin server output —
You do not have permission to modify this app.
— end server output —

同じソースコードをapp.yamlのapplication: だけ変更して違うアプリケーションIDのところへデプロイしようとした時によく出ます。これ実はappcfg.pyがcookieを利用して前回入力したアカウントを記憶しているので、cookieに保存されているアプリケーションIDとapp.yamlに記述されたアプリケーションIDが異なっていることが原因です。

これを回避するには–no_cookiesオプションを付与します。こうすればcookieを利用しないでデプロイ可能です。

[bash]
appcfg.py update –secure –no_cookies <application path>
[/bash]