如何使用Azure Runbook按计划重新启动Azure Web App

时间:2018-06-08 21:57:35

标签: azure-automation azure-runbook

我们有一个Azure Web App,我们希望按计划设置自动重启。如果我想使用Runbook,我如何添加一个或多个应用程序以自动重新启动不同的日程安排?

1 个答案:

答案 0 :(得分:0)

有许多不同的方法可以执行此操作,有些方法取决于您拥有的Azure-Runbook模块版本。

  1. 您需要将用户设置为' RunAsConnection'用户
  2. 要获得连接,可以使用cmdlet: Get-AutomationConnection
  3. 然后,要添加经过身份验证的帐户,请使用: Add-AzureRmAccount
  4. 如果您有多个订阅,则需要选择 订阅使用:选择-AnlandRmSubscription
  5. 最后,使用 Restart-AzureRmWebApp 重新启动网络应用。
  6. 如果您设置$result= Restart-AzureRmWebApp,如果$result为空,那么它不起作用,否则您将看到正在运行的网络应用的状态。 例如。 $result.State = "Running"如果成功的话。{/ p>

      

    要在时间表上执行此操作:转到Runbook>时间表>加   时间表。

         

    添加输入参数,然后选择/创建定期计划。   点击“确定”即可完成!

         

    ***如果您为webAppName使用参数,则可以重复使用   Runbook,只需添加具有不同输入参数的不同计划

    示例代码。

    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
    }