Azure Webapp 服务总线强制重启
Azure Webapp Service bus force restart
我对 Azure 资源有疑问。
我有一个包含 2 个 Web 应用程序的资源组,一个是 WebApp Api,第二个是用于服务总线的 WebApp。
我从来没有面对过这个问题,直到昨天才意识到它的存在。活动动态如下
在某些特定情况下,当我更新 Api(仅 api)时,我 运行 发布了一个新版本,它部署了新内容并重新启动了网络应用程序(在此在这种情况下,管道的目标是 Api 和服务),但昨天我意识到,如果我更新了 Api 并且不触及服务并且 运行 我的管道,天蓝色的 DevOps,不会为服务创建一个新的实现,但回复部署了旧的,因为那里没有变化。
我不介意创建一个全新的实现(无论如何都会很好),但我需要这个过程来自动重启这个网络应用程序服务。
这是我的问题,我回家有人可以帮我解决。
有没有一种方法可以强制 Web 应用程序简单地重新启动和更新,或者强制它创建一个新实现,即使代码没有更改?
非常感谢您抽出时间来帮助大家。
Web 应用程序-重新启动
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart?api-version=2019-08-01
带有可选参数:
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart?softRestart={softRestart}&synchronous={synchronous}&api-version=2019-08-01
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
}
}
}
}
}
您可以参考
Web Apps - Restart,
How to automatically restart an app service after certain time? 和
我对 Azure 资源有疑问。 我有一个包含 2 个 Web 应用程序的资源组,一个是 WebApp Api,第二个是用于服务总线的 WebApp。
我从来没有面对过这个问题,直到昨天才意识到它的存在。活动动态如下
在某些特定情况下,当我更新 Api(仅 api)时,我 运行 发布了一个新版本,它部署了新内容并重新启动了网络应用程序(在此在这种情况下,管道的目标是 Api 和服务),但昨天我意识到,如果我更新了 Api 并且不触及服务并且 运行 我的管道,天蓝色的 DevOps,不会为服务创建一个新的实现,但回复部署了旧的,因为那里没有变化。
我不介意创建一个全新的实现(无论如何都会很好),但我需要这个过程来自动重启这个网络应用程序服务。
这是我的问题,我回家有人可以帮我解决。
有没有一种方法可以强制 Web 应用程序简单地重新启动和更新,或者强制它创建一个新实现,即使代码没有更改?
非常感谢您抽出时间来帮助大家。
Web 应用程序-重新启动
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart?api-version=2019-08-01
带有可选参数:
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart?softRestart={softRestart}&synchronous={synchronous}&api-version=2019-08-01
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
}
}
}
}
}
您可以参考
Web Apps - Restart,
How to automatically restart an app service after certain time? 和