API Gateway を API Hub に接続する
このページでは、API Gateway を Apigee API Hub に接続して、API を表示し、API 管理を一元化する方法について説明します。
概要
API Gateway 管理者が API Gateway を API Hub に接続するには、次の手順を行います。
始める前に: ロールを付与する
API Gateway を API Hub に接続するための適切な Identity and Access Management(IAM)ロールがあることを確認します。
API Hub をプロビジョニングするプロジェクトで、次の操作を行います。
- API Hub のプロビジョニング手順の始める前にで説明されているように、プロビジョニングのロールを付与します。
API Hub にアタッチする API Gateway プロジェクトで、次の操作を行います。
- プリンシパル アカウントに Cloud API Hub ランタイム プロジェクト アタッチメント編集者(
roles/apihub.runTimeProjectAttachmentsEditor)ロールを付与します。 - Google Cloud コンソールを使用して API Gateway プロジェクトを API Hub に関連付けるには、プリンシパル アカウントに閲覧者(
roles/browser)ロールを付与します。
API ハブをプロビジョニングする
API Gateway を API Hub に接続する前に、ホスト プロジェクトで API Hub をプロビジョニングする必要があります。ホスト プロジェクトは、 Google Cloud 組織内の Google Cloud プロジェクトであり、すべての API Hub リソースのコンシューマー プロジェクトとして指定します。ホスト プロジェクトごとに 1 つの API Hub インスタンスをプロビジョニングできます。
すべての API Gateway で API を一元的に検出できるようにするには、API Hub インスタンスに 1 つの専用ホスト プロジェクトを使用し、複数の API Gateway プロジェクト(ランタイム プロジェクト)を API Hub インスタンスにアタッチすることをおすすめします。
ホスト プロジェクトで API Hub をプロビジョニングするには、次のいずれかを行います。
Google Cloud コンソールで、[API Hub] ページに移動し、ホスト プロジェクトとして使用する Google Cloud プロジェクトを選択して、[API Hub を設定] をクリックします。
このページには、次のように API Gateway ページからアクセスできます。
- API Gateway ページのいずれかのページの上部にある API Hub バナーで [使ってみる] をクリックします。
- [APIs] ページの上部にある [API Hub を使ってみる] をクリックします。
次に、Cloud コンソールで API Hub をプロビジョニングするで説明されている詳細なプロビジョニング手順に沿って操作します。
API Gateway プロジェクトを API Hub にアタッチする
API Gateway プロジェクトを API Hub にアタッチします。
Google Cloud コンソール
API Gateway プロジェクトを API Hub にアタッチする手順は次のとおりです。
- Google Cloud コンソールで、[API Hub] ページに移動します。
- 左側のナビゲーション メニューで [設定] をクリックして、[設定] ページを開きます。
- [プロジェクトの関連付け] タブに移動します。
- API Gateway プロジェクトがアタッチされたランタイム プロジェクトのリストにない場合は、次の操作を行います。
- [ランタイム プロジェクトを接続] をクリックします。
[リソースを選択] ペインが表示されます。 - API Gateway がプロビジョニングされている Google Cloud プロジェクトをクリックします。
- [プロジェクトの関連付けの設定] ペインで、[API Gateway] と、自動インポートする他の API アセットを選択します。
- [保存] をクリックします。
- [ランタイム プロジェクトを接続] をクリックします。
- API Gateway プロジェクトがアタッチされたランタイム プロジェクトのリストにすでに含まれている場合は、次の操作を行います。
- API Gateway ランタイム プロジェクトに関連付けられている行で、[設定を編集] をクリックします。
- [プロジェクトの関連付けの設定] ペインで、[API Gateway] と、自動インポートする他の API アセットを選択します。
- [保存] をクリックします。
REST
API Gateway プロジェクトを API Hub に関連付けるには、ランタイム プロジェクトの関連付けを作成する API とプラグイン インスタンスを作成する API を使用します。
たとえば、ランタイム プロジェクトの添付ファイルを作成するには:
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT_ID/locations/HUB_LOCATION/runtimeProjectAttachments?runtimeProjectAttachmentId=RUNTIME_PROJECT_ID" \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"runtimeProject":"projects/RUNTIME_PROJECT_ID"}'
次のように置き換えます。
- HUB_PROJECT_ID: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
- HUB_LOCATION: ホスト プロジェクトのロケーション。API Hub のプロビジョニング時にロケーションが選択されました。
- RUNTIME_PROJECT_ID: API Gateway ランタイム プロジェクトの名前。
成功すると、RuntimeProjectAttachment JSON オブジェクトが返されます。
次に、API Gateway プラグイン インスタンスを作成します。
curl "https://apihub.googleapis.com/v1/projects/HUB_PROJECT_ID/locations/HUB_LOCATION/plugins/PLUGIN_TYPE/instances" \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"displayName": "API Gateway Plugin Instance",
"sourceProjectId": "RUNTIME_PROJECT_ID",
"actions": [
{
"actionId": "sync-metadata"
}
]
}'
次のように置き換えます。
- HUB_PROJECT_ID: API Hub のホスト プロジェクトの名前。API Hub のプロビジョニング時にホスト プロジェクトが選択されました。
- HUB_LOCATION: ホスト プロジェクトのロケーション。API Hub のプロビジョニング時にロケーションが選択されました。
- PLUGIN_TYPE: プラグインのタイプ。system-api-gateway に設定します。
- RUNTIME_PROJECT_ID: API Gateway ランタイム プロジェクトの名前。
成功すると、オペレーション JSON オブジェクトが返されます。