Apigee に関する既知の問題

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動
情報

以降のセクションでは、Apigee の既知の問題について説明します。これらの問題は今後のリリースで修正される予定です。

Edge のその他の既知の問題

以降のセクションでは、Edge のその他の既知の問題について説明します。

エリア/概要 既知の問題
キャッシュの有効期限が切れると cachehit 値が正しくない

cachehit フロー変数が LookupCache ポリシーの後に使用されている場合、非同期動作のデバッグポイントがディスパッチされる方法が原因で、LookupPolicy はコールバックが実行される前に DebugInfo オブジェクトにデータを入力し、エラーが発生します。

回避策: 1 回目の呼び出しの直後に、このプロセスを繰り返して(2 回目の呼び出しを実行します)。

InvalidateCache ポリシーの PurgeChildEntries を true に設定しても正しく機能しない

InvalidateCache ポリシーで PurgeChildEntries を設定すると、KeyFragment 要素の値のみがパージされますが、キャッシュ全体が消去されます。

回避策: KeyValueMapOperations ポリシーを使用してキャッシュのバージョニングを反復処理し、キャッシュの無効化を回避します。

SharedFlow または API プロキシの同時デプロイ リクエストを行うと、Management Server で一貫性のない状態になり、複数のリビジョンがデプロイ済みとして表示されることがあります。

これは、異なるリビジョンを使用して CI/CD デプロイ パイプラインの同時実行が行われた場合などに発生することがあります。この問題を回避するには、現在のデプロイが完了する前に API プロキシまたは SharedFlow をデプロイしないようにします。

回避策: API プロキシまたは SharedFlow の同時デプロイを回避します。

Edge API Analytics に表示される API 呼び出し数に重複データが含まれている場合があります。

Edge API Analytics には、API 呼び出しの重複データが含まれることがあります。その場合、Edge API Analytics の API 呼び出しのカウントは、サードパーティの分析ツールに表示される同等の値よりも高くなります。

回避策: アナリティクス データをエクスポートし、gateway_flow_id フィールドを使用してデータを重複除去します。

Edge UI の既知の問題

以下のセクションでは、Edge UI の既知の問題について説明します。

領域 既知の問題
組織が ID ゾーンにマッピングされると、ナビゲーション バーから [Edge SSO Zone Administration] ページにアクセスできなくなります。 組織を ID ゾーンに接続すると、左側のナビゲーション バーから [管理者] > [SSO] を選択しても、[Edge SSO Zone Administration] ページにアクセスできなくなります。回避策として、https://apigee.com/sso から直接ページに移動します。

統合ポータルの既知の問題

以下のセクションでは、統合ポータルの既知の問題について説明します。

地域 既知の問題
SmartDocs
  • Apigee Edge は、仕様エディタを使用して仕様を作成する場合や、ポータルで SmartDocs を使用して API を公開する場合に OpenAPI 仕様 3.0 をサポートしていますが、一部の機能は、現時点ではサポートされていません。

    たとえば、OpenAPI 仕様 3.0 の次の機能は現時点ではサポートされていません。

    • スキーマを結合して拡張するための allOf プロパティ
    • リモート参照

    サポートされていない機能が OpenAPI 仕様で参照されると、ツールはその機能を無視し、API リファレンス ドキュメントをレンダリングする場合があります。それ以外の場合、サポートされていない機能によってエラーが発生し、API リファレンス ドキュメントの正常なレンダリングができないようにします。いずれの場合も、今後のリリースでサポートされるまで、OpenAPI 仕様を変更して、サポートされていない機能の使用を避ける必要があります。

    : 仕様エディタは API リファレンス ドキュメントのレンダリング時に SmartDocs よりも制限が少ないため、ツールによって結果が異なる場合があります。

  • ポータルでこの API を試しに使用すると、OpenAPI 仕様の consumes に設定されている値に関係なく、Accept ヘッダーが application/json に設定されます。
  • 138438484: 複数のサーバーはサポートされていません。
SAML ID プロバイダ SAML ID プロバイダを使用したシングル ログアウト(SLO)は、カスタム ドメインではサポートされていません。SAML ID プロバイダでカスタム ドメインを有効にするには、SAML 設定を構成するときに、[ログアウト URL] フィールドを空白のままにします。
ポータル管理者
  • 現時点では、複数のユーザーによる同時のポータルの更新(ページ、テーマ、CSS、スクリプトの編集など)はサポートされていません。
  • API リファレンス ドキュメントのページをポータルから削除した場合、再作成する方法はありません。API プロダクトを削除して再度追加し、API リファレンス ドキュメントを再生成する必要があります。
  • コンテンツ セキュリティ ポリシーを構成するときには、変更が完全に適用されるまで最大で 15 分かかることがあります。
  • ポータルのテーマをカスタマイズするときには、変更が完全に適用されるまで最大で 5 分かかることがあります。
