【Azure 应用服务】App Service - 在修改应用服务计划的页面中,为什么无法查看到同一个资源组下面的其他应用服务计划(App Service Plan)呢?

简介: 【Azure 应用服务】App Service - 在修改应用服务计划的页面中,为什么无法查看到同一个资源组下面的其他应用服务计划(App Service Plan)呢?

问题描述

在App Service的门户上,可以通过“Change App Service Plan”来改变当前App Service所属的应用服务计划(App Service Plan),在页面中,它会自动列举出来当前订阅下,同一个Resource Group的App Service Plan。

但是,为什么它显示不出来同一个资源组,同一个订阅号下面的,需要的appplantest001这一个App Service Plan呢?

 

问题分析

因为Azure门户上的所有内容都是调用REST API来获取的,所以只需要通过浏览器F12(开发者模式)下,找到在页面Change App Service Plan中获取有效的App Service Plan的API就可以进行下一步分析,查看为什么资源组里面显示的App Service Plan无法在页面中列举出来。

第一步:进入App Service 页面,点击F12,选择 Network Tab页。

第二步:进入Change App Service Plan页面,点开App Serivce Plan的下拉列表。

第三步:筛查所有的返回结果,在其中通过页面中的关键字进行过滤。如本次实验中使用的“ASP-apprg-8ff0”

第四步:通过返回结果,反向查看请求所发送的Payload。找出其中主要的过滤条件。如本实验中找出的条件如下:

where type == 'microsoft.web/serverfarms'
        | extend webspace = extract('.*', 0, tostring(properties.webSpace))
        | where webspace == 'app-rg-ChinaNorth2webspace'
        | project id, name, type, kind, properties, webspace, sku

以上四步的操作动画如下:

当拿到第四步的过滤条件后,这里非常明显是一个 Azure Resource Graph的查询语句,可以通过Azure Resource Graph Explorer页面来进行验证:Azure Resource Graph Explorer - Microsoft Azure 由世纪互联运营

把webspace 放入到显示窗口中,发现确实看不见 appplantest001 这个App Service Plan。

放宽以上语句的Where条件,指过滤当前订阅号下的App Service Plan,对比看一看webspace是否相同:

where type == 'microsoft.web/serverfarms'
        | extend webspace = extract('.*', 0, tostring(properties.webSpace))
        | where subscriptionId =='your subscription id'
        //| where webspace == 'app-rg-ChinaNorth2webspace'
        | project id, name, type, kind, webspace, sku

执行结果:发现Webspace值不同,所以它无法被Change App Service Plan页面显示出来。

为什么同一个资源组下面的 WebSpace 会不一样呢? 这是因为App Service Plan是可以在资源组间相互移动的,但是webspace的值确不会跟随移动的操作而改变。它是在最开始创建的时候就已经确定,无法继续修改。 的确,应用服务计划(appplantest001)是创建的时候选择了错误的资源组,然后把移动到正确的资源组的。这的确就是真相。

在发现问题根源后,并且无法移动到不同的webspace下,最后删除错误的App Service Plan,重新创建新的App Service Plan(appplantest001), 修改应用服务计划成功。达成目标!

 

参考资料

Azure Resource Graph Explorer:https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade

将应用移到另一个应用服务计划:https://docs.azure.cn/zh-cn/app-service/app-service-plan-manage#move-an-app-to-another-app-service-plan

相关文章
|
7天前
|
开发工具 git C++
【App Service】VS Code直接部署App Service时候遇见 “fatal: not a git repository (or any of the parent directories): .git”
通过VS Code发布Python App Service的时候,遇见了发布失败错误: The deployment failed with error: fatal: not a git repository (or any of the parent directories): .git . Please take a few minutes to help us improve the deployment experience
55 24
|
18小时前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
6天前
|
机器人 Shell Linux
【Azure Bot Service】部署Python ChatBot代码到App Service中
本文介绍了使用Python编写的ChatBot在部署到Azure App Service时遇到的问题及解决方案。主要问题是应用启动失败,错误信息为“Failed to find attribute 'app' in 'app'”。解决步骤包括:1) 修改`app.py`文件,添加`init_func`函数;2) 配置`config.py`,添加与Azure Bot Service认证相关的配置项;3) 设置App Service的启动命令为`python3 -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func`。
|
19天前
|
前端开发 UED 开发者
uni-app:去除导航栏&跨域的问题&blobe查看图片&v-deep&页面操作 (五)
本文介绍了几个前端开发技巧:1) 如何通过设置 `navigationStyle` 为 `custom` 去除顶部导航;2) 解决跨域问题的方法,包括使用 `dotenv` 加载全局变量和配置 `devServer` 的代理;3) 使用 Blob 和 FileReader 查看图片;4) 利用 `v-deep` 深度作用选择器修改样式;5) 修改页面左上角返回按钮的行为。
|
14天前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
197 7
|
13天前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
244 1
|
14天前
|
JavaScript 前端开发 UED
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
35 9
|
17天前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
99 1
|
18天前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
246 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
23天前
|
JavaScript 前端开发 小程序
uniapp一个人开发APP关键步骤和考虑因素
uniapp一个人开发APP关键步骤和考虑因素
83 1
uniapp一个人开发APP关键步骤和考虑因素