如何在一定时间后自动重启应用服务?

时间:2017-08-09 10:35:28

标签: azure-web-app-service

24小时后如何自动重启应用服务?如何通过使用Web作业安排应用服务在特定时间自动重启?

4 个答案:

答案 0 :(得分:1)

您可以通过创建Web作业并放置PowerShell脚本来停止和启动Web应用程序来实现此目的。

要执行Azure App Service的启动/停止操作,Web作业应该可以访问您的订阅。它还需要您的Azure配置文件。

Login-AzureRmAccount
Save-AzureRmProfile -Path "E:\azureprofile.json"

创建PowerShell以停止/启动App Service

创建一个新文件夹并放置下载的发布配置文件    上一步。

创建PowerShell并另存为run.ps1

$ProgressPreference= "SilentlyContinue"
Select-AzureRmProfile -Path "azureprofile.json"
Select-AzureRmSubscription -SubscriptionId '<subscriptionId>'
Stop-AzureRmWebApp -Name '<AppService-Name>' -ResourceGroupName '<Resource-Group-Name>'
Start-AzureRmWebApp -Name '<AppService-Name>' -ResourceGroupName '<Resource-Group-Name>'

在App Service Web作业部分添加此内容,并根据您的要求运行,方法是创建一个cron表达式。

参考:Azure App Services: Automate Application restart using Web Job

答案 1 :(得分:0)

Save-AzureRmProfile -Path“E:\ azureprofile.json”返回错误,但命令Save-AzureRmContext-Path“C:\ script.json”提供的输出与Save-AzureRmProfile -Path的输出相同“ E:\ azureprofile.json”

答案 2 :(得分:0)

我们也可以使用Azure Rest API来做到这一点。关于如何获取访问令牌,请参阅azure document

POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/restart?api-version=2016-08-01&softRestart&synchronous={softRestart&synchronous}

WebJob接受以下文件类型:

  

.cmd,.bat,.exe(使用windows cmd)

     

.ps1(使用powershell)

     

.sh(使用bash)

     

.php(使用php)

     

.py(使用python)

     

.js(使用节点)

     

.jar(使用java)

如果可以使用C#,则使用.Net库example

答案 3 :(得分:0)

您也可以使用LogicApps或RunBooks进行此操作。这是使用Logic Apps的示例:https://blog.aggregatedintelligence.com/2020/01/restarting-web-app-using-logic-apps.html

基本上,您创建一个触发器,然后添加“ Azure RM Invoke Action”。这些设置需要经过充分记录,因此我将其记录在博客中。从根本上讲,这是确保按计划进行的最简单方法,并且可以将先前关于REST API(Azure RM操作在幕后使用),Web作业(无需创建一个)的讨论汇总在一起。 ,因为LogicApp会为您运行它。