You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure是否监控App Service所有实例及多实例健康检测IP问题

Azure App Service实例监控与健康检查问题解答

问题1:Azure是否会监控App Service的所有实例?

Azure App Service会默认监控所有运行中的实例,主要通过两种方式实现:

  • 自带监控面板:在Azure门户的App Service资源页,进入“监控”板块可查看每个实例的CPU、内存占用、请求量等实时指标,支持按实例维度筛选查看。
  • Application Insights:开启后会自动收集所有实例的请求日志、异常信息、性能数据,可通过实例ID维度筛选分析每个实例的运行状态。

问题2:如何针对所有App Service实例发起API调用并移除异常实例?

首先明确:App Service实例的内部IP不对外暴露,无法直接通过IP访问,需通过负载均衡器的定向机制访问单个实例,以下是可行方案:

核心方案:利用X-ARR-AFFINITY Cookie定向实例

  1. 获取实例列表(解析JSON格式)
    原脚本未将az命令返回的JSON字符串转为对象,导致无法提取实例属性,修正命令:

    $webAppName = "你的应用名称"
    $resourceGroup = "你的资源组名称"
    $instances = az webapp list-instances --name $webAppName --resource-group $resourceGroup | ConvertFrom-Json
    
  2. 构造定向Cookie,发起实例专属请求
    App Service的负载均衡器通过X-ARR-AFFINITY Cookie绑定请求到特定实例,Cookie值格式为{应用名称}_{实例ID}。修改脚本如下:

    $webAppUrl = "https://$webAppName.azurewebsites.net" # 替换为你的应用实际访问URL
    
    foreach ($instance in $instances) {
        # 构造定向到当前实例的Cookie
        $affinityCookie = "X-ARR-AFFINITY=$webAppName`_$($instance.Id)"
        $Headers = @{ "Cookie" = $affinityCookie }
    
        try {
            $response = Invoke-WebRequest -Method Post -Uri $webAppUrl -Headers $Headers -TimeoutSec 10
            
            if ($response.StatusCode -eq 200) {
                Write-Host "实例 [$($instance.Id)] 健康,返回状态码200"
            } else {
                Write-Host "实例 [$($instance.Id)] 异常,返回状态码$($response.StatusCode)"
                # 移除异常实例
                az webapp delete-instance --name $webAppName --resource-group $resourceGroup --instance-id $instance.Id
            }
        } catch {
            Write-Host "实例 [$($instance.Id)] 请求失败:$($_.Exception.Message)"
            # 移除异常实例
            az webapp delete-instance --name $webAppName --resource-group $resourceGroup --instance-id $instance.Id
        }
    }
    

特殊场景:隔离层ASE环境的实例访问

如果你的App Service部署在**App Service Environment(ASE)**中,每个实例会有专属内部域名(格式为{instance-id}.{ase-name}.p.azurewebsites.net),可直接通过该域名访问实例,无需Cookie定向。

关于出站IP的说明

出站IP是App Service对外发起请求时使用的地址,和入站请求的实例定向无关,无需通过出站IP定位实例。

内容的提问来源于stack exchange,提问作者Traci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:15:04