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

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する。

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

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

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

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

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

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

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

Apigee UI または Flowhooks API を使用して、共有フローをフローフックに接続します。次のそれぞれの場所で、1 つのフローフックに 1 つの共有フローだけを接続できます。

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

    たとえば、環境内のすべての API にわたってセキュリティを適用するためのロジックを保有できます。

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

    たとえば、リクエストがバックエンドに到達する前にロギングを実装できます。リクエストから特定のフィールドを削除して、メディエーションを適用することもできます。

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

    これは、レスポンスがバックエンドから戻った直後に適用されます。これを使用して、バックエンド レスポンスをロギングすることや、バックエンド レスポンスから機密性の高い項目を削除してメディエーションを行うことが可能です。

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

    CORS の適用ロジックの一部、レスポンスのロギング、マッシュアップや形式の統一などがこれに該当します。

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

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

Cloud コンソールの Apigee

共有フローをフローフックに接続するには:

  1. ブラウザで Cloud コンソールの Apigee UI を開きます。
  2. 共有フローがある組織を選択します。組織の切り替えをご覧ください。

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

  3. 左側のナビゲーション ペインで、[管理] > [環境] の順にクリックします。
  4. 使用可能な環境のリストから、編集する環境を選択します。
  5. [環境の詳細] ページで [Flow hooks] タブをクリックします。

    [Flow hooks] ビューが表示されます。

  6. フローフックのリストで、共有フローを接続するフローフックを見つけます。選択するフローフックは、共有フローを実行する場所によって異なります。
    フローフックの場所 説明
    プロキシ前 プロキシ エンドポイントの実行前に実行
    ターゲット前 ターゲット エンドポイントの実行前に実行
    ターゲット後 ターゲット レスポンスの実行後に実行
    プロキシ後 プロキシ エンドポイントの後で、レスポンスがクライアントに送信される直前に実行
  7. 選択したフローフックのリストボックスで、接続する共有フローを選択します。
  8. 必要に応じて、共有フローを他のフローフックに接続します。
  9. [保存] をクリックして、選択した共有フローをフローフックに接続します。

従来の Apigee

共有フローをフローフックに接続するには:

  1. Apigee UI にログインします。
  2. 共有フローがある組織を選択します。組織の切り替えをご覧ください。

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

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

    [Flow hooks] ビューが表示されます。

    プロキシ前、ターゲット前、プロキシ後、ターゲット後の各共有フローを示す [Flow hooks] ページ

  4. 環境プルダウン リストから、変更する環境を選択します。
  5. フローフックのリストで、共有フローを接続するフローフックを見つけます。選択するフローフックは、共有フローを実行する場所によって異なります。
    フローフックの場所 説明
    プロキシ前 プロキシ エンドポイントの実行前に実行
    ターゲット前 ターゲット エンドポイントの実行前に実行
    プロキシ後 プロキシ エンドポイントの後で、レスポンスがクライアントに送信される直前に実行
    ターゲット後 ターゲット レスポンスの実行後に実行
  6. リスト内のフローフックにカーソルを合わせて、アクション列を表示します。
  7. [ Edit] をクリックします。
  8. [Shared Flow] ダイアログの [Shared flow] メニューで、接続する共有フローを選択します。
  9. [OK] をクリックします。
  10. 必要に応じて、共有フローを他のフローフックに接続します。