Как использовать модули Runbook Azure для перезапуска Azure Web App по расписанию - PullRequest
0 голосов
/ 09 июня 2018

У нас есть веб-приложение Azure, для которого мы хотим настроить автоматический перезапуск по расписанию.Если бы я хотел использовать Runbook для этого, как бы я добавил одно или несколько приложений для автоматического перезапуска по разным графикам?

1 Ответ

0 голосов
/ 09 июня 2018

Существует несколько различных способов сделать это, и некоторые из них будут зависеть от версий модуля Azure-Runbook, которые у вас есть.

  1. Вам необходимо настроить пользователя как пользователя 'RunAsConnection'
  2. Чтобы получить соединение, вы можете использовать командлет: Get-AutomationConnection
  3. Затем, чтобы добавить аутентифицированную учетную запись, вы используете: Add-AzureRmAccount
  4. Если у вас несколько подписок, вам нужно будет выбрать используемую подписку: Select-AzureRmSubscription
  5. Наконец, используйте Restart-AzureRmWebApp для перезапускавеб-приложение.

Если вы установите $result= Restart-AzureRmWebApp, если $result равно нулю, то оно не будет работать, в противном случае вы увидите состояние работающего веб-приложения.Например.$result.State = "Running", если он работал успешно.

Чтобы сделать это по расписанию : перейдите в свою Runbook> Расписания> Добавить расписание.

Добавьте входные параметры и выберите / создайте повторяющееся расписание.Нажмите Ok, и все готово!

*** Если вы используете параметр для вашего 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...