フローフックを使用した共有フローの接続

共有フローによって、定型的なリクエスト前処理またはレスポンス後処理を API 全体で実行できます。フローフックを使用して、特定の環境にデプロイされたすべての API プロキシに対して同じ場所で実行されるように共有フローを接続します。これにより、プロキシの実装コードの一部ではない、個別に実装およびデプロイされる一連のロジックが得られます。

フローフックに接続されたコードは API プロキシのコアロジックのコンテキスト外にあるため、その動作の一部は API プロキシとは異なります。次の点にご注意ください。

  • 共有フローをフローフックに接続するには権限が必要です。組織管理者である必要があります。
  • 各フローフックには、1 つの共有フローのみを接続できます。
  • 同じ共有フローを複数のフローフックに接続できます。
  • フローフックに接続されている共有フローで障害が発生するか、または共有フローの実行中にエラーがある場合、メッセージは拒否され、障害は呼び出し元に返されます。
  • フローフックの実行中にメッセージが拒否された場合、詳細は呼び出されたプロキシのコンテキストでアナリティクスに記録されます。共有フローにより、カスタムコードとエラー メッセージを伴う障害がスローされることもあります。

次の動画は、Classic Edge UI で、共有フローをフローフックに接続してトレースする方法を示しています。

次の動画は、New Edge エクスペリエンス UI で、共有フローをフローフックに接続してトレースする方法を示しています。

フローフックを介してプロキシに接続された共有フローは、幅広いポリシー要件を適用するロジックに最適な場所です。たとえば、1 つのチームが、業務(LOB)の異なる複数のチーム向けの 1 セットのセキュリティ要件を管理しているとします。各 LOB チームは、独自の要件に従って API を開発でき、その際に幅広いセキュリティ要件を考慮する必要がありません。セキュリティ チームは、これらのセキュリティ要件を共有フローに実装し、フローフックを使用して Apigee Edge 環境にフローを接続できます。共有フローはプロキシコードの一部ではないため、セキュリティ チームは LOB コードに干渉することなく必要な変更を行うことができます。

フローフックを介して接続された共有フローは、プロキシフックの環境にデプロイされたすべての API プロキシに対して、その位置で実行されます。そのため、フローフックを使用する機能は、Apigee Edge 組織の管理者のみが使用できます。

共有フローの詳細については、再利用可能な共有フローをご覧ください。

共有フローをフローフックに接続するには、Apigee Edge 管理コンソールを使用します。次のそれぞれの場所で、1 つのフローフックに最大 1 つの共有フローを接続できます。

  • プロキシ エンドポイントの実行前に適用する必要があるロジック用のプロキシ前フローフック

    たとえば、環境内のすべての API にセキュリティを適用するロジックを持つことができます。

  • ターゲット エンドポイントの実行前に適用する必要があるロジック用のターゲット前フローフック

    たとえば、リクエストがバックエンドに到達する前にロギングを実装できます。リクエストから特定の項目を削除することで、仲介を適用することもできます。

  • ターゲット レスポンスの実行後に適用する必要があるロジック用のターゲット後フローフック

    これは、レスポンスがバックエンドから戻った直後に適用されます。これを使用して、バックエンド レスポンスを記録できます。また、バックエンド レスポンスから機密性の高い項目を削除して仲介を実行できます。

  • プロキシ エンドポイントの後で、レスポンスがクライアントに送信される直前に適用する必要があるロジック用のプロキシ後フローフック

    これには、CORS の適用ロジック、レスポンスのロギング、マッシュアップまたは書式設定の実行が含まれることがあります。

フローフックへの共有フローの接続

共有フローをフローフックに接続するには、共有フローを含む組織の管理者である必要があります。

  1. 次のように、[Flow Hooks] ページにアクセスします。

    Edge

    Edge UI を使用して [Flow Hooks] ページにアクセスするには:

    1. apigee.com/edge にログインします。
    2. 共有フローを含む組織を選択します。組織の切り替えをご覧ください。

      共有フローは、この組織からの環境にデプロイされたすべての API プロキシと共有フローで使用できます。この組織外部からは使用できません。

    3. 左側のナビゲーション バーで [Admin] > [Environments] > [Flow Hooks] を選択します。

    Classic Edge(Private Cloud)

    Classic Edge UI を使用して [Flow Hooks] ページにアクセスするには:

    1. http://ms-ip:9000 にログインします。ここで、ms-ip は、Management Server ノードの IP アドレスまたは DNS 名です。
    2. 共有フローを含む組織を選択します。組織の切り替えをご覧ください。

      共有フローは、この組織からの環境にデプロイされたすべての API プロキシと共有フローで使用できます。この組織外部からは使用できません。

    3. 上部のナビゲーション バーで [APIs] > [Environment Configuration] > [Flow Hooks] を選択します。
  2. フローフックのリストで、共有フローを実行する場所に基づいて、共有フローを接続するフローフックを特定します。
    フローフックの場所 説明
    プロキシ前フローフック プロキシ エンドポイントの実行前
    ターゲット前フローフック ターゲット エンドポイントの実行前
    ターゲット後フローフック ターゲット レスポンスの実行後
    プロキシ後フローフック プロキシ エンドポイントの後で、レスポンスがクライアントに送信される直前
  3. リスト内のフローフックにカーソルを合わせて、アクション列を表示します。
  4. [] をクリックします。
  5. [Shared Flow] ダイアログで、接続する共有フローを [Shared flow] プルダウンから選択します。
  6. [OK] をクリックします。
  7. 必要に応じて、共有フローを他のフローフックに接続します。