デスクトップマシンの開発サーバーでAppEngineアプリを正常に実行していますが、ソースコードの更新に注意を払うためにGoogleのサーバーのバージョンを取得できません。
これが最もわかりやすいイラストです。私のapp.yamlファイルは次のように始まりました:
application: xxxxxxxx
version: 1
runtime: python
api_version: 1
builtins:
- datastore_admin: on
handlers:
- url: /statix
static_dir: statix
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.py
最後の行は、すべての非静的URLをmain.pyファイルにルーティングします。このバージョンのmain.pyを「古い」バージョンと呼びましょう。
main.pyに定期的な変更を加えた後(それによって「新しい」バージョンを作成した後)、問題が発生しました。「新しい」バージョンはローカルホストマシンでは正常に機能しますが、GAEにデプロイした後、その変更はビッグインターネット経由で提供されません。代わりに、GAEは「古い」main.pyによって計算されたページを提供します。GAE Launcherを終了して再起動すると役立つ場合がありますが、それはしばらくの間(数時間)機能しませんでした。マシンを再起動しても。
そこで、実験のために、app.yamlの最後の行を次のように変更しました。
script: main2.py
GAEに再デプロイしましたが、Webサイトにアクセスすると、プロジェクトにmain2.pyファイルがないため、予想どおり500エラーが発生します。
そこで、「新しい」main.pyディスクファイルの名前をmain2.pyに変更し、GAEに再デプロイすると、500エラーがなくなります(これも予想どおりです)。
しかし、ここでそれは奇妙になります。このアップロードされたばかりのmain2.pyファイルは「新しい」main.pyであり、単に名前が変更されています。ただし、GAEによって提供されるページは、「古い」main.pyによって計算されたページです。
ブラウザのキャッシュをクリアしました。私は、このプロジェクトによって提供されるURLを見たことがないOperaのほこりっぽいコピーを起動しました。また、「古い」main.pyが作成する古いページコンテンツも表示しています。
私はAppEngineを数年間使用しています。私は一週間前までこのような問題を抱えたことはありません。最近、ランチャーを1.7.3(Mac OS X 10.6.8)にアップデートしました。最初は、ランチャーが何らかの理由で破損していると思っていましたが、app.yamlの実験では、GAE自体に何かがあることが示唆されています。GAEランチャーにはたくさんのプロジェクトがありますが、クリーンインストールはしたくありません。
あなたの考えを聞いて恥ずかしくなると思いますが、アイデアが足りなくなりました。
補遺:ユーザーdragonxは、キャッシュが問題の根本にある可能性があることを示唆しました。これについて考えると、Googleドメインサービスを使用してアプリケーションのカスタムドメインを構成した後に実際に開始されました。しかし、ここでは、によるとcurl -D
、私のアプリケーションのホームページのヘッダーは次のとおりです。
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Vary: Accept-Encoding
Date: Tue, 11 Dec 2012 02:29:43 GMT
Server: Google Frontend
Transfer-Encoding: chunked
キャッシュがオフになっているようです。それでも、Googleドメインサービスに戻ってキャッシュをオフにする方法が見つかりません。:-(
補遺#2:ファイルを別のアプリ(つまり、許可されている10個のうちの別のアプリ)としてアップロードしました。彼らはアップデートを提供しました。ただし、新しくアップロードしたファイルに変更を加えたところ、それらの変更は表示されませんでした。したがって、問題が何であれ、ユーザーアカウントのすべてのアプリに影響するようです。