你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 VMware Tanzu 的 API 门户
注意
从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:❌ 基本版/标准版 ✔️ 企业版
本文介绍如何将 VMware Tanzu 的 API 门户与 Azure Spring Apps 企业计划结合使用。
API 门户是商业 VMware Tanzu 组件之一。 API 门户支持从 VMware Tanzu 的 Spring Cloud 网关查看 API 定义,以及从浏览器测试特定的 API 路由。 它还支持通过配置启用单一登录 (SSO) 身份验证。
先决条件
- 已预配且已启用 API 门户的 Azure Spring Apps 企业计划实例。 有关详细信息,请参阅快速入门:使用企业计划生成应用并将其部署到 Azure Spring Apps。
- 在预配期间启用了 Tanzu 的 Spring Cloud 网关,并配置了相应的 API 元数据。
配置单一登录 (SSO)
API 门户支持使用单一登录 (SSO) 以及支持 OpenID Connect Discovery 协议的 OpenID 标识提供者 (IdP) 进行身份验证和授权。
注意
仅支持 OpenID Connect Discovery 协议的授权服务器受支持。 请确保将外部授权服务器配置为允许重定向回 API 门户。 请参阅授权服务器的文档,并将 https://<api-portal-external-url>/login/oauth2/code/sso
添加到允许的重定向 URI 列表。
properties | 必需? | 说明 |
---|---|---|
issuerUri | 是 | 应用断言为其颁发者标识符的 URI。 例如,如果提供的 issuer-uri 是 "https://example.com",则会向 "https://example.com/.well-known/openid-configuration" 发出 OpenID 提供程序配置请求。 结果应该是 OpenID 提供程序配置响应。 |
clientId | 是 | IdP 提供的 OpenID Connect 客户端 ID |
clientSecret | 是 | IdP 提供的 OpenID Connect 客户端密码 |
scope | 是 | 要包括在 JWT 标识令牌中的作用域的列表。 此列表应基于标识提供者允许的作用域 |
若要使用 Microsoft Entra ID 设置 SSO,请参阅如何使用适用于 Spring Cloud 网关的 Microsoft Entra ID 和 Tanzu 的 API 门户设置单一登录。
注意
如果配置了错误的 SSO 属性(例如错误的密码),应删除整个 SSO 属性,然后重新添加正确的配置。
配置实例计数
为 API 门户分配公共终结点
使用以下步骤向 API 门户分配公共终结点:
- 选择“API 门户”。
- 选择“概述”以查看分配给 API 门户的运行状态和资源。
- 选择“分配终结点”旁边的“是”以分配公共终结点。 几分钟内会生成一个 URL。
- 保存 URL 供稍后使用。
配置 API 试用功能
API 门户让你能够集中查看 API,并使用 API 试用功能试用它们。 默认情况下启用 API 试用,此配置可帮助你在整个 API 门户实例中将其关闭。 有关详细信息,请参阅在 API 门户中试用 API 部分。
在 Tanzu 的 Spring Cloud 网关上使用 OpenAPI 规范配置 API 路由
本部分介绍如何在 API 门户中查看和试用具有架构定义的 API。 使用以下步骤在 Tanzu 的 Spring Cloud 网关上使用 OpenAPI 规范 URL 配置 API 路由。
在 Azure Spring Apps 中创建网关会将流量路由到的应用。
生成 OpenAPI 定义并获取用于访问它的 URI。 可以使用以下两个 URI 选项:
- 第一个选项是使用可公开访问的终结点,例如包含 OpenAPI 规范的 URI
https://petstore3.swagger.io/api/v3/openapi.json
。 - 第二个选项是将 OpenAPI 定义放在 Azure Spring Apps 中的应用的相对路径中,并以
http://<app-name>/<relative-path-to-OpenAPI-spec>
格式构造 URI。 你可以选用SpringDocs
等工具来自动生成 OpenAPI 规范,因此 URI 可类似于http://<app-name>/v3/api-docs
。
- 第一个选项是使用可公开访问的终结点,例如包含 OpenAPI 规范的 URI
使用以下命令将公共终结点分配给网关以访问它。
az spring gateway update --assign-endpoint
使用以下命令配置 Tanzu 的 Spring Cloud 网关属性:
az spring gateway update \ --api-description "<api-description>" \ --api-title "<api-title>" \ --api-version "v0.1" \ --server-url "<endpoint-in-the-previous-step>" \ --allowed-origins "*"
配置到应用的路由规则。
若要在 Tanzu 的 Spring Cloud 网关路由配置中创建应用访问规则,请将以下内容保存到 sample.json 文件。
{ "open_api": { "uri": "https://petstore3.swagger.io/api/v3/openapi.json" }, "routes": [ { "title": "Petstore", "description": "Route to application", "predicates": [ "Path=/pet", "Method=PUT" ], "filters": [ "StripPrefix=0" ] } ] }
open_api.uri
值是在上述第二步中构造的公共终结点或 URI。 你可以为 OpenAPI 规范中定义的路径添加谓词和筛选器。使用以下命令将规则应用于第一步中创建的应用:
az spring gateway route-config create \ --name sample \ --app-name <app-name> \ --routes-file sample.json
检查创建的路由的响应。 还可以在门户中查看路由。
在 API 门户中查看公开的 API
注意
在 Tanzu 的 Spring Cloud 网关和 API 门户之间同步需要几分钟时间。
选择 endpoint URL
以转到 API 门户。 你会看到在 Tanzu 的 Spring Cloud 网关中配置的所有路由。
在 API 门户中试用 API
使用以下步骤试用 API:
选择要尝试的 API。
选择“EXECUTE”,然后会显示响应。
创建服务后启用/禁用 API 门户
可以在创建服务后使用 Azure 门户或 Azure CLI 启用和禁用 API 门户。 在禁用 API 门户之前,需要取消分配其终结点。
使用以下步骤通过 Azure 门户启用或禁用 API 门户:
- 导航到服务资源,然后选择“API 门户”。
- 选择“管理”。
- 选择或取消选择“启用 API 门户”,然后选择“保存”。
- 现在可以在“API 门户”页上查看 API 门户的状态。