Restart-Azure Rm Web App PowerShellを使用してWebアプリケーションを再起動することはできますが、これにより計画内のすべてのサーバーが同時に再起動されるため、 。Azure Webアプリケーションで高度なアプリケーションを再起動するPowershell
Azureポータルには、個々のインスタンスを再起動するまでの時間遅延を使用する「高度なアプリケーションの再起動」機能があります。
これをPowerShellから呼び出す方法はありますか?
Restart-Azure Rm Web App PowerShellを使用してWebアプリケーションを再起動することはできますが、これにより計画内のすべてのサーバーが同時に再起動されるため、 。Azure Webアプリケーションで高度なアプリケーションを再起動するPowershell
Azureポータルには、個々のインスタンスを再起動するまでの時間遅延を使用する「高度なアプリケーションの再起動」機能があります。
これをPowerShellから呼び出す方法はありますか?
説明によると、Get-AzureRmResourceコマンドを使用して、まず各インスタンスのプロセスをWebアプリケーションで見つけることができます。その後、Remove-AzureRmResourceを使用してこれらのプロセスを停止できます。次に、あなたがAzure Webアプリケーションにアクセスすると、Azureは自動的に新しいインスタンスのプロセスを作成してアプリケーションを実行します。
詳細は、PowerShellのコード以下を参照してください可能性:
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId '{your subscriptionid}'
$siteName = "{sitename}"
$rgGroup = "{groupname}"
$webSiteInstances = @()
#This gives you list of instances
$webSiteInstances = Get-AzureRmResource -ResourceGroupName $rgGroup -ResourceType Microsoft.Web/sites/instances -ResourceName $siteName -ApiVersion 2015-11-01
$sub = (Get-AzureRmContext).Subscription.SubscriptionId
foreach ($instance in $webSiteInstances)
{
$instanceId = $instance.Name
"Going to enumerate all processes on {0} instance" -f $instanceId
# This gives you list of processes running
# on a particular instance
$processList = Get-AzureRmResource `
-ResourceId /subscriptions/$sub/resourceGroups/$rgGroup/providers/Microsoft.Web/sites/$sitename/instances/$instanceId/processes `
-ApiVersion 2015-08-01
foreach ($process in $processList)
{
if ($process.Properties.Name -eq "w3wp")
{
$resourceId = "/subscriptions/$sub/resourceGroups/$rgGroup/providers/Microsoft.Web/sites/$sitename/instances/$instanceId/processes/" + $process.Properties.Id
$processInfoJson = Get-AzureRmResource -ResourceId $resourceId -ApiVersion 2015-08-01
# is_scm_site is a property which is set
# on the worker process for the KUDU
$computerName = $processInfoJson.Properties.Environment_variables.COMPUTERNAME
if ($processInfoJson.Properties.is_scm_site -ne $true)
{
$computerName = $processInfoJson.Properties.Environment_variables.COMPUTERNAME
"Instance ID" + $instanceId + "is for " + $computerName
"Going to stop this process " + $processInfoJson.Name + " with PID " + $processInfoJson.Properties.Id
# Remove-AzureRMResource finally STOPS the worker process
$result = Remove-AzureRmResource -ResourceId $resourceId -ApiVersion 2015-08-01 -Force
if ($result -eq $true)
{
"Process {0} stopped " -f $processInfoJson.Properties.Id
}
}
}
}
}
これは、アプローチの良い、実行可能な実装です。うまくいけば、それはRestart-Azure Rm Web Appコマンドレットのオプションになることが望ましいでしょう。 –
どれ更新あなたは私の答えは参考になりまし/便利であると感じた場合。それを他の人々が恩恵を受けることができるように答えとしてマークしてください。 –