你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure 容器应用作为 API 导入

适用于:所有 API 管理层级

本文介绍如何使用 Azure 门户将 Azure 容器应用导入 Azure API 管理并测试已导入的 API。 在本文中,学习如何:

  • 导入公开 Web API 的容器应用
  • 在 Azure 门户中测试 API

使用 API 管理公开容器应用

借助 Azure 容器应用,无需管理复杂的基础结构即可部署容器化应用。 API 开发人员可以使用其首选编程语言或框架编写代码,生成完全支持分散式 Application Runtime (Dapr) 的微服务,并基于 HTTP 流量或其他事件进行缩放。

API 管理是推荐用来公开容器应用托管 Web API 的环境,原因如下:

  • 将管理和保护向 API 使用者公开的前端与管理和监视后端 Web API 分离开来
  • 在与其他 API 相同的环境中管理作为容器应用托管的 Web API
  • 应用策略来更改 API 行为,例如调用速率限制
  • 将 API 使用者定向到 API 管理的可自定义开发人员门户,来发现和了解 API、请求访问权限并进行试用

有关详细信息,请查看关于 API 管理

OpenAPI 规范与通配符操作

API 管理支持导入提供 OpenAPI 规范(Swagger 定义)的容器应用。 不过,OpenAPI 规范不是必需的。 建议提供 OpenAPI 规范。 API 管理可以导入单个操作,让你可以单独验证、管理、保护和更新每个操作的配置。

如果容器应用公开 OpenAPI 规范,API 管理会创建直接映射到定义的 API 操作。 API 管理将在多个位置查找 OpenAPI 规范

  • 容器应用配置。
  • /openapi.json
  • /openapi.yml
  • /swagger/v1/swagger.json

如果未提供 OpenAPI 规范,API 管理会为常见的 HTTP 谓词(GET 和 PUT 等)生成通配符操作。 你仍可利用相同的 API 管理功能,但定义操作的详细信息级别不同。

在这两种情况下,你都可以在导入后编辑操作或将操作添加到 API。

示例

后端容器应用可能支持两种 GET 操作:

  • https://myappservice.azurewebsites.net/customer/{id}
  • https://myappservice.azurewebsites.net/customers

通过 https://contosoapi.azure-api.net/store 等路径将容器应用导入 API 管理服务。 下表显示导入 API 管理的操作(无论是否具有 OpenAPI 规范):

类型 导入的操作 示例请求
OpenAPI 规范 GET /customer/{id}

GET /customers
GET https://contosoapi.azure-api.net/store/customer/1

GET https://contosoapi.azure-api.net/store/customers
通配符 GET /* GET https://contosoapi.azure-api.net/store/customer/1

GET https://contosoapi.azure-api.net/store/customers

通过通配符操作,可对后端服务发出与 OpenAPI 规范中的操作相同的请求。 不过,OpenAPI 指定的操作可在 API 管理中单独管理。

先决条件

转到你的 API 管理实例

  1. 在 Azure 门户中,搜索并选择“API 管理服务”。

    选择“API 管理服务”

  2. 在“API 管理”服务页上,选择你的 API 管理实例。

    选择你的 API 管理实例

导入和发布后端 API

  1. 在 Azure 门户中导航到 API 管理服务,然后从菜单中选择“API”。

  2. 从列表中选择“容器应用”。

    从容器应用创建

  3. 选择“浏览”,查看订阅中的容器应用列表。

  4. 选择容器应用。 如果 OpenAPI 定义与所选的容器应用关联,API 管理会提取该定义并将其导入。 如果未找到 OpenAPI 定义,API 管理会为常见的 HTTP 谓词生成通配符操作来公开 API。

  5. 添加 API URL 后缀。 后缀是用于在该 API 管理实例中标识此特定 API 的名称。 在该 API 管理实例中,后缀必须唯一。

  6. 通过关联 API 与产品来发布 API。 本例中使用了“无限制”产品 。 如果想要发布 API 并使其可供开发人员使用,请将其添加到产品中。

    注意

    产品是一个或多个 API 的关联。 可包含许多 API,并通过开发人员门户将其提供给开发人员。 开发人员必须先订阅产品才能访问 API。 订阅时,他们会得到一个订阅密钥,此密钥对该产品中的任何 API 都有效。 如果你创建了 API 管理实例,那么你是管理员,并且默认订阅了每个产品。

    创建后,每个 API 管理实例附带两个示例产品:

    • 入门
    • 不受限制
  7. 输入其他 API 设置。 可以在创建过程中设置这些值,也可以稍后转到“设置”选项卡来配置这些值。在导入和发布第一个 API 教程中对这些设置进行了说明。

  8. 选择“创建” 。

    从容器应用创建 API

在 Azure 门户中测试新的 API

可直接从 Azure 门户调用操作,这样可以方便地查看和测试 API 的操作。 你还可在开发人员门户中或使用自己的 REST 客户端工具来测试 API。

  1. 选择上一步中创建的 API。

  2. 选择“测试”选项卡。

  3. 选择操作。

    该页将显示查询参数的字段和标头的字段。 其中一个标头是 Ocp-Apim-Subscription-Key,用于提供和此 API 关联的产品订阅密钥。 如果创建了 API 管理实例,那么你已是管理员,因此会自动填充该密钥。

  4. 按“发送”。

    如果测试成功,后端会响应并显示“200 正常”和一些数据。

在 Azure 门户中测试通配符操作

生成通配符操作后,操作可能不会直接映射到后端 API。 例如,导入 API 管理中的通配符 GET 操作默认使用路径 /。 不过,后端 API 可能支持使用以下路径的 GET 操作:

/api/TodoItems

可按以下方式测试路径 /api/TodoItems

  1. 选择已创建的 API 并选择操作。

  2. 选择“测试”选项卡。

  3. 在“模板参数”中,更新通配符 (*) 名称旁边的值。 例如,输入 api/TodoItems。 此值会追加到通配符操作的路径 /

    测试通配符操作

  4. 选择Send

追加其他 API

可以为不同服务公开的 API 撰写 API,包括:

  • OpenAPI 规范
  • SOAP API
  • GraphQL API
  • Azure 应用服务中托管的 Web 应用
  • Azure 函数应用
  • Azure 逻辑应用
  • Azure Service Fabric

按照以下步骤将其他 API 追加到现有 API。

注意

导入另一个 API 时,操作将追加到当前 API 后面。

  1. 在 Azure 门户中转到自己的 Azure API 管理实例。

    转到 Azure API 管理实例

  2. 在概述页面上或左侧的菜单上选择“API” 。

    选择“API”

  3. 单击要将另一个 API 追加到的 API 旁边的“...”

  4. 从下拉菜单中选择“导入”。

    选择“导入”

  5. 选择要从中导入 API 的服务。

    选择服务

后续步骤