次の方法で共有


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-AgeCookie ディレクティブに対応する 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 秒
  • バックエンド プロトコル: デフォルト

既存アプリのイングレス設定を更新する

既存のサービス インスタンスによってホストされているアプリケーションのイングレス設定を更新するには、次の手順に従います。

  1. Azure Spring Apps インスタンスが含まれている Azure サブスクリプションに関連付けられているアカウントを使用して、Azure portal にサインインします。

  2. [アプリ] ウィンドウに移動し、構成するアプリを選択します。

  3. [構成] ウィンドウに移動し、[イングレス設定] タブを選択します。

  4. イングレス設定を更新し、[保存] を選択します。

    Screenshot of Azure portal Configuration page showing the Ingress settings tab.

よく寄せられる質問

  • 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)。

次のステップ