リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
Python 2 と Python 3 の両方に対応するようにアプリをアップグレードした後、次の手順を実施します。
トラフィックをアプリにシフトさせずに、App Engine にデプロイしてテストします。
アップグレードしたアプリを Python 3 環境で実行するまで判明しない互換性の問題の修正に、かなりの時間が必要となる場合があります。
テスト中に本番環境データと Google Cloud の割り当てを使用しないようにするには、次のエミュレータを使用します。
Cloud Storage や Memorystore などの他の Google Cloud サービスでは、エミュレータは提供されません。
ローカルでのテスト
デプロイ前にアプリの機能をテストするには、Python 3 ランタイムでローカルで実行する手順を行います。
トラフィック移行前の App Engine でのテスト
アップグレードした Python アプリにトラフィックをルーティングする前に、App Engine Python 3 ランライムにアプリをデプロイして再テストします。たとえば、アプリの default
サービスをテストするには次のようにします。
Python 3 ランタイムとの互換性を確保する目的で、必ずアプリの構成ファイルを更新してください。
アプリにトラフィックをシフトする用意ができるまでは、エミュレータやテスト データベースにリクエストを送信する環境変数を変更しないでください。
新しいバージョンをデプロイしますが、トラフィックが新しいバージョンに自動的にルーティングされないようにします。
gcloud app deploy --no-promote
次の URL に移動して、新しいバージョンにアクセスします。
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
これで、新しいバージョンを App Engine ランタイム環境でテストできるようになりました。ログを確認することでアプリケーションをデバッグできます。詳細については、アプリケーション ログの書き込みをご覧ください。
https://PROJECT_ID.REGION_ID.r.appspot.com
に送信されたリクエストは、トラフィックを受信するように構成済みのバージョンにルーティングされます。
他のサービスの新しいバージョンをテストする場合、URL の default
を実際のサービス名に置き換え、同様のプロセスで行います。
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
特定のサービスとバージョンをターゲットにする方法については、リクエストのルーティング方法をご覧ください。
アプリへのトラフィックの移行
新しいバージョンにトラフィックを送信する準備ができたら、次の手順を実施します。
使用していたエミュレータやテストデータではなく、本番環境のデータベースやその他のサービスにリクエストを送信するよう、
app.yaml
ファイルの環境変数を更新します。デプロイ時にトラフィックが新しいバージョンに自動的にルーティングされないようにします。
gcloud app deploy --no-promote
アプリが本番環境データベースやデータストアと通信していることを確認したら、Google Cloud コンソールを使用してトラフィックを移行します。
アップグレードしたアプリの最新バージョンを選択し、[トラフィックを移行] をクリックします。