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?