如何查询Azure上Web App的availability zone以匹配PostgreSQL部署?
解决方法:查询Azure Web App的可用区
1. 通过Azure CLI查询实例详情
执行以下命令,替换<资源组名称>和<Web App名称>为你的实际值:
az webapp instance list --resource-group <资源组名称> --name <Web App名称>
返回结果中,每个实例的zone字段即为该实例所在的可用区。若Web App有多个实例,未开启区域冗余的前提下,所有实例会处于同一可用区。
2. 通过Azure资源图查询
在Azure门户的资源图资源管理器中运行以下Kusto查询,替换<Web App名称>:
resources | where type == 'microsoft.web/sites' | where name == '<Web App名称>' | project name, resourceGroup, 可用区 = tostring(properties.availabilityZone)
查询结果会直接展示Web App的可用区信息。
关键注意点
- 若Web App使用消费计划,实例会动态分配到不同可用区,没有固定的单一可用区,这种情况下无需刻意匹配PostgreSQL的可用区。
- 只有使用**专用App Service计划(如Premium、弹性Premium、独立层)**的Web App,才会被分配固定的可用区。
原问题背景
我在Azure上运行着一个Web App和一个PostgreSQL灵活服务器。创建PostgreSQL服务器时,系统提示可选择指定一个可用区来部署数据库服务器,以便与应用程序同区域部署。我希望将PostgreSQL部署在与Web App相同的可用区中以提升性能,但不知道Web App位于哪个可用区。
已尝试的途径:
- 查看Web App仪表板、官方文档,均未找到相关信息。
- 使用CLI命令
az webapp show --name your_app --resource-group your_group,返回结果中无可用区相关细节。 - 考虑过通过IP或SSH交叉引用推断Web App的可用区,但尚未找到具体方法。
备注:
- 单独创建PostgreSQL服务器是因为这是选择所需特定配置的唯一方式。
- 不想使用“Zone redundancy”(因相关成本较高);仅需知晓Web App所在的可用区,以便为PostgreSQL选择相同的可用区。
内容的提问来源于stack exchange,提问作者Fabien Snauwaert
相关产品推荐
相关产品推荐

