【Azure API 管理】API Management如何有效且快速更新呢?如对APIs/Policy等设置内容
问题描述
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中的文件结构为:
- 根文件夹( api-management ) :包含服务实例的顶级配置
- apis 文件夹 : 包含服务实例中的 API 的配置
- groups 文件夹 : 包含服务实例中的组的配置
- policies 文件夹 : 包含服务实例中的策略
- portalStyles 文件夹 : 包含服务实例中的开发人员门户自定义的配置
- products 文件夹 : 包含服务实例中产品的配置
- 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等设置内容的更多相关文章
- 【Azure API 管理】为调用APIM的请求启用Trace -- 调试APIM Policy的利器
问题描述 在APIM中,通过门户上的 Test 功能,可以非常容易的查看请求的Trace信息,帮助调试 API 对各种Policy,在Inbound,Backend, Outbound部分的耗时问题, ...
- API管理平台XXL-API
<API管理平台XXL-API> 一.简介 1.1 概述 XXL-API是一个简洁易用API管理平台,提供API的"管理"."文档"."M ...
- 如何通过Azure Service Management REST API管理Azure服务
通过本文你将了解: 什么是Azure Service Management REST API 如何获取微软Azure 订阅号 如何获取Azure管理证书 如何调用Azure Service Manag ...
- 【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 ...
- 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...
- 【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."
API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API ...
- 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...
- 【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 ...
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...
随机推荐
- Redis之持久化方式详解
背景:Redis之所以能够在技术革新发展迅速的时代超越Memcache等其他Nosql数据库,最主要的一点是Redis提供数据持久化,能够根据持久化策略将缓存数据灵活的写到磁盘上,更好地满足了当下海量 ...
- unittest测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...
- 嵌入式学习第四步—C语言学习用软件安装
学习一门计算机语言,不能光靠看书,最主要的是要动手联系.不记得从哪里看到过,要成为一名网络大牛,要有10万行以上的程序才是基础. 首先需要一个能够编辑程序的地方(IDE),经过大约10天的网上看各种视 ...
- Android中添加监听回调接口的方法
在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...
- Go - 如何编写 ProtoBuf 插件 (三) ?
目录 前言 演示代码 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (二) >,分享了基于 自定义选项 定义了 interceptor 插件,然后在 hell ...
- String类-intern方法
1 package cn.itcast.p1.string.demo; 2 3 class StringObjectDemo { 4 public static void main(String[] ...
- MySQL 5.7主从搭建(同一台机器)
主从复制原理:复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例. 1)主服务器将所有数据和结构更改记录到二进制日志中. 2)从属服务器从主服务器请求该二进制日志并在本地应用其 ...
- vue之keep-alive的使用
keep-alive:是vue内置的一个组件,可以使被包含的组件保留状态或避免重新渲染.有两个生命周期函数:activated.deachtivated.在vue 2.1.0版本后新增了两个属性:in ...
- 【以太坊剖析】以太坊虚拟机(EVM)之基本定义
以太坊虚拟机(EVM) 以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是一个基于栈的虚拟机,基于特定的环境数据,执行一系列的字节代码形式的指令,以修改系统状态.EVM目前 ...
- ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.12
公告 我们的所有非技术内容和活动,从现在开始会使用 iBooker 这个名字. "开源互助联盟"已终止,我们对此表示抱歉和遗憾.除非特地邀请,我们不再推广他人的任何项目. 公众号自 ...
