第8章 サービスディスカバリー
Red Hat 3scale API Management のサービスディカバリー機能を使用すると、OpenShift からサービスをインポートできます。
8.1. サービスディスカバリーについて
サービスディスカバリーを使用すると、同じ OpenShift クラスター内で実行されている検出可能な API サービスの有無をスキャンし、関連する API 定義を 3scale に自動的にインポートすることができます。
いつでも API インテグレーションおよび OpenAPI Specification を更新して、再度それらをクラスターと同期することもできます。
サービスディスカバリーにより、以下の機能を利用することができます。
- クラスター API を使用して、正しく検出のアノテーションが付けられたサービスのクエリーを行う。
- クラスター内の内部エンドポイントを使用してサービスにアクセスするように 3scale を設定する。
- バージョン 2.0 までの Open API 仕様 (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 ファイルを表示することができます。
- Applications > Services の順に選択します。
-
サービスを選択し (例:
i-task-api
)、その Details のページを表示します。 - Actions > Edit YAML の順に選択し、YAML ファイルを開きます。
- ファイルの表示を終えたら、Cancel を選択します。