为 Azure API 管理设置 CI/CD 管道 (APIM)

Set up a CI/CD pipeline for Azure API Management (APIM)

我正在寻找一种直接且可维护的方法来为 Azure API 管理设置 CI/CD 管道。

比方说,对于每个版本,我可以从代码中自动生成 OpenAPI 规范。我如何基于此 OpenApi 规范来设置 Azure API Management 以及所有必需的版本集、api、产品、标签、用户、订阅、证书和策略?

我找到了 Azure DevOps 工具包,但它有错误,不提供所有功能,并且不够简单灵活,无法与 CI/CD 管道集成。

有一个不太知名的跨平台工具叫做dotnet-apim

它是从 Microsoft 的 Apim DevOps 工具包派生出来的,但添加了许多其他功能,例如:

  1. 支持标记、用户、订阅、证书和Api订阅密钥
  2. 支持自定义生成的ARM模板名称
  3. 支持变量和条件语句
  4. 支持定义所有 APIM 实体的 ID
  5. 消除了一些错误。例如,Microsoft 的工具包无法部署使用 OpenApi Spec.
  6. 定义的多个 api

除了所有这些好处之外,该工具包现在打包为跨平台 dotnet 全局工具。因此,您可以轻松地在 ci/cd 管道中添加一个任务,一次性安装 dotnet 和 dotnet-apim。然后您就可以轻松调用该工具为您生成所需的ARM模板。

dotnet tool install --global Apim.DevOps.Toolkit  #installs the tool
dotnet-apim -c "c:/apim/definition.yml" #generates arm templates

该工具的 Github page provides a detailed explanation. Examples 也包括在内,以说明不同的场景。

Variables and Conditional Statements 提供了很大的灵活性来支持复杂的场景。