Есть ли возможность перезапускать классическую роль облачной службы Azure каждый интервал? - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю с облачным сервисом Azure (классический), в котором есть несколько ролевых процессов.Один из них - рабочий, который стал немного нестабильным через неделю, поэтому я хочу перезапускать его каждые несколько дней.В конечном итоге рабочая роль станет стабильной, но в то же время было бы целесообразно автоматически перезапускать ее каждые несколько дней, если это возможно.

Существует ли способ перезапускать классическую рабочую роль облачного сервиса Azure каждый день или около того??Программно или через конфигурацию?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я задавал этот вопрос на форуме Azure и в Reddit.

Первый ответ был на форуме Azure, сказал Марцин :

Вы можетеиспользуйте для этой цели Azure Automation

https://docs.microsoft.com/en-us/azure/cloud-services/automation-manage-cloud-services

https://gallery.technet.microsoft.com/scriptcenter/Reboot-Cloud-Service-PaaS-b337a06d

Затем Reddit, quentech сказал:

Вы можете сделать это с помощью PowerShell Workflow Runbook:

workflow ResetRoleClassic
{
    Param
    (
        [Parameter (Mandatory = $true)]
        [string]$serviceName,
        [Parameter (Mandatory = $true)]
        [string]$slot,
        [Parameter (Mandatory = $true)]
        [string]$instanceName
    )  

    $ConnectionAssetName = "AzureClassicRunAsConnection"

    # Get the connection
    $connection = Get-AutomationConnection -Name $connectionAssetName        

    # Authenticate to Azure with certificate
    Write-Verbose "Get connection asset: $ConnectionAssetName" -Verbose
    $Conn = Get-AutomationConnection -Name $ConnectionAssetName
    if ($Conn -eq $null)
    {
        throw "Could not retrieve connection asset: $ConnectionAssetName. Assure that this asset exists in the Automation account."
    }

    $CertificateAssetName = $Conn.CertificateAssetName
    Write-Verbose "Getting the certificate: $CertificateAssetName" -Verbose
    $AzureCert = Get-AutomationCertificate -Name $CertificateAssetName

    if ($AzureCert -eq $null)
    {
        throw "Could not retrieve certificate asset: $CertificateAssetName. Assure that this asset exists in the Automation account."
    }

    Write-Verbose "Authenticating to Azure with certificate." -Verbose    
    Set-AzureSubscription -SubscriptionName $Conn.SubscriptionName -SubscriptionId $Conn.SubscriptionID -Certificate $AzureCert 

    Select-AzureSubscription -SubscriptionId $Conn.SubscriptionID

    Write-Verbose "Getting $serviceName Role." -Verbose

    $results = Get-AzureRole -ServiceName $serviceName -InstanceDetails
    Write-Output $results

    Write-Verbose "Resetting Role Instance $instanceName" -Verbose

    $results = Reset-AzureRoleInstance -ServiceName $serviceName -Slot $slot -InstanceName $instanceName -Reboot    
    Write-Output $results
}

Я внес небольшие изменения в параметры и удалил внешние скобки.И, таким образом, смог использовать скрипт как есть по большей части.

0 голосов
/ 18 декабря 2018

Абсолютно Да. Существует два способа перезапустить экземпляр классической роли облачной службы Azure с помощью программного запуска через интервал.

  1. Вызовите REST API Reboot Role Instance с помощьютриггер crontab в программировании
  2. Вы можете перезапустить эти виртуальные машины роли с помощью вызова REST API Виртуальные машины - перезапустите в программировании или напрямую используйте тот же API-интерфейс функции Azure SDK для языка программирования..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...