【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

相关文章
|
3天前
|
缓存 容器 Perl
【Azure Container App】Container Apps 设置延迟删除 (terminationGracePeriodSeconds) 的解释
terminationGracePeriodSeconds : 这个参数的定义是从pod收到terminated signal到最终shutdown的最大时间,这段时间是给pod中的application 缓冲时间用来处理链接关闭,应用清理缓存的;并不是从idel 到 pod被shutdown之间的时间;且是最大时间,意味着如果application 已经gracefully shutdown,POD可能被提前terminated.
|
7天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
6天前
|
Java 开发工具 Windows
【Azure App Service】在App Service中调用Stroage SDK上传文件时遇见 System.OutOfMemoryException
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
|
6天前
|
安全 Apache 开发工具
【Azure App Service】在App Service上关于OpenSSH的CVE2024-6387漏洞解答
CVE2024-6387 是远程访问漏洞,攻击者通过不安全的OpenSSh版本可以进行远程代码执行。CVE-2024-6387漏洞攻击仅应用于OpenSSH服务器,而App Service Runtime中并未使用OpenSSH,不会被远程方式攻击,所以OpenSSH并不会对应用造成安全风险。同时,如果App Service的系统为Windows,不会受远程漏洞影响!
|
开发工具 数据安全/隐私保护 安全
远程调试 Azure Web App
当我们将 Web App 部署在 Azure 上时,如果能够实现远程调试,将会极大的提高我们修复 bug 的效率。Visual Studio 一贯以功能强大、易用著称,当然可以实现基于 Azure 应用的创建、发布和调试。
1178 0
|
30天前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
461 7

热门文章

最新文章