你当前正在访问 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) 身份验证。

先决条件

配置单一登录 (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 门户配置实例计数:

  1. 导航到你的服务实例并选择“API 门户”。
  2. 选择“横向扩展”。
  3. 配置“实例计数”,然后选择“保存”。

为 API 门户分配公共终结点

使用以下步骤向 API 门户分配公共终结点:

  1. 选择“API 门户”。
  2. 选择“概述”以查看分配给 API 门户的运行状态和资源。
  3. 选择“分配终结点”旁边的“是”以分配公共终结点。 几分钟内会生成一个 URL。
  4. 保存 URL 供稍后使用。

配置 API 试用功能

API 门户让你能够集中查看 API,并使用 API 试用功能试用它们。 默认情况下启用 API 试用,此配置可帮助你在整个 API 门户实例中将其关闭。 有关详细信息,请参阅在 API 门户中试用 API 部分。

使用以下步骤启用或禁用 API 试用:

  1. 导航到你的服务实例并选择“API 门户”。
  2. 选择“配置”。
  3. 选择或清除“启用 API 试用”,然后选择“保存”。

在 Tanzu 的 Spring Cloud 网关上使用 OpenAPI 规范配置 API 路由

本部分介绍如何在 API 门户中查看和试用具有架构定义的 API。 使用以下步骤在 Tanzu 的 Spring Cloud 网关上使用 OpenAPI 规范 URL 配置 API 路由。

  1. 在 Azure Spring Apps 中创建网关会将流量路由到的应用。

  2. 生成 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
  3. 使用以下命令将公共终结点分配给网关以访问它。

    az spring gateway update --assign-endpoint
    
  4. 使用以下命令配置 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 "*"
    
  5. 配置到应用的路由规则。

    若要在 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
    
  6. 检查创建的路由的响应。 还可以在门户中查看路由。

在 API 门户中查看公开的 API

注意

在 Tanzu 的 Spring Cloud 网关和 API 门户之间同步需要几分钟时间。

选择 endpoint URL 以转到 API 门户。 你会看到在 Tanzu 的 Spring Cloud 网关中配置的所有路由。

API 门户的屏幕截图,其中显示了配置的路由。

在 API 门户中试用 API

使用以下步骤试用 API:

  1. 选择要尝试的 API。

  2. 选择“EXECUTE”,然后会显示响应。

    API 门户的屏幕截图,其中显示了已选择的“执行”选项。

创建服务后启用/禁用 API 门户

可以在创建服务后使用 Azure 门户或 Azure CLI 启用和禁用 API 门户。 在禁用 API 门户之前,需要取消分配其终结点。

使用以下步骤通过 Azure 门户启用或禁用 API 门户:

  1. 导航到服务资源,然后选择“API 门户”。
  2. 选择“管理”。
  3. 选择或取消选择“启用 API 门户”,然后选择“保存”。
  4. 现在可以在“API 门户”页上查看 API 门户的状态。

后续步骤