Azure Spring Apps でイングレス構成をカスタマイズする
この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise
この記事では、Azure portal と Azure CLI を使用して、Azure Spring Apps でアプリケーションのイングレス構成を設定および更新する方法について説明します。
Azure Spring Apps サービスは、基になるイングレス コントローラーを使用してアプリケーション トラフィック管理を処理します。 カスタマイズでは、次のイングレス設定がサポートされています。
名前 | イングレス設定 | 規定値 | 有効な範囲 | 説明 |
---|---|---|---|---|
ingress-read-timeout |
proxy-read-timeout |
300 | [1,1800] | プロキシ処理されたサーバーからの応答読み取りのタイムアウト (秒)。 |
ingress-send-timeout |
proxy-send-timeout |
60 | [1,1800] | プロキシされたサーバーに要求を送信するためのタイムアウト (秒単位)。 |
session-affinity |
affinity |
なし | セッション、なし | 要求を行うアフィニティの種類は、前の要求に応答していたのと同じポッド レプリカに送信されます。 セッション アフィニティを有効にするには、session-affinity を Cookie に設定 します。 ポータルでのみ、[セッション アフィニティを有効にする] ボックスを選択する必要があります。 |
session-max-age |
session-cookie-max-age |
0 | [0, 604800] | Max-Age Cookie ディレクティブに対応する Cookie の有効期限が切れるまでの時間 (秒)。 session-max-age を 0 に設定した場合、有効期限はブラウザー セッション期間と同じです。 |
backend-protocol |
backend-protocol |
既定値 | 既定値、GRPC | バックエンド プロトコルを設定し、NGINX がバックエンド サービスと通信する方法を指定します。 デフォルトは HTTP/HTTPS/WebSocket を意味します。 backend-protocol の設定は、クライアントからアプリへのトラフィックにのみ適用されます。 同じサービス インスタンス内のアプリ間トラフィックの場合は、backend-protocol の設定を変更せずに、アプリ間トラフィックの任意のプロトコルを選択します。 このプロトコルでは、同じサービス インスタンス内のアプリ間トラフィックに対するプロトコルの選択は制限されません。 |
前提条件
Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
Azure Spring Apps 拡張機能を使用した Azure CLI。 次のコマンドを使用して、以前のバージョンを削除し、最新の拡張機能をインストールします。 以前に spring-cloud 拡張機能をインストールした場合は、構成とバージョンの不一致を回避するために、それをアンインストールしてください。
az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
イングレスの構成をセットする
次の Azure CLI コマンドを使用して、作成時にイングレス構成を設定します。
az spring app create \
--resource-group <resource-group-name> \
--service <service-name> \
--name <service-name> \
--ingress-read-timeout 300 \
--ingress-send-timeout 60 \
--session-affinity Cookie \
--session-max-age 1800 \
--backend-protocol Default \
このコマンドは、次の設定でアプリを作成します。
- イングレス読み取りタイムアウト: 300 秒
- イングレス送信タイムアウト: 60 秒
- セッション アフィニティ: Cookie
- セッション Cookie の最大有効期間: 1800 秒
- バックエンド プロトコル: デフォルト
既存アプリのイングレス設定を更新する
既存のサービス インスタンスによってホストされているアプリケーションのイングレス設定を更新するには、次の手順に従います。
よく寄せられる質問
gRPC を可能にするにはどうすればよいでしょうか?
バックエンド プロトコルを GRPC に設定します。
WebSocket を可能にするにはどうすればよいでしょうか?
バックエンド プロトコルを Default に設定した場合、WebSocket は既定で有効になります。 WebSocket 接続の制限は 20000 です。 この制限に達すると、接続は失敗します。
WebSocket に基づいて RSocket を使用することもできます。
イングレス構成とイングレス設定の違いは何ですか?
イングレス構成は引き続き Azure CLI と SDK で使用でき、その設定はサービス インスタンス内のすべてのアプリに適用されます。 アプリがイングレス設定によって構成されると、イングレス構成の影響を受けません。 今後サポートを停止する予定であるため、新しいスクリプトではイングレス構成を使用しないことをお勧めします。
イングレス設定を App Gateway/APIM と共に使用する場合、Azure Spring Apps イングレスと App Gateway/APIM の両方でタイムアウトを設定するとどうなりますか?
短い方のタイムアウトが使用されます。
gRPC または WebSocket をエンド ツー エンドでサポートする必要がある場合は、App Gateway/APIM で追加の構成が必要ですか?
App Gateway で gRPC がサポートされている限り、追加の構成は必要ありません。
構成可能なポートはサポートされていますか?
構成可能なポートは現在サポートされていません (80/443)。
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示