Azure Runbookの実行時間制限を試してみました

 

Runbookスケジュール実行させる場合、Runbookの障害で実行時間が遅延し予期せぬ時間帯に実行されるケースがあります。
予期せぬ時間帯にRunbookが実行される事象を防ぐためには、Rubbook内で実行時間を制限することが1つの対策となります。今回は下記サイトを参考に試してみました。

https://docs.microsoft.com/ja-jp/azure/automation/automation-runbook-execution

1 .Runbook実行時間を制限した場合のサンプル

今回は1つの例としてサーバ再起動のRunbookを作成してみました。9時から18時の間はRunbookが実行されないような設定にしています。

AddHours(9)で日本時間に合わせて、9時間追加してます。
$JST.Hour -lt 9で9時より前(8時59分以前)、$JST.Hour -gt 18で18時より後(18時01分以降)を指定しています。
8時59分時以前もしくは、18時01分以降なら実行という設定、つまり9時から18時の間は実行されないという設定が実現できます。

#Runbookサーバ再起動

#再起動対象の仮想マシンが属する、リソースグループ名
$rgName =“RG名”

#再起動する仮想マシン名
$vmName =“仮想マシン名”

# 認証
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzureRmAccount -ServicePrincipal -Tenant $Conn.TenantID `
-ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

# 時間指定
  $JST = (Get-Date).AddHours(9)
        if(($JST.Hour -lt 9) -or ($JST.Hour -gt 18)){
         Write-Output(“Proceed”)

# 実行する処理
        Restart-AzureRmVM -ResourceGroupName $rgName -Name $vmName

    }
    else
    {
        Write-Output(“Don’t proceed”)
    }

.仮想マシンの起動停止については、Automationアカウントにソリューションがあります

Microsoftのサイトに記載の通り、仮想マシンの起動停止については、Automationアカウントにソリューションが別途用意されています。この編も試してみたい所です。

https://docs.microsoft.com/ja-jp/azure/automation/automation-solution-vm-management