0

我们有一个 Azure Web 应用程序,我们想按计划设置自动重启。如果我想为此使用 Runbook,我将如何添加一个或多个应用程序以在不同的时间表上自动重启?

4

1 回答 1

0

有许多不同的方法可以做到这一点,其中一些将取决于您拥有的 Azure-Runbook 模块版本。

  1. 您需要将用户设置为“RunAsConnection”用户
  2. 要获得连接,您可以使用 cmdlet:Get-AutomationConnection
  3. 然后要添加经过身份验证的帐户,请使用:Add-AzureRmAccount
  4. 如果您有多个订阅,则需要选择要使用的订阅:Select-AzureRmSubscription
  5. 最后,使用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 回答