ポータルの機能
  • 今後のリリースで、検索は統合ポータルに統合される予定です。

Edge for Private Cloud の既知の問題

以降のセクションでは、Edge for Private Cloud の既知の問題について説明します。

地域 既知の問題
Edge for Private Cloud 4.53.00 412696630: 起動時にキーストアを読み込めない

edge-message-processor コンポーネントが起動時に 1 つ以上のキーストアの読み込みに断続的に失敗し、キーストアが API プロキシで使用されるときにトラフィック エラーが発生することがあります。通常、edge-message-processor コンポーネントを再起動すると問題は解決します。

Edge for Private Cloud 4.53.00 Java Callout

デフォルトのプロバイダが FIPS をサポートするために Bouncy Castle FIPS に変更されたため、名前「BC」を使用して Bouncy Castle 暗号プロバイダを読み込もうとするお客様の Java コールアウトが失敗する可能性があります。使用する新しいプロバイダ名は「BCFIPS」です。

Edge for Private Cloud 4.52.01 Mint の更新

この問題は、MINT を使用しているユーザー、または Edge for Private Cloud インストールで MINT を有効にしているユーザーにのみ影響します。

影響を受けるコンポーネント: edge-message-processor

問題: モネタイズが有効になっていて、4.52.01 を新規インストールとしてインストールするか、以前の Private Cloud バージョンからアップグレードする場合、メッセージ プロセッサで問題が発生します。オープン スレッド数が徐々に増加し、リソースが枯渇します。edge-message-processor system.log に次の例外が表示されます。

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Apigee HTTP/2 の脆弱性

最近、サービス拒否攻撃(DoS)の脆弱性が HTTP/2 プロトコル(CVE-2023-44487)の複数の実装で発見されました。これには、Apigee Edge for Private Cloud も含まれます。この脆弱性により、Apigee API 管理機能の DoS が発生する可能性があります。詳細については、Apigee セキュリティに関する公開情報 GCP-2023-032 をご覧ください。

Edge for Private Cloud のルーター管理サーバーのコンポーネントはインターネットに公開されているため、脆弱になる可能性があります。HTTP/2 は、Edge for Private Cloud のその他の Edge 固有のコンポーネントの管理ポートで有効になっていますが、これらのコンポーネントはインターネットに公開されていません。Cassandra や Zookeeper などの Edge 以外のコンポーネントでは、HTTP/2 は有効になっていません。Edge for Private Cloud の脆弱性に対処するには、次の手順を行うことをおすすめします。

Edge Private Cloud バージョン 4.51.00.11 以降を使用している場合は、次の手順を行います。

  1. 管理サーバーを更新します。

    1. 各管理サーバー ノードで、/opt/apigee/customer/application/management-server.properties を開きます。
    2. プロパティ ファイルに次の行を追加します。
      conf_webserver_http2.enabled=false
    3. Management Server コンポーネントを再起動します。
      apigee-service edge-management-server restart
  2. メッセージ プロセッサを更新します。

    1. 各メッセージ プロセッサ ノードで、/opt/apigee/customer/application/message-processor.properties を開きます。
    2. プロパティ ファイルに次の行を追加します。
      conf_webserver_http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-message-processor restart
  3. ルーターを更新します。

    1. 各ルーターノードで、/opt/apigee/customer/application/router.properties を開きます。
    2. プロパティ ファイルに次の行を追加します。
      conf_webserver_http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-router restart
  4. QPID を更新:

    1. 各 QPID ノードで、/opt/apigee/customer/application/qpid-server.properties を開きます。
    2. プロパティ ファイルに次の行を追加します。
      conf_webserver_http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-qpid-server restart
  5. Postgres を更新する:

    1. 各 Postgres ノードで、/opt/apigee/customer/application/postgres-server.properties を開きます。
    2. プロパティ ファイルに次の行を追加します。
      conf_webserver_http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-postgres-server restart

Edge for Private Cloud バージョン 4.51.00.11 より前のバージョンを使用している場合は、次の手順を行います。

  1. 管理サーバーを更新します。

    1. 各管理サーバー ノードで、/opt/apigee/customer/application/management-server.properties を開きます。
    2. プロパティ ファイルに次の 2 行を追加します。
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Management Server コンポーネントを再起動します。
      apigee-service edge-management-server restart
  2. メッセージ プロセッサを更新します。

    1. 各メッセージ プロセッサ ノードで、/opt/apigee/customer/application/message-processor.properties を開きます。
    2. プロパティ ファイルに次の 2 行を追加します。
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-message-processor restart
  3. ルーターを更新します。

    1. 各ルーターノードで、/opt/apigee/customer/application/router.properties を開きます。
    2. プロパティ ファイルに次の 2 行を追加します。
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-router restart
  4. QPID を更新:

    1. 各 QPID ノードで、/opt/apigee/customer/application/qpid-server.properties を開きます。
    2. プロパティ ファイルに次の 2 行を追加します。
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-qpid-server restart
  5. Postgres を更新する:

    1. 各 Postgres ノードで、/opt/apigee/customer/application/postgres-server.properties を開きます。
    2. プロパティ ファイルに次の 2 行を追加します。
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. Message Processor コンポーネントを再起動します。
      apigee-service edge-postgres-server restart
