问题描述

APIM中的内容(API, Policy)等内容,如果有需要更新时候,通常可以在Azure APIM门户上操作,通过一个接口一个设置的修改,也可以针对一个接口导入/导出的方式修改。当APIM中的API成数量级上升后,这样的操作方式就变得很慢很没有效率,是否有更高效得方式呢?

以上两种方式都适合少量修改的情况。如果是APIM中大量API都需要修改呢?

问题解答

有的,因为APIM可以使用 Git 管理服务实例配置,实现批量更改。参考的官方文档为:https://docs.azure.cn/zh-cn/api-management/api-management-configuration-repository-git

实现步骤

步骤一:将APIM服务配置保存到 Git 存储库

克隆存储库之前的第一个步骤是将服务配置的当前状态保存到存储库。 单击“保存到存储库”。片刻后配置已保存,并显示存储库的配置状态,包括上次配置更改和服务配置与存储库之间上次同步的日期和时间。

将配置保存到存储库后,可以克隆它。

APIM Repository中的文件结构为:

  1. 根文件夹( api-management ) :包含服务实例的顶级配置
  2. apis 文件夹 : 包含服务实例中的 API 的配置
  3. groups 文件夹 : 包含服务实例中的组的配置
  4. policies 文件夹 : 包含服务实例中的策略
  5. portalStyles 文件夹 : 包含服务实例中的开发人员门户自定义的配置
  6. products 文件夹 : 包含服务实例中产品的配置
  7. templates 文件夹 : 包含服务实例中电子邮件模板的配置

这一步的操作截图如下:

步骤二:将APIM Repository 克隆到本地环境中

使用Git for Windows工具,在Git Bash 中输入clone指令: git clone https://{name}.scm.azure-api.cn/, 根据弹出框输入用户名和密码, 通过APIM Repository 页面中的 Acess Credentials方式获取。

步骤三:本地修改相应的APIM配置文件

APIM Repository中,每个文件夹都可包含一个或多个文件,并且在某些情况下可包含一个或多个文件夹,例如,每个 API、产品或组对应一个文件夹。 每个文件夹内的文件都特定于文件夹名称所述的实体类型。

  • json :关于相应实体的配置信息
  • html :关于实体的说明,通常显示在开发人员门户中
  • xml :策略语句
  • css :用于开发人员门户自定义的样式表

可在本地文件系统中创建、删除、编辑和管理这些文件,并将更改部署回 API 管理服务实例。

步骤四:将更改从本地存储库推送到APIM服务器存储器

要将更改从本地存储库推送到服务器存储库,必须提交更改,然后将它们推送到服务器存储库。 要提交更改,请打开 Git 命令工具、切换到本地存储库的目录,并发出以下命令。

git add --all
git commit -m "本次修改的文本描述"
#将所有提交推送到服务器
git push

步骤五:将更改部署到API Management实例中

完成第四步,将本地更改提交并推送到服务器存储库后,可将它们部署到 API 管理服务实例。可以在APIM Repository的页面中点击“Deploy to API Management”按钮,或者是通过REST API来执行Deploy操作。

API Management页面上点击“Deploy to API Management”按钮

Deploy API: https://docs.microsoft.com/zh-cn/rest/api/apimanagement/current-ga/tenant-configuration/deploy

注:中国区的API为:https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tenant/configuration/deploy?api-version=2021-08-01

参考资料

如何使用 Git 保存和配置 API 管理服务: https://docs.azure.cn/zh-cn/api-management/api-management-configuration-repository-git

 

【Azure API 管理】API Management如何有效且快速更新呢?如对APIs/Policy等设置内容的更多相关文章

  1. 【Azure API 管理】为调用APIM的请求启用Trace -- 调试APIM Policy的利器

    问题描述 在APIM中,通过门户上的 Test 功能,可以非常容易的查看请求的Trace信息,帮助调试 API 对各种Policy,在Inbound,Backend, Outbound部分的耗时问题, ...

  2. API管理平台XXL-API

    <API管理平台XXL-API> 一.简介 1.1 概述 XXL-API是一个简洁易用API管理平台,提供API的"管理"."文档"."M ...

  3. 如何通过Azure Service Management REST API管理Azure服务

    通过本文你将了解: 什么是Azure Service Management REST API 如何获取微软Azure 订阅号 如何获取Azure管理证书 如何调用Azure Service Manag ...

  4. 【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误

    问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure ...

  5. 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题

    问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...

  6. 【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."

    API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API ...

  7. 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token

    问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...

  8. 【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中

    问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure A ...

  9. 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败

    问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...

随机推荐

  1. sql审核-避免离线sql导致的db集群故障

    关键词: sql审核.sql审批.sql检查.sql检测.sql执行 离线sql可能会导致的问题 首先,什么是离线sql呢?就是说手动触发执行的这种sql:相对的还有在线sql,位于我们的程序代码中, ...

  2. DASCTF-Sept-X-浙江工业大学秋季挑战赛-pwn-wp

    目录 DASCTF-Sept-X-浙江工业大学秋季挑战赛-pwn-wp 总结 datasystem check分析 漏洞点 利用思路 exp hehepwn 漏洞点 exp hahapwn 漏洞点 e ...

  3. 热词cloud-EChart安装

    1.安装npm install echarts npm install echarts-wordcloud注意版本:echarts版本5只能和wordcloud版本2的一起使用 :echarts版本4 ...

  4. 【刷题-LeetCode】190 Reverse Bits

    Reverse Bits Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 0000001010010100000 ...

  5. deepin20搜狗输入法使用

    放大打字框 打出中文语句符号

  6. Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到17 了吗?

    2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M1. 下面一起来来看看Spring Boot 3.0.0 M1版本都有哪些重大变化: Java基线从 ...

  7. 推荐召回--基于物品的协同过滤:ItemCF

    目录 1. 前言 2. 原理&计算&改进 3. 总结 1. 前言 说完基于用户的协同过滤后,趁热打铁,我们来说说基于物品的协同过滤:"看了又看","买了又 ...

  8. migrate 和makemigrations 命令

    在你改动了app下 models.py的内容之后执行下面的命令: Python manger.py makemigrations 相当于 在该app下建立 migrations目录,并记录下你所有的关 ...

  9. python 小兵(8)闭包和装饰器

    闭包"是什么,以及,更重要的是,写"闭包"有什么用处. (个人理解) 1."闭包"是什么 首先给出闭包函数的必要条件: 闭包函数必须返回一个函数对象 ...

  10. java中的数据模型类

    package com.aaa.zxf.ajax.test; import java.io.Serializable; /** * java中的继承. * * 一.数据模型类 * 数据模型类:用来存取 ...