将 API Gateway 与 API Hub 相关联
本页介绍了如何将 API Gateway 与 Apigee API Hub 相关联,以便您查看 API 并集中管理 API。
概览
作为 API Gateway 管理员,如需将 API Gateway 与 API Hub 相关联,您需要执行以下步骤:
准备工作:授予角色
确保您拥有适当的 Identity and Access Management (IAM) 角色,以便将 API Gateway 与 API Hub 相关联。
在您将预配 API Hub 的项目中:
- 按照 API Hub 预配步骤中的准备工作所述,授予预配所需的角色。
在您将关联到 API Hub 的 API Gateway 项目中:
- 向您的正文账号授予 Cloud API hub Runtime Project Attachment Editor (
roles/apihub.runTimeProjectAttachmentsEditor) 角色。 - 如需使用 Google Cloud 控制台将 API Gateway 项目附加到 API Hub,请向您的正文账号授予 Browser (
roles/browser) 角色。
预配 API Hub
在将 API Gateway 与 API Hub 连接之前,您需要在宿主项目中预配 API Hub。宿主项目是您在 Google Cloud 组织中指定为所有 API Hub 资源的使用方项目的 Google Cloud 项目。可以为每个宿主项目预配单个 API Hub 实例。
为了集中发现所有 API Gateway 中的 API,我们建议为 API Hub 实例使用一个专用宿主项目,并将多个 API Gateway 项目(称为运行时项目)关联到该 API Hub 实例。
如需在宿主项目中预配 API Hub,请执行以下任一操作:
在 Google Cloud 控制台中,前往 API Hub 页面,选择要用作宿主项目的 Google Cloud 项目,然后点击 设置 API Hub。
您可以按照以下方式从 API Gateway 页面访问此页面:
- 点击任意 API Gateway 页面顶部 API Hub 横幅中的开始使用
- 点击“API”页面顶部的开始使用 API Hub
然后,按照在 Cloud 控制台中预配 API Hub 中所述的详细预配步骤操作。
将 API Gateway 项目关联到 API Hub
将 API 网关项目关联到 API Hub。
Google Cloud 控制台
如需将 API 网关项目关联到 API Hub,请执行以下操作:
- 在 Google Cloud 控制台中,前往 API Hub 页面。
- 点击左侧导航菜单中的 设置,打开设置页面。
- 前往项目关联标签页。
- 如果您的 API 网关项目未列在关联的运行时项目列表中,请执行以下操作:
- 点击附加运行时项目。
系统随即会显示选择资源窗格。 - 点击已预配 API 网关的 Google Cloud 项目。
- 在项目关联设置窗格中,选择 API 网关以及您要自动导入的任何其他 API 资产。
- 点击保存。
- 点击附加运行时项目。
- 如果您的 API Gateway 项目已在关联的运行时项目列表中,请执行以下操作:
- 点击与 API Gateway 运行时项目关联的行中的修改设置。
- 在项目关联设置窗格中,选择 API 网关以及您要自动导入的任何其他 API 资产。
- 点击保存。
REST
如需将 API Gateway 项目关联到 API Hub,请使用 Create runtime project attachments 和 Create plugin instance 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 运行时项目的名称。
如果成功,则返回一个 Operation JSON 对象。