所有文章 > 如何集成API > Azure API Management 与 ARM 模板的集成:实现基础设施即代码
Azure API Management 与 ARM 模板的集成:实现基础设施即代码

Azure API Management 与 ARM 模板的集成:实现基础设施即代码

在本次演讲中,我们将探讨如何将 Azure API ManagementARM 模板 集成,以实现基础设施即代码(Infrastructure as Code, IaC)的开发方法。这种集成可以帮助我们自动化部署,确保环境之间的一致性,并简化管理与扩展。


1. ARM 模板简介

ARM 模板 是 JSON 文件,用于定义和部署 Azure 基础设施。通过 ARM 模板,我们可以实现基础设施即代码(IaC),将配置作为代码进行版本控制、重用和维护。ARM 模板的主要优势包括:

  • 声明式语法:只需描述最终状态,Azure 将负责其余部分。
  • 一致性:确保开发、测试和生产环境之间的一致性。
  • 版本控制:将配置文件存储在 Git 等版本控制系统中,便于跟踪变更。
  • 自动化:完全自动化 API Management 实例的配置和部署。


2. ARM 模板的结构

ARM 模板包含以下主要部分:

  1. $schema:指定模板的 JSON 架构版本。
  2. contentVersion:用户定义的版本号,用于内部版本控制。
  3. parameters:输入参数,用于在部署时提供动态值。
  4. variables:在模板内部计算的值,用于简化模板并避免重复。
  5. resources:定义要部署的资源,如 API Management 实例、API、策略等。
  6. outputs:部署后返回的有用值,如 API 名称或 URL。

3. 创建 ARM 模板

  1. 创建新模板
    • 登录到 Azure 门户。
    • 导航到“模板部署”部分。
    • 选择“在编辑器中构建自己的模板”。
    • 清除默认内容,开始定义自己的模板。

  1. 定义参数

    • 在模板中添加 parameters 部分,定义必要的输入值,如服务名称、发布者邮箱等。
    • 示例:
      ""parameters"": {
      ""apiManagementServiceName"": {
       ""type"": ""string"",
       ""defaultValue"": ""myApiManagementService""
      },
      ""publisherEmail"": {
       ""type"": ""string"",
       ""defaultValue"": ""publisher@example.com""
      },
      ""publisherName"": {
       ""type"": ""string"",
       ""defaultValue"": ""My Company""
      }
      }
  2. 定义资源

    • resources 部分,定义要部署的资源。例如,创建一个 API Management 实例:
      {
      ""type"": ""Microsoft.ApiManagement/service"",
      ""apiVersion"": ""2021-08-01"",
      ""name"": ""[parameters('apiManagementServiceName')]"",
      ""location"": ""[resourceGroup().location]"",
      ""properties"": {
       ""publisherEmail"": ""[parameters('publisherEmail')]"",
       ""publisherName"": ""[parameters('publisherName')]""
      },
      ""sku"": {
       ""name"": ""Developer"",
       ""capacity"": 1
      }
      }


  1. 保存模板
    • 点击“保存”按钮,保存模板。


4. 部署 ARM 模板

  1. 输入参数

    • 在部署界面中,输入实际的参数值,如服务名称、发布者邮箱等。
  2. 启动部署

    • 点击“审核 + 创建”,然后点击“创建”开始部署。
  3. 验证部署

    • 部署完成后,导航到资源组,验证 API Management 实例是否已成功创建。

5. 扩展模板

  1. 添加 API

    • 在现有模板中添加新的资源定义,例如 Pet Store API。
    • 使用 dependsOn 属性确保 API 在 API Management 实例创建后部署。
    • 示例:
      {
      ""type"": ""Microsoft.ApiManagement/service/apis"",
      ""apiVersion"": ""2021-08-01"",
      ""name"": ""[concat(parameters('apiManagementServiceName'), '/PetStore')]"",
      ""dependsOn"": [
       ""[resourceId('Microsoft.ApiManagement/service', parameters('apiManagementServiceName'))]""
      ],
      ""properties"": {
       ""displayName"": ""Pet Store"",
       ""protocol"": ""https"",
       ""path"": ""petstore"",
       ""serviceUrl"": ""https://petstore.swagger.io/v2""
      }
      }

  2. 完整模板示例

    {
     ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"",
     ""contentVersion"": ""1.0.0.0"",
     ""parameters"": {
       ""apiManagementServiceName"": {
         ""type"": ""string"",
         ""defaultValue"": ""myApiManagementService""
       },
       ""publisherEmail"": {
         ""type"": ""string"",
         ""defaultValue"": ""publisher@example.com""
       },
       ""publisherName"": {
         ""type"": ""string"",
         ""defaultValue"": ""My Company""
       }
     },
     ""resources"": [
       {
         ""type"": ""Microsoft.ApiManagement/service"",
         ""apiVersion"": ""2021-08-01"",
         ""name"": ""[parameters('apiManagementServiceName')]"",
         ""location"": ""[resourceGroup().location]"",
         ""properties"": {
           ""publisherEmail"": ""[parameters('publisherEmail')]"",
           ""publisherName"": ""[parameters('publisherName')]""
         },
         ""sku"": {
           ""name"": ""Developer"",
           ""capacity"": 1
         }
       },
       {
         ""type"": ""Microsoft.ApiManagement/service/apis"",
         ""apiVersion"": ""2021-08-01"",
         ""name"": ""[concat(parameters('apiManagementServiceName'), '/PetStore')]"",
         ""dependsOn"": [
           ""[resourceId('Microsoft.ApiManagement/service', parameters('apiManagementServiceName'))]""
         ],
         ""properties"": {
           ""displayName"": ""Pet Store"",
           ""protocol"": ""https"",
           ""path"": ""petstore"",
           ""serviceUrl"": ""https://petstore.swagger.io/v2""
         }
       }
     ],
     ""outputs"": {}
    }


6. 验证部署

  1. 检查 API Management 实例

    • 导航到 API Management 实例,确保 Pet Store API 已成功添加。
  2. 验证操作

    • 确保所有操作已从 Swagger 文件中正确导入。

7. 总结

通过 ARM 模板,我们可以实现基础设施即代码,确保开发、测试和生产环境之间的一致性。ARM 模板的主要优势包括:

  • 一致性:确保不同环境之间的一致性。
  • 版本控制:将配置文件存储在版本控制系统中。
  • 自动化:完全自动化部署过程,减少手动错误。
  • 标准化:确保团队遵循最佳实践。

原文引自YouTube视频:https://www.youtube.com/watch?v=1F6uvXQDcPI

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费