如何以编程方式重新启动Azure Web App实例?

时间:2019-05-10 21:32:35

标签: azure azure-web-sites azure-web-app-service

我有一组Azure Web应用程序,偶尔有单个实例变得不健康。我们已经确定,通过Advanced Diagnostics重新启动该特定实例会使该实例备份。

我们希望构建一些自动化功能,以便一旦检测到此不正常的实例,我们将自动运行并重新启动该实例(请注意,我们只想重新启动该实例,而不是整个Web应用程序)。

我们在public static Task RestartAsync(this IWebAppsOperations operations, string resourceGroupName, string name, bool? softRestart = null, bool? synchronous = null, CancellationToken cancellationToken = default);-> Microsoft.Azure.Management.AppService.Fluent中找到了WebAppsOperationsExtensions,在非Fluent ARM库中也发现了类似的情况。但是,这仅允许我们重新启动整个Web应用程序。我们希望将干扰降到最低,并且仅针对特定实例进行重启。

是否存在通过.NET库或REST API(我们将自行构建请求的地方)通过一种机制来重新启动单个Webapp实例?

1 个答案:

答案 0 :(得分:1)

在此MSDN博客文章中,其显示“用于WebApp的Azure PowerShell cmdlet允许您重新启动WebApp或WebApp插槽。但是,它们不允许重新启动WebApp中的实例”,但是其中包含PowerShell脚本。这会延迟所有实例重新启动: https://blogs.msdn.microsoft.com/david_burgs_blog/2018/07/11/powershell-script-to-restart-role-instances-for-webapp/

而且,如果您检查Azure REST API,则有两种方法可以杀死实例上的进程,如果您仅按特定实例杀死w3wp.exe进程,我认为它对您就足够了: https://docs.microsoft.com/en-us/rest/api/appservice/webapps/deleteinstanceprocess https://docs.microsoft.com/en-us/rest/api/appservice/webapps/deleteinstanceprocessslot

赞:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}?api-version=2016-08-01