バージョン 4.52 に更新する際の Postgresql のアップグレード

Apigee-postgresql で、Edge for Private Cloud バージョン 4.50 または 4.51 からバージョン 4.52 へのアップグレードに関する問題が発生しています。この問題は、主にテーブルの数が 500 を超える場合に発生します。

Postgres のテーブルの合計数を確認するには、次の SQL クエリを実行します。

select count(*) from information_schema.tables

回避策: Apigee Edge 4.50.00 または 4.51.00 を 4.52.00 に更新する場合は、Apigee-postgresql をアップグレードする前に、必ず 準備手順を実施してください。

LDAP ポリシー

149245401: LDAP リソースで構成された JNDI の LDAP 接続プール設定が反映されず、JNDI のデフォルトにより、毎回 1 回限りの接続が発生します。その結果、接続は 1 回の使用ごとに開閉され、LDAP サーバーへの接続が 1 時間あたり大量に作成されます。

回避策:

LDAP 接続プール プロパティを変更するには、次の手順で、すべての LDAP ポリシーにグローバルな変更を設定します。

  1. 構成プロパティ ファイルが存在しない場合は作成します。
    /opt/apigee/customer/application/message-processor.properties
  2. ファイルに以下を追加します(LDAP リソース構成の要件に基づいて、Java Naming and Directory Interface(JNDI)プロパティの値を置き換えます)。
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. ファイル /opt/apigee/customer/application/message-processor.properties の所有者が apigee:apigee であることを確認します。
  4. 各 Message Processor を再起動します。

接続プール JNDI プロパティが有効になっていることを確認するには、tcpdump を実行して、LDAP 接続プールの動作を時間経過とともに観察します。

リクエスト処理のレイテンシが高い

139051927: Message Processor でプロキシ処理のレイテンシが高く、すべての API プロキシに影響しています。症状としては、通常の API レスポンス時間よりも処理時間が 200 ~ 300 ミリ秒遅延することがあります。また、TPS が低い場合でもランダムに発生することがあります。これは、メッセージ プロセッサが接続するターゲット サーバーが 50 を超える場合に発生することがあります。

根本原因: メッセージ プロセッサは、ターゲット サーバー URL をターゲット サーバーへのアウトバウンド接続の HTTPClient オブジェクトにマッピングするキャッシュを保持します。デフォルトでは、この設定は 50 に設定されていますが、ほとんどのデプロイでは低すぎる可能性があります。デプロイに複数の組織/環境の組み合わせがあり、ターゲット サーバーの合計数が 50 を超える場合、ターゲット サーバーの URL がキャッシュから削除され続け、レイテンシが発生します。

検証: ターゲット サーバーの URL の削除がレイテンシの問題の原因であるかどうかを判断するには、Message Processor の system.logs でキーワード「onEvict」または「Eviction」を検索します。ログにこれらの URL が存在する場合、キャッシュ サイズが小さすぎるため、ターゲット サーバーの URL が HTTPClient キャッシュから削除されていることを示します。

回避策: Edge for Private Cloud バージョン 19.01 と 19.06 の場合は、HTTPClient キャッシュ /opt/apigee/customer/application/message-processor.properties を編集して構成できます。

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

その後、Message Processor を再起動します。すべてのメッセージ プロセッサに対して同じ変更を行います。

値 500 は一例です。設定の最適な値は、メッセージ プロセッサが接続するターゲット サーバーの数よりも大きくする必要があります。このプロパティを大きく設定しても副作用はありません。メッセージ プロセッサのプロキシ リクエスト処理時間が短縮されるだけです。

注: Edge for Private Cloud バージョン 50.00 のデフォルト設定は 500 です。

Key-Value マップの複数のエントリ

157933959: 組織レベルまたは環境レベルにスコープ設定された同じ Key-Value マップ(KVM)への同時挿入と更新により、データの不整合と更新の損失が発生します。

注: この制限は Edge for Private Cloud にのみ適用されます。Edge for Public Cloud と Hybrid にはこの制限はありません。

Edge for Private Cloud の回避策として、apiproxy スコープで KVM を作成します。