问题描述

昨天的博文中(https://www.cnblogs.com/lulight/p/17099179.html)介绍了使用Python SDK 来获取App Service的访问限制信息,那么如何调用REST API来实现呢? 

问题解答

如大家所知,Azure 不管是SDK, 门户UI,或者是PowerShell命令方式对Azure中资源进行操作,都是通过REST API方式处理请求。所以,如果不知道当前操作使用的是一个接口时,最简单的方法是:通过浏览器打开Azure门户,同时开启开发者模式(F12),在Azure门户上执行想执行的操作。然后查看Network Trace。

比如,想知道App Service的Access Restrictions操作是调用的哪一个API,找到点击保存时候,浏览器发出的请求即可找到。如下图中标记的1,2,3处。

在找到对于的API URL后,就可以知道大概的调查方向了。

Web Apps - Get Configuration:https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/get-configuration

Web Apps - Update Configuration:https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/update-configuration

以上两个接口,就可以实现获取,更新App Service的访问限制信息需求。

PS:  因文档为Global Azure说明文档,所以中国区的 API URL为:https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01

 

操作示例步骤为:

获取Web Apps 配置信息(其中包含Access Restrictions)

Request Method:GET

Request URL: https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01

Request Authorization:如是临时性操作,可以通过浏览器(开发者模式F12-->Network Trace)获取到请求所携带的Authorization Token(注:这个值过期时间为1个消失)。

Request Body:无

 

示例截图

没有Token的效果图:

Token过期效果图:

 

仅仅更新Access Restrictions部分

Request Method:PATCH

Request URL: https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/web?api-version=2022-03-01

Request Authorization:如是临时性操作,可以通过浏览器(开发者模式F12-->Network Trace)获取到请求所携带的Authorization Token(注:这个值过期时间为1个消失)。

Request Body:

{

"properties": {

"ipSecurityRestrictions": [

{

"ipAddress": "183.220.92.41/32",

"action": "Allow",

"tag": "Default",

"priority": 200,

"name": "111111"

},

{

"ipAddress": "Any",

"action": "Deny",

"priority": 2147483647,

"name": "Deny all",

"description": "Deny all access"

}

]

}

}

特别注意:以上JSON内容为覆盖模式,如果需要在以前的数据中新添加,需要在Body中包含之前的数据。否则,PATCH操作完成后,就只会剩下Body中的信数据。

示例截图

 

参考资料

Web Apps - Get Configuration:https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/get-configuration

Web Apps - Update Configuration:https://learn.microsoft.com/zh-cn/rest/api/appservice/web-apps/update-configuration

 

查看原文