为 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 工具包派生出来的,但添加了许多其他功能,例如:
- 支持标记、用户、订阅、证书和Api订阅密钥
- 支持自定义生成的ARM模板名称
- 支持变量和条件语句
- 支持定义所有 APIM 实体的 ID
- 消除了一些错误。例如,Microsoft 的工具包无法部署使用 OpenApi Spec.
定义的多个 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 提供了很大的灵活性来支持复杂的场景。
我正在寻找一种直接且可维护的方法来为 Azure API 管理设置 CI/CD 管道。
比方说,对于每个版本,我可以从代码中自动生成 OpenAPI 规范。我如何基于此 OpenApi 规范来设置 Azure API Management 以及所有必需的版本集、api、产品、标签、用户、订阅、证书和策略?
我找到了 Azure DevOps 工具包,但它有错误,不提供所有功能,并且不够简单灵活,无法与 CI/CD 管道集成。
有一个不太知名的跨平台工具叫做dotnet-apim。
它是从 Microsoft 的 Apim DevOps 工具包派生出来的,但添加了许多其他功能,例如:
- 支持标记、用户、订阅、证书和Api订阅密钥
- 支持自定义生成的ARM模板名称
- 支持变量和条件语句
- 支持定义所有 APIM 实体的 ID
- 消除了一些错误。例如,Microsoft 的工具包无法部署使用 OpenApi Spec. 定义的多个 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 提供了很大的灵活性来支持复杂的场景。