Menu Close
Settings Close

Language and Page Formatting Options

第8章 サービスディスカバリー

Red Hat 3scale API Management のサービスディスカバリー機能を使用すると、OpenShift からサービスをインポートできます。

8.1. サービスディスカバリーについて

サービスディスカバリーを使用すると、同じ OpenShift クラスター内で実行されている検出可能な API サービスの有無をスキャンし、関連する API 定義を 3scale に自動的にインポートすることができます。

いつでも API インテグレーションおよび OpenAPI Specification を更新して、再度それらをクラスターと同期することもできます。

サービスディスカバリーにより、以下の機能を利用することができます。

  • クラスター API を使用して、正しく検出のアノテーションが付けられたサービスのクエリーを行う。
  • クラスター内の内部エンドポイントを使用してサービスにアクセスするように 3scale を設定する。
  • バージョン 2.0 までの Open API Specification (Swagger)を 3scale ActiveDocs としてインポートします。
  • OpenShift と Red Hat Single Sign-On (RH-SSO) の承認フローをサポートする。
  • Fuse バージョン 7.2 以降の Red Hat Fuse と協調する。

検出可能なサービスをインポートする場合には、その namespace が維持されます。

  • オンプレミス型 3scale インストールでは、3scale API プロバイダーは固有の namespace およびサービスを持つ場合があります。検出されたサービスは、3scale の既存ネイティブサービスと共存することができます。
  • Fuse の検出可能サービスは、Fuse のプロダクション namespace にデプロイされます。

8.1.1. 検出可能サービスの条件

3scale のサービスディスカバリーにより検出可能な API は、以下の条件を満たしている必要があります。

  • API 仕様の Content-Type ヘッダーの値は、以下のいずれかでなければなりません。

    • application/swagger+json
    • application/vnd.oai.openapi+json
    • application/json
  • OpenShift Service Object YAML 定義には、以下のメタデータが含まれている必要があります。

    • discovery.3scale.net ラベル (必須):true に設定します。検出が必要なすべてのサービスを探すために 3scale がセレクター定義を実行する際に、このラベルが使用されます。
    • また、以下のアノテーションが含まれている必要があります。

      discovery.3scale.net/discovery-version (オプション): 3scale の検出プロセスのバージョン。

      discovery.3scale.net/scheme (必須): サービスをホストする URL のスキーム部分。設定可能な値は http および https です。

      discovery.3scale.net/port (必須): クラスター内のサービスのポート番号。

      discovery.3scale.net/path (オプション): サービスをホストする URL の相対ベースパス。パスがルート (/) の場合には、このアノテーションを省略することができます。

      discovery.3scale.net/description-path: サービスの OpenAPI サービス記述ドキュメントへのパス。

      以下に例を示します。

          metadata:
            annotations:
              discovery.3scale.net/scheme: "https"
              discovery.3scale.net/port: '8081'
              discovery.3scale.net/path: "/api"
              discovery.3scale.net/description-path: "/api/openapi/json"
           labels:
              discovery.3scale.net: "true"
           name: i-task-api
           namespace: fuse
注記

管理者権限を持つ OpenShift ユーザーであれば、OpenShift のコンソールで API サービスの YAML ファイルを表示することができます。

  1. Applications > Services の順に選択します。
  2. サービスを選択し (例: i-task-api)、その Details のページを表示します。
  3. Actions > Edit YAML の順に選択し、YAML ファイルを開きます。
  4. ファイルの表示を終えたら、Cancel を選択します。