次の方法で共有


Azure Spring Apps でイングレス構成をカスタマイズする

Note

BasicStandardEnterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象:✅ Basic/Standard ✅ Enterprise

この記事では、Azure portal と Azure CLI を使用して、Azure Spring Apps でアプリケーションのイングレス構成を設定および更新する方法について説明します。

Azure Spring Apps サービスは、基になるイングレス コントローラーを使用してアプリケーション トラフィック管理を処理します。 カスタマイズでは、次のイングレス設定がサポートされています。

Name イングレス設定 規定値 有効な範囲 説明
ingress-read-timeout proxy-read-timeout 300 [1,1800] プロキシ処理されたサーバーからの応答読み取りのタイムアウト (秒)。
ingress-send-timeout proxy-send-timeout 60 [1,1800] プロキシされたサーバーに要求を送信するためのタイムアウト (秒単位)。
session-affinity affinity なし SessionNone 前の要求に応答していたのと同じポッド レプリカに要求を送信するアフィニティの種類。 セッション アフィニティを有効にするには、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の設定を変更せずに、アプリ間トラフィックの任意のプロトコルを選択します。 このプロトコルでは、同じサービス インスタンス内のアプリ間トラフィックに対するプロトコルの選択は制限されません。
client-auth client-auth 0 件選択済み - TLS/SSL 設定でアップロードした公開キーを含む証明書を選択します。 イングレスはこれらの証明書を 1 つに連結し、クライアント認証に使用します。

前提条件

  • 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 <app-name> \
    --ingress-read-timeout 300 \
    --ingress-send-timeout 60 \
    --session-affinity Cookie \
    --session-max-age 1800 \
    --backend-protocol Default \
    --client-auth-certs <cert-id>

Note

cert-id 値の形式は /subscriptions/<your-sub-id>/resourceGroups/<resource-group-name>/providers/Microsoft.AppPlatform/Spring/<service-name>/certificates/<cert-name> です。 cert-id 値を取得するには、コマンド az spring certificate show --service <service-instance-name> --resource-group <resource-group-name> --name <certificate-name> --query id を使用します

このコマンドは、次の設定でアプリを作成します。

  • イングレス読み取りタイムアウト: 300 秒
  • イングレス送信タイムアウト: 60 秒
  • セッション アフィニティ: Cookie
  • セッション Cookie の最大有効期間: 1800 秒
  • バックエンド プロトコル: デフォルト
  • クライアント認証: cert-name

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

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

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

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

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

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

    [イングレス設定] タブが表示されている Microsoft Azure portal の [構成] ページのスクリーンショット。

よく寄せられる質問

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

次のステップ