我们有一个 Azure Web 应用程序,我们想按计划设置自动重启。如果我想为此使用 Runbook,我将如何添加一个或多个应用程序以在不同的时间表上自动重启?
问问题
1157 次
1 回答
0
有许多不同的方法可以做到这一点,其中一些将取决于您拥有的 Azure-Runbook 模块版本。
- 您需要将用户设置为“RunAsConnection”用户
- 要获得连接,您可以使用 cmdlet:Get-AutomationConnection
- 然后要添加经过身份验证的帐户,请使用:Add-AzureRmAccount
- 如果您有多个订阅,则需要选择要使用的订阅:Select-AzureRmSubscription
- 最后,使用Restart-AzureRmWebApp重新启动 Web 应用程序。
如果你设置了a $result= Restart-AzureRmWebApp
,如果$result
为null,那么它没有工作,否则你会看到正在运行的webapp的状态。例如。$result.State = "Running"
如果它成功了。
要按计划执行此操作:转到 Runbook > Schedules > Add Schedule。
添加输入参数,并选择/创建重复计划。单击确定,您就完成了!
*** 如果您为您的 webAppName 使用参数,那么您可以重用运行手册,只需添加具有不同输入参数的不同计划
示例代码。
try
{
$servicePrincipalConnection= Get-AutomationConnection -Name "AzureRunAsConnection"
# Logging in to Azure
$account = Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
Select-AzureRmSubscription -SubscriptionName "Azure subscription name"
$result = Restart-AzureRmWebApp `
-ResourceGroupName "Resource Name"
-Name "Name of webapp you want to restart"
if($result)
{
$state = $result.State
Write-Output ("Web app restarted and is now $state") #State should be Running at this point
}
else
{
Write-Output ("Web app did NOT restart")
}
}
catch
{
Write-Output ("Web app did NOT restart")
throw $_.Exception
}
于 2018-06-08T23:13:48.763 回答