在所有 Azure 应用服务实例上调用 WebRequest
Invoke-WebRequest on all Azure app service instances
我想为所有 Azure 应用程序服务实例调用 url 的列表
Invoke-WebRequest -UseBasicParsing -uri $url -Method Get
此命令不适用于多个 Web 应用程序实例
我尝试按照它运行的脚本运行并显示所有实例的资源 ID 和网站状态 200 OK
$webSiteInstances = Get-AzureRmResource -ResourceGroupName $rg -ResourceType
Microsoft.Web/sites/instances -Name $webapp -ApiVersion 2016-03-01
foreach ($instance in $webSiteInstances)
{
$instanceId = $instance.Name
"Going to enumerate all processes on {0} instance" -f $instanceId
$processList = Get-AzureRmResource -ApiVersion 2016-03-01 -ResourceId $resourceID
foreach ($process in $processList){
Invoke-WebRequest -UseBasicParsing -uri $url -Method Get
}
}
问题是我不确定每个实例是否真的 运行 如果不是,我该怎么做?
要请求您的网络应用程序的特定实例,您需要在请求中添加一个 cookie 以通过使用实例名称设置 ARRAffinity
cookie 来针对特定实例,请参阅 here .
所以您的脚本应该如下所示,在我这边运行良好。
$groupname = "xxxxxx"
$webappname = "joyweba"
$url = "https://joyweba.azurewebsites.net"
$webSiteInstances = Get-AzureRmResource -ResourceGroupName $groupname -ResourceType Microsoft.Web/sites/instances -Name $webappname -ApiVersion 2016-03-01
foreach ($instance in $webSiteInstances)
{
$instanceId = $instance.Name
"Going to enumerate all processes on {0} instance" -f $instanceId
$s = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$c = New-Object System.Net.Cookie('ARRAffinity',$instanceId,'/',"$webappname.azurewebsites.net")
$s.Cookies.Add($c)
Invoke-WebRequest -UseBasicParsing -Method Get -Uri $url -WebSession $s
}
我的web app中有3个实例,如果你通过fiddler抓取请求,就更清楚了。
我想为所有 Azure 应用程序服务实例调用 url 的列表
Invoke-WebRequest -UseBasicParsing -uri $url -Method Get
此命令不适用于多个 Web 应用程序实例
我尝试按照它运行的脚本运行并显示所有实例的资源 ID 和网站状态 200 OK
$webSiteInstances = Get-AzureRmResource -ResourceGroupName $rg -ResourceType
Microsoft.Web/sites/instances -Name $webapp -ApiVersion 2016-03-01
foreach ($instance in $webSiteInstances)
{
$instanceId = $instance.Name
"Going to enumerate all processes on {0} instance" -f $instanceId
$processList = Get-AzureRmResource -ApiVersion 2016-03-01 -ResourceId $resourceID
foreach ($process in $processList){
Invoke-WebRequest -UseBasicParsing -uri $url -Method Get
}
}
问题是我不确定每个实例是否真的 运行 如果不是,我该怎么做?
要请求您的网络应用程序的特定实例,您需要在请求中添加一个 cookie 以通过使用实例名称设置 ARRAffinity
cookie 来针对特定实例,请参阅 here .
所以您的脚本应该如下所示,在我这边运行良好。
$groupname = "xxxxxx"
$webappname = "joyweba"
$url = "https://joyweba.azurewebsites.net"
$webSiteInstances = Get-AzureRmResource -ResourceGroupName $groupname -ResourceType Microsoft.Web/sites/instances -Name $webappname -ApiVersion 2016-03-01
foreach ($instance in $webSiteInstances)
{
$instanceId = $instance.Name
"Going to enumerate all processes on {0} instance" -f $instanceId
$s = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$c = New-Object System.Net.Cookie('ARRAffinity',$instanceId,'/',"$webappname.azurewebsites.net")
$s.Cookies.Add($c)
Invoke-WebRequest -UseBasicParsing -Method Get -Uri $url -WebSession $s
}
我的web app中有3个实例,如果你通过fiddler抓取请求,就更清楚了。