VMware Spring Cloud Gateway を構成する
Note
Basic、Standard、Enterprise プランは、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/Stanadard ✅ Enterprise
この記事では、Azure Spring Apps Enterprise プランで VMware Spring Cloud Gateway for VMware Tanzu を構成する方法を示します。
VMware Spring Cloud Gateway は、オープンソースの Spring Cloud Gateway プロジェクトに基づく商用 VMware Tanzu コンポーネントです。 VMware Spring Cloud Gateway for Tanzu では、シングル サインオン (SSO)、アクセス制御、レート制限、回復性、セキュリティなど、API 開発チームにとっての分野横断的な懸念に対処しています。 最新のクラウドネイティブ パターンと、API 開発用の任意のプログラミング言語を使用して、より迅速に API を提供できます。
VMware Spring Cloud Gateway インスタンスは、規則に従ってトラフィックをルーティングします。 動的なトラフィック負荷に対応できるように、"スケールインとスケールアウト"、"スケールアップとスケールダウン" の両方をサポートします。
VMware Spring Cloud Gateway には、次のような機能があります。
- 動的ルーティング構成。個々のアプリケーションに依存せず、再コンパイルなしで適用および変更できます
- 承認された JSON Web トークン (JWT) 要求をアプリケーション サービスに転送する商用 API ルート フィルター
- クライアント証明書の承認
- レート制限のアプローチ
- サーキット ブレーカーの構成
- HTTP 基本認証の資格情報を使用したアプリケーション サービスへのアクセスのサポート
VMware Spring Cloud Gateway は、API portal for VMware Tanzu と統合するために、任意のルート構成への追加または変更の後に OpenAPI バージョン 3 のドキュメントを自動的に生成します。 詳細については、「API portal for VMware Tanzu を使用する」をご覧ください。
前提条件
- VMware Spring Cloud Gateway が有効になっており、既にプロビジョニングされている Azure Spring Apps Enterprise プランのサービス インスタンス。 詳細については、「クイックスタート: Enterprise プランを使用してアプリをビルドし Azure Spring Apps にデプロイする」をご覧ください。
- Azure CLI バージョン 2.0.67 以降。 コマンド
az extension add --name spring
を使用して、Azure Spring Apps 拡張機能をインストールします。
VMware Spring Cloud Gateway の有効化または無効化
Azure portal または Azure CLI を使用して、サービス インスタンスの作成後に VMware Spring Cloud Gateway を有効または無効にすることができます。 VMware Spring Cloud Gateway を無効にする前に、エンドポイントの割り当てを解除し、すべてのルート構成を削除する必要があります。
Azure portal を使用して VMware Spring Cloud Gateway を有効または無効にするには、次の手順に従います。
- サービス リソースに移動し、[Spring Cloud Gateway] を選択します。
- [管理] を選択します。
- [Spring Cloud ゲートウェイの有効化] チェックボックスをオンまたはオフにし、[保存] を選択します。
これで、Spring Cloud Gateway の状態を Spring Cloud Gateway ページで確認できるようになりました。
VMware Spring Cloud Gateway の再起動
再起動アクションを完了すると、VMware Spring Cloud Gateway インスタンスはローリング ベースで再起動します。
Azure portal を使用して VMware Spring Cloud Gateway を再起動するには、次の手順に従います。
- サービス リソースに移動し、[Spring Cloud Gateway] を選択します。
- 再起動 を選択します。
- [OK] を選択して、再起動を確定します。
VMware Spring Cloud Gateway にパブリック エンドポイントを割り当てる
このセクションでは、パブリック エンドポイントを VMware Spring Cloud Gateway に割り当て、そのプロパティを構成する方法について説明します。
Azure portal でエンドポイントを割り当てるには、次の手順を使用します。
- Azure Spring Apps インスタンスを開きます。
- ナビゲーション ウィンドウで [Spring Cloud Gateway] を選択し、[概要] を選択します。
- [エンドポイントの割り当て] を [はい] に設定します。
数分後、URL に構成済みのエンドポイント URL が表示されます。 後で使用できるように、この URL を保存します。
VMware Spring Cloud Gateway メタデータを構成する
VMware Spring Cloud Gateway メタデータによって、OpenAPI バージョン 3 のドキュメントが自動的に生成されます。 VMware Tanzu の API ポータルでルート グループを表示するように VMware Spring Cloud Gateway メタデータを構成できます。 詳細については、「API portal for VMware Tanzu を使用する」をご覧ください。
次の表に、使用可能なメタデータ オプションを示します。
プロパティ | 説明 |
---|---|
title |
VMware Spring Cloud Gateway インスタンスで使用可能な API のコンテキストを説明するタイトル。 既定値は Spring Cloud Gateway for K8S です。 |
description |
VMware Spring Cloud Gateway インスタンスで使用可能な API の詳細な説明。 既定値は Generated OpenAPI 3 document that describes the API routes configured for '[Gateway instance name]' Spring Cloud Gateway instance deployed under '[namespace]' namespace.*. |
documentation |
VMware Spring Cloud Gateway インスタンスで使用できる API ドキュメントの場所。 |
version |
この VMware Spring Cloud Gateway インスタンスで使用可能な API のバージョン。 既定値は unspecified です。 |
serverUrl |
VMware Spring Cloud Gateway インスタンス上の API にアクセスするためのベース URL。 API ポータルと統合する場合、このプロパティは必須です。 |
Azure portal または Azure CLI を使用して、メタデータ プロパティを編集できます。
Azure portal でメタデータを編集するには、次の手順を使用します。
- Azure Spring Apps インスタンスを開きます。
- ナビゲーション ウィンドウで [Spring Cloud Gateway] を選択し、[構成] を選択します。
- API に表示されているプロパティの値を指定します。
- [保存] を選択します。
シングル サインオンの構成
VMware Spring Cloud Gateway は、OpenID ID プロバイダーによるシングル サインオン (SSO) を介した認証と承認をサポートしています。 このプロバイダーは、OpenID Connect 検出プロトコルをサポートします。 次の表では、SSO プロパティについて説明します。
プロパティ | 必須 | 説明 |
---|---|---|
issuerUri |
はい | 発行者の識別子としてアサートされる URI。 たとえば、issuerUri が https://example.com の場合、OpenID プロバイダー構成要求は https://example.com/.well-known/openid-configuration に対して行われます。 結果は OpenID プロバイダー構成応答である必要があります。 |
clientId |
はい | ID プロバイダー からの OpenID Connect クライアント ID。 |
clientSecret |
はい | ID プロバイダー からの OpenID Connect クライアント シークレット。 |
scope |
はい | JWT ID トークンに含めるスコープの一覧。 この一覧は、ID プロバイダーが許可するスコープに基づいている必要があります。 |
Microsoft Entra ID で SSO を設定するには、「Spring Cloud Gateway と API Portal のために Microsoft Entra ID を使用してシングル サインオンを設定する」をご覧ください。
Azure portal または Azure CLI を使用して、SSO プロパティを編集できます。
Azure portal で SSO プロパティを編集するには、次の手順を使用します。
- Azure Spring Apps インスタンスを開きます。
- ナビゲーション ウィンドウで [Spring Cloud Gateway] を選択し、[構成] を選択します。
- SSO に表示されているプロパティの値を指定します。
- [保存] を選択します。
VMware Spring Cloud Gateway では、OpenID Connect Discovery プロトコルをサポートする承認サーバーのみがサポートされます。 また必ず、外部承認サーバーがゲートウェイへのリダイレクトを許可するように構成してください。 承認サーバーのドキュメントを参照し、許可されるリダイレクト URI の一覧に https://<gateway-external-url>/login/oauth2/code/sso
を追加します。
間違ったパスワードなど、SSO プロパティの構成が不適切な場合は、SSO プロパティ全体を削除した後、正しい構成を追加する必要があります。
SSO を構成した後は、VMware Spring Cloud Gateway のルート用に ssoEnabled: true
を必ず設定してください。
SSO ログアウトの構成
VMware Spring Cloud Gateway サービス インスタンスは、現在の SSO セッションからログアウトするための既定の API エンドポイントを提供します。 このエンドポイントへのパスは /scg-logout
です。 ログアウトの結果は、ログアウト エンドポイントの呼び出し方法に応じて、次のいずれかの結果になります。
- セッションからログアウトし、ID プロバイダー (IdP) ログアウトにリダイレクトします。
- サービス インスタンス セッションからログアウトします。
IdP と SSO セッションからログアウトする
GET
要求を /scg-logout
エンドポイントに送信すると、エンドポイントは IdP ログアウト URL に 302
リダイレクト応答を送信します。 ゲートウェイ サービス インスタンスのパスにユーザーを返すエンドポイントを取得するには、/scg-logout
エンドポイントを使用して GET
要求にリダイレクト パラメータを追加します。 たとえば、${server-url}/scg-logout?redirect=/home
を使用できます。
リダイレクト パラメータの値は、VMware Spring Cloud Gateway サービス インスタンスの有効なパスである必要があります。 外部 URL にリダイレクトすることはできません。
次の手順では、マイクロサービスに関数を実装する方法の例について説明します。
ログアウト要求をアプリケーションにルーティングするためのルート構成を取得します。 例については、GitHub の「animal-rescue」リポジトリのルート構成をご覧ください。
必要なログアウト ロジックをアプリケーションに追加します。 最後に、「animal-rescue」リポジトリの
getActionButton
メソッドのreturn
値に示すように、ゲートウェイの/scg-logout
エンドポイントに対するGET
要求が必要です。
SSO セッションのみからログアウトする
XMLHttpRequest
を使用して /scg-logout
エンドポイントに GET
要求を送信すると、302
リダイレクトが飲み込まれ、応答ハンドラーで処理されない可能性があります。 この場合、ユーザーは VMware Spring Cloud Gateway サービス インスタンスの SSO セッションからのみログアウトされます。 ユーザーは引き続き有効な IdP セッションを使用します。 通常、ユーザーが再度ログインしようとすると、IdP から認証されたゲートウェイに自動的に戻されます。
次の例に示すように、ログアウト要求をアプリケーションにルーティングするためのルート構成が必要です。 このコードでは、ゲートウェイのみのログアウト SSO セッションを作成します。
const req = new XMLHttpRequest();
req.open("GET", "/scg-logout);
req.send();
クロスオリジン リソース共有の構成
クロスオリジン リソース共有 (CORS) を使用すると、Web ページ上の制限されたリソースを、最初のリソースが提供されたドメイン以外の別のドメインから要求できます。 次の表では、使用できる CORS 構成オプションについて説明します。
プロパティ | 説明 |
---|---|
allowedOrigins |
クロスサイト要求を行うことが許可されているオリジン |
allowedOriginPatterns |
クロスサイト要求を行うことが許可されているオリジン パターン |
allowedMethods |
クロスサイト要求で許可されている HTTP メソッド |
allowedHeaders |
クロスサイト要求で許可されているヘッダー |
maxAge |
クライアントがフライト前の要求からの応答をキャッシュする時間 (秒単位) |
allowCredentials |
ユーザーの資格情報がクロスサイト要求でサポートされているかどうか |
exposedHeaders |
クロスサイト要求のために公開する HTTP 応答ヘッダー |
API portal と統合する場合は、CORS が適切に構成されていることをご確認ください。 詳細について、「VMware Spring Cloud Gateway にパブリック エンドポイントを割り当てる」のセクションをご覧ください。
サービス のスケーリングを使用する
VMware Spring Cloud Gateway のリソースの割り当て (vCPU、メモリ、インスタンス数など) をカスタマイズできます。
高可用性のため、単一レプリカは推奨されません。
次の表では、既定のリソース使用量について説明します。
コンポーネント名 | インスタンス数 | インスタンスあたりの vCPU | インスタンスあたりのメモリ |
---|---|---|---|
VMware Spring Cloud Gateway | 2 | 1 コア | 2 GiB |
VMware Spring Cloud Gateway オペレーター | 2 | 1 コア | 2 GiB |
ゲートウェイとアプリケーションの間で TLS を構成する
セキュリティを強化し、承認されていないユーザーによる傍受から機密情報を保護するために、VMware Spring Cloud Gateway とアプリケーションの間でトランスポート層セキュリティ (TLS) を有効にすることができます。
TLS を構成する前に、TLS 対応アプリケーションと TLS 証明書が必要です。 TLS 証明書を準備するには、信頼された証明機関 (CA) から証明書を生成します。 証明書は、サーバーの ID を検証し、セキュリティで保護された接続を確立します。
Azure Spring Apps で TLS 対応アプリケーションを実行したら、証明書を Azure Spring Apps にアップロードします。 詳細については、「Azure Spring Apps のアプリケーションで TLS/SSL 証明書を使用する」の「証明書のインポート」セクションをご覧ください。
証明書が Azure Spring Apps に更新された状態で、ゲートウェイの TLS 証明書を構成し、証明書の検証を有効にすることができます。 Azure portal で、または Azure CLI を使用して、証明書を構成できます。
次の手順に従って、Azure portal で証明書を構成します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- Spring Cloud Gateway ページで、[証明書管理] を選択します。
- [証明書の検証を有効にする] を選択します。
- [証明書] で TLS 証明書を選択します。
- [保存] を選択します。
構成の更新に数分かかる場合があります。 構成が完了すると、通知が届きます。
ルート構成を準備する
ルート構成では、プロトコルを HTTPS として指定する必要があります。 次の JSON オブジェクトは、ゲートウェイとアプリの間のすべてのトラフィックに HTTPS プロトコルを使用するように VMware Spring Cloud Gateway に指示します。
次の内容を含む test-tls-route.json という名前のファイルを作成します。
{ "routes": [ { "title": "Test TLS app", "predicates": [ "Path=/path/to/your/app", "Method=GET" ] } ], "uri": "https://<app-custom-domain-name>" }
次のコマンドを使用して、アプリケーションに規則を適用します。
az spring gateway route-config create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name test-tls-app \ --routes-file test-tls-route.json
これで、ゲートウェイのエンドポイントでアプリケーションが TLS が有効になっているかどうかをテストできるようになりました。 詳細については、「Spring Cloud Gateway を使用する」の「ルートを構成する」のセクションをご覧ください。
証明書のローテーション
証明書の有効期限が切れると、次の手順を使用して、VMware Spring Cloud Gateway の証明書をローテーションする必要があります。
- 信頼できる CA からの新しい証明書を生成します。
- 証明書を Azure Spring Apps にインポートします。 詳細については、「Azure Spring Apps のアプリケーションで TLS/SSL 証明書を使用する」の「証明書のインポート」セクションをご覧ください。
- Azure portal または Azure CLI を使用して証明書を同期します。
VMware Spring Cloud Gateway が再起動し、ゲートウェイがすべての接続に新しい証明書を使用するようにします。
証明書を同期するには、次の手順を使用します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- Spring Cloud Gateway ページで [再起動] を選択し、操作を確定します。
自動スケーリング設定を設定する
VMware Spring Cloud Gateway の自動スケーリング モードを設定できます。
次のリストは、自動スケーリングの需要管理に使用できるオプションを示しています。
- [手動スケーリング] オプションを使用すると、固定インスタンス数を維持できます。 最大 10 個のインスタンスまでスケールアウトできます。 この値によって、Spring Cloud Gateway の個別の実行インスタンスの数が変わります。
- [カスタム自動スケーリング] オプションを使用すると、任意のメトリックに基づき、任意のスケジュールでスケーリングできます。
Azure portal でスケーリング方法を選択します。 次のスクリーンショットは、[カスタム自動スケーリング] オプションとモード設定を示しています。
利用できるメトリックの詳細については、「Azure Spring Apps のメトリック」の「ユーザー メトリックのオプション」セクションをご覧ください。
応答キャッシュを構成する
応答キャッシュ構成では、グローバルまたはルート レベルで適用できる HTTP 応答キャッシュを定義する方法が提供されます。
応答キャッシュをグローバルに有効にする
応答キャッシュをグローバルに有効にすると、該当するすべてのルートに対して応答キャッシュが自動的に有効になります。
応答キャッシュをグローバルに有効にするには、次の手順を実行します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- [Spring Cloud Gateway] ページで、[構成] を選びます。
- [応答キャッシュ] セクションで、[応答キャッシュを有効にする] を選び、[スコープ] を [インスタンス] に設定します。
- 応答キャッシュの [サイズ] と [Time to Live] を設定します。
- [保存] を選択します。
応答キャッシュを無効にするには、次の手順を実行します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- [Spring Cloud Gateway] ページで、[構成] を選びます。
- [応答キャッシュ] セクションで、[応答キャッシュを有効にする] をオフにします。
- [保存] を選択します。
ルート レベルで応答キャッシュを有効にする
任意のルートの応答キャッシュを有効にするには、LocalResponseCache
フィルターを使用します。 次の例は、ルーティング規則の構成で LocalResponseCache
フィルターを使用する方法を示しています。
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
詳細については、「Azure Spring Apps Enterprise プランで VMware Spring Cloud Gateway ルート フィルターを使用する方法」の「LocalResponseCache」セクションと VMware ドキュメントの「LocalResponseCache」 を参照してください。
LocalResponseCache
フィルターごとに size
と timeToLive
を個別に構成する代わりに、Spring Cloud Gateway レベルでこれらのパラメータを設定できます。 このオプションを使用すると、最初にこれらの値を指定せずに、後でオーバーライドする柔軟性を維持したまま、LocalResponseCache
フィルターを使用できるようになります。
ルート レベルで応答キャッシュを有効にし、size
と timeToLive
を設定するには、次の手順を実行します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- [Spring Cloud Gateway] ページで、[構成] を選びます。
- [応答キャッシュ] セクションで、[応答キャッシュを有効にする] を選び、[スコープ] を [ルート] に設定します。
- 応答キャッシュの [サイズ] と [Time to Live] を設定します。
- [保存] を選択します。
ルート レベルで応答キャッシュを無効にし、size
と timeToLive
をオフにするには、次の手順を実行します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択します。
- [Spring Cloud Gateway] ページで、[構成] を選びます。
- [応答キャッシュ] セクションで、[応答キャッシュを有効にする] をオフにします。
- [保存] を選択します。
次の例では、Spring Cloud Gateway レベルで size
と timeToLive
が設定されている場合に LocalResponseCache
フィルターを使用する方法を示します。
{
"filters": [
"<other-app-level-filter-of-route>",
],
"routes": [
{
"predicates": [
"Path=/api/path1/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache"
],
},
{
"predicates": [
"Path=/api/path2/**",
"Method=GET"
],
"filters": [
"<other-filter-of-route>",
"LocalResponseCache=3m, 1MB"
],
}
]
}
環境変数を構成する
Azure Spring Apps サービスは、VMware Spring Cloud Gateway を管理および調整します。 アプリケーション パフォーマンス監視 (APM) とログ レベルを構成するユース ケースを除き、通常は環境変数を使用して VMware Spring Cloud Gateway を構成する必要はありません。
この記事で説明する他の構成では満たすことができない要件がある場合は、「共通アプリケーション プロパティ」の一覧に示されている環境変数を構成してみることができます。 運用環境に適用する前に、必ずテスト環境で構成をご確認ください。
Azure portal で環境変数を構成するには、次の手順を使用します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択し、[構成] を選択します。
- [プロパティ] セクションと [シークレット] セクションで、環境変数のキーと値のペアを入力します。 機密情報を含む変数は、[シークレット] セクションに含めることができます。
- 保存を選択して、変更を保存します。
環境変数を更新すると、VMware Spring Cloud Gateway が再起動します。
APM を構成する
APM を構成して、VMware Spring Cloud Gateway を監視できます。 次の表に、VMware Spring Cloud Gateway で提供される 5 種類の APM Java エージェントと、必要な環境変数を示します。
Java エージェント | 必要な環境変数 |
---|---|
Application Insights | APPLICATIONINSIGHTS_CONNECTION_STRING |
Dynatrace | DT_TENANT DT_TENANTTOKEN DT_CONNECTION_POINT |
New Relic | NEW_RELIC_LICENSE_KEY NEW_RELIC_APP_NAME |
AppDynamics | APPDYNAMICS_AGENT_APPLICATION_NAME APPDYNAMICS_AGENT_TIER_NAME APPDYNAMICS_AGENT_NODE_NAME APPDYNAMICS_AGENT_ACCOUNT_NAME APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY APPDYNAMICS_CONTROLLER_HOST_NAME APPDYNAMICS_CONTROLLER_SSL_ENABLED APPDYNAMICS_CONTROLLER_PORT |
エラスティック APM | ELASTIC_APM_SERVICE_NAME ELASTIC_APM_APPLICATION_PACKAGES ELASTIC_APM_SERVER_URL |
サポートされている他の環境変数については、次の資料をご覧ください。
サービス インスタンス レベルで APM 統合を構成する (推奨)
VMware Spring Cloud Gateway で APM 監視を有効にするには、サービス インスタンス レベルで APM 構成を作成し、Spring Cloud Gateway にバインドします。 この方法では、APM を 1 回だけ便利に構成し、同じ APM を Spring Cloud Gateway とアプリにバインドできます。
Azure portal を使用して APM を設定するには、次の手順を使用します。
APM の名前、型、およびプロパティを使用して、サービス インスタンス レベルで APM を構成します。 詳細については、「 APM 統合と CA 証明書 を構成する方法」の「サービス インスタンス レベルでの API の管理 (推奨)」セクションを参照してください。
ナビゲーション ウィンドウ Spring Cloud Gateway を選択し、APM を選択します。
APM 参照名のリストで APM 名 選択します。 このリストには、ステップ 1 で構成したすべての APM 名が含まれています。
[ 保存] を選択して、APM 参照名を Spring Cloud Gateway にバインドします。 ゲートウェイが再起動して、APM 監視が有効になります。
VMware Spring Cloud Gateway での APM の管理 (非推奨)
Azure portal または Azure CLI を使用して、VMware Spring Cloud Gateway の APM を設定できます。 使用する APM Java エージェントの種類と、それらがサポートする対応する APM 環境変数を指定することもできます。
Azure portal を使用して APM を設定するには、次の手順を使用します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択し、[構成] を選択します。
- ゲートウェイを監視するには、APM の一覧で APM の種類を選択します。
- [プロパティ] セクションと [シークレット] セクションで、APM 環境変数のキーと値のペアを入力します。 機密情報を含む変数は、[シークレット] に入力することができます。
- 保存を選択して、変更を保存します。
構成の更新に数分かかる場合があります。 構成が完了すると、通知が届きます。
Note
Azure Spring Apps は、VMware Spring Cloud Gateway と Azure Spring Apps の間のエージェントの互換性を維持するために、APM エージェントとデプロイされたアプリを同じ間隔でアップグレードします。
Azure Spring Apps では、既定で APM Java エージェントのログを STDOUT
に出力します。 これらのログは、VMware Spring Cloud Gateway ログに含まれています。 ログで使用されている APM エージェントのバージョンを確認できます。 Log Analytics でこれらのログに対してクエリを実行して、トラブルシューティングを行うことができます。
APM エージェントを正常に動作させるには、VMware Spring Cloud Gateway の CPU とメモリを増やします。
ログ レベルを構成する
VMware Spring Cloud Gateway のログ レベルを次の方法で構成することで、詳細を取得したり、ログを減らしたりできます。
- ログ レベルは、
TRACE
、DEBUG
、INFO
、WARN
、ERROR
、またはOFF
に設定できます。 VMware Spring Cloud Gateway の既定のログ レベルはINFO
です。 - ログ レベルを
OFF
に設定すると、ログをオフにできます。 - ログ レベルが
WARN
、ERROR
、またはOFF
に設定されている場合は、Azure Spring Apps チームにサポートを要求するときに、INFO
に調整する必要がある場合があります。 この変更により、VMware Spring Cloud Gateway が再起動されます。 - ログ レベルが
TRACE
またはDEBUG
に設定されている場合、VMware Spring Cloud Gateway のパフォーマンスに影響する可能性があります。 運用環境では、これらの設定を避けてください。 root
ロガーまたはio.pivotal.spring.cloud.gateway
などの特定のロガーのログ レベルを設定できます。
次のロガーには、TRACE
レベルと DEBUG
レベルの重要なトラブルシューティング情報が含まれている場合があります。
ロガー | 説明 |
---|---|
io.pivotal.spring.cloud.gateway |
カスタム拡張機能を含むフィルターと述語 |
org.springframework.cloud.gateway |
API ゲートウェイ |
org.springframework.http.server.reactive |
HTTP サーバーの操作 |
org.springframework.web.reactive |
API ゲートウェイのリアクティブ フロー |
org.springframework.boot.autoconfigure.web |
API ゲートウェイの自動構成 |
org.springframework.security.web |
認証と承認の情報 |
reactor.netty |
Reactor Netty |
環境変数キーを取得するには、logging.level.
プレフィックスを追加し、環境 logging.level.{loggerName}={logLevel}
を構成してログ レベルを設定します。 次の例は、Azure portal と Azure CLI の手順を示しています。
Azure portal でログ レベルを構成するには、次の手順を使用します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択し、[構成] を選択します。
- [プロパティ] セクションと [シークレット] セクションで、ログ レベルの環境変数のキーと値のペアを入力します。 ログ レベルが機密情報である場合は、[シークレット] セクションを使用してログ レベルを含めることができます。
- [保存] を選択して変更を保存します。
アドオンの構成を更新する
アドオンの構成機能を使用すると、JSON 形式の文字列を使用して、VMware Spring Cloud Gateway の特定のプロパティをカスタマイズできます。 この機能は、REST API を介して公開されないプロパティを構成する必要がある場合に便利です。
アドオンの構成は、目的の構成を表すキーと値のペアを持つ JSON オブジェクトです。 次の例は、JSON 形式の構造を示しています。
{
"<addon-key-name>": {
"<addon-key-name>": "<addon-value>"
...
},
"<addon-key-name>": "<addon-value>",
...
}
次の一覧は、アドオンのキー名と値の種類でサポートされているアドオンの構成を示しています。 この一覧は、VMware Spring Cloud Gateway のバージョンをアップグレードする場合に変更される可能性があります。
SSO 構成:
キー名:
sso
値の型: object
プロパティ:
RolesAttributeName
(文字列): SSO セッションに関連付けられているロールを含む属性の名前を指定します。InactiveSessionExpirationInMinutes
(整数): 非アクティブな SSO セッションの有効期限を分単位で指定します。0
の値は、セッションの有効期限が切れないことを意味します。
例:
{ "sso": { "rolesAttributeName": "roles", "inactiveSessionExpirationInMinutes": 1 } }
メタデータの構成:
キー名:
api
値の型: object
プロパティ
groupId
(文字列): VMware Spring Cloud Gateway インスタンスで使用できる API のグループの一意識別子。 値に使用できるのは、小文字と数字だけです。
例:
{ "api": { "groupId": "id1" } }
ポッドの構成
キー名:
PodOverrides
。既定のポッド構成のオーバーライドを指定するために使用されます。値の型: object
プロパティ
Containers
: この配列には、ポッド内の個々のコンテナーの構成が含まれます。 現在、gateway
という名前のコンテナーのみがサポートされています。Name
: コンテナーの名前を指定します。 コンテナーにはgateway
という名前を付ける必要があります。Lifecycle
:PreStop
は、コンテナーが終了しようとしているときに実行されるライフサイクル フックです。 このフックを使用すると、コンテナーが停止する前に、必要なクリーンアップを実行できます。
TerminationGracePeriodSeconds
: Kubernetes が、ポッドが正常に終了するのを待つ時間を指定します。この時間が経過した後、ポッドは強制終了されます。
例:
{ "PodOverrides": { "Containers": [ { "Name": "gateway", "Lifecycle": { "PreStop": { "Exec": { "Command": [ "/bin/sh", "-c", "sleep 20" ] } } } } ], "TerminationGracePeriodSeconds": 120 } }
このコンテナーを含むポッドが終了すると、
PreStop
フックによってコマンド/bin/sh -c 'sleep 20'
が実行され、コンテナーは 20 秒間スリープ状態になります。 この一時停止によって提供される時間で、コンテナーは、実際に停止する前に、進行中のタスクまたはクリーンアップを完了することができます。TerminationGracePeriodSeconds
設定では、ポッドが正常に終了するための時間として、PreStop
などのライフサイクル フックにかかる時間を含め、合計 120 秒が提供されます。
アドオンの構成を更新するには、次の手順を実行します。
- Azure Spring Apps インスタンスで、ナビゲーション ペインの [Spring Cloud Gateway] を選択し、[構成] を選択します。
- [アドオンの構成] の JSON 値を指定します。
- [保存] を選択します。