アプリを 2 つのモジュールに分解し始め、App Engine でアプリを正常に実行できるようになりました。モジュール/バージョン固有の URL を使用してトラフィックを誘導し、エラーなしで処理されたリクエストとタスク キュー イベントを確認することで、新しい構成を確認できます。
たとえば、http://micro-services.msn-transit-api.appspot.comを使用すると、トラフィックがデフォルト以外の新しいバージョンに正しく転送されます。
しかし、GAE コンソールでデフォルト バージョンを更新すると、新しいモジュールにディスパッチする必要があるリクエストが正しくルーティングされません。それらはデフォルト モジュールにディスパッチされ、エンドポイントが移動したため失敗します。
dispatch.yaml が有効化されていないかのようです。
デフォルトのアプリ yaml ファイル:
application: msn-transit-api
module: default
version: micro-services
runtime: python27
api_version: 1
threadsafe: true
instance_class: F1
automatic_scaling:
min_idle_instances: 3
新しいモジュール yaml ファイル:
application: msn-transit-api
module: stats-and-maps
version: micro-services
runtime: python27
api_version: 1
threadsafe: true
instance_class: B1
basic_scaling:
max_instances: 1
handlers:
# map apps
- url: /map(.*)
script: stats_and_maps.maps.map.app
# stats task
- url: /stats/new/.*
script: stats_and_maps.stats.stathat.application
ディスパッチ yaml :
dispatch:
- url: "*/map*"
module: stats-and-maps
- url: "*/stats/*"
module: stats-and-maps
失敗しているエンドポイントがタスク キュー内のジョブにヒットしていることに注意してください。
GAE のバージョンをデフォルトに設定すると、その動作が変わるのはなぜですか?