App Service でトラフィックをルーティングする
既定では、アプリの運用 URL (http://<app_name>.azurewebsites.net
) に対するすべてのクライアント要求が運用スロットにルーティングされます。 トラフィックの一部を別のスロットにルーティングできます。 この機能は、新しい更新プログラムのユーザー フィードバックが必要であっても、運用環境にリリースする準備ができていない場合に便利です。
運用トラフィックを自動的にルーティングする
運用トラフィックを自動的にルーティングするには:
アプリのリソース ページに移動し、デプロイ スロット 選択します。
ルーティング先のスロットの [トラフィック %] 列で、ルーティングするトラフィックの合計量を表す割合 (0 ~ 100) を指定します。 [保存]を選択します。
設定を保存すると、指定した割合のクライアントが非運用スロットにランダムにルーティングされます。
クライアントが特定のスロットに自動的にルーティングされると、そのクライアント セッションの有効期間中、そのスロットに "固定" されます。 クライアント ブラウザーで、セッションがピン留めされているスロットを確認するには、HTTP ヘッダーの x-ms-routing-name
Cookie を確認します。 "ステージング" スロットにルーティングされる要求には、cookie x-ms-routing-name=staging
があります。 運用スロットにルーティングされる要求には、Cookie x-ms-routing-name=self
があります。
プロダクショントラフィックを手動でルーティングする
App Service では、自動トラフィック ルーティングに加えて、特定のスロットに要求をルーティングできます。 これは、ユーザーがベータ アプリにオプトインまたはオプトアウトできるようにする場合に便利です。 運用トラフィックを手動でルーティングするには、x-ms-routing-name
クエリ パラメーターを使用します。
たとえば、ユーザーがベータ 版アプリをオプトアウトできるようにするには、Web ページに次のリンクを設定します。
<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>
x-ms-routing-name=self
文字列は、運用スロットを指定します。 クライアント ブラウザーがリンクにアクセスすると、運用スロットにリダイレクトされます。 後続のすべての要求には、セッションを運用スロットにピン留めする x-ms-routing-name=self
Cookie があります。
ユーザーがベータ 版アプリにオプトインできるようにするには、同じクエリ パラメーターを非運用スロットの名前に設定します。 次に例を示します。
<webappname>.azurewebsites.net/?x-ms-routing-name=staging
デフォルトでは、新しいスロットには 0%
のルーティング規則が与えられ、デフォルト値は灰色で表示されます。 ルーティング規則の値を明示的に0%
に設定すると、黒で表示されます。ユーザーはx-ms-routing-name
クエリパラメーターを使用して、ステージングスロットに手動でアクセスできます。 ただし、ルーティング率が 0 に設定されているため、それらはスロットに自動的にルーティングされません。 これは、内部チームがスロットの変更をテストできるようにしながら、ステージング スロットをパブリックから "非表示" にできる高度なシナリオです。