Azure Automation での Runbook の実行Runbook execution in Azure Automation

Azure Automation で runbook を開始するときに、ジョブが作成されます。When you start a runbook in Azure Automation, a job is created. ジョブは、Runbook の単一の実行インスタンスです。A job is a single execution instance of a runbook. 各ジョブを実行する Azure Automation ワーカーが割り当てられます。An Azure Automation worker is assigned to run each job. ワーカーは多数の Azure アカウントで共有されますが、異なる Automation アカウントからのジョブは互いに分離されます。While workers are shared by many Azure accounts, jobs from different Automation accounts are isolated from one another. ジョブに対する要求をどのワーカーで処理するかを、制御することはできません。You don't have control over which worker services the request for your job. 1 つの Runbook で、多数のジョブを同時に実行することができます。A single runbook can have many jobs running at one time. 同じ Automation アカウントからのジョブの実行環境を再利用できます。The execution environment for jobs from the same Automation Account may be reused. 同時に実行するジョブが多いほど、同じサンドボックスにディスパッチする頻度が上がります。The more jobs you run at the same time, the more often they can be dispatched to the same sandbox. 同じサンドボックス プロセスで実行するジョブは、お互いに影響し合う可能性があります。1 つの例は、Disconnect-AzureRMAccount コマンドレットの実行です。Jobs running in the same sandbox process can affect each other, one example is running the Disconnect-AzureRMAccount cmdlet. このコマンドレットを実行すると、共有サンドボックス プロセス内の各 Runbook ジョブが切断されます。Running this cmdlet would disconnect each runbook job in the shared sandbox process. Azure Portal で Runbook の一覧を表示すると、各 Runbook に対して起動されたすべてのジョブの状態が一覧表示されます。When you view the list of runbooks in the Azure portal, it lists the status of all jobs that were started for each runbook. Runbook ごとにジョブの一覧を表示して、それぞれの状態を追跡できます。You can view the list of jobs for each runbook to track the status of each. ジョブのログは、最大 30 日間保存されます。Job logs are stored for a max of 30 days. ジョブのさまざまな状態の説明については、「ジョブの状態」をご覧ください。For a description of the different job statuses Job Statuses.


個人データの表示または削除に関心がある場合は、「GDPR のための Azure データ サブジェクト要求」を参照してください。If you’re interested in viewing or deleting personal data, please see the Azure Data Subject Requests for the GDPR article. GDPR に関する全般情報については、Service Trust ポータルの GDPR に関するセクションをご覧ください。If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.

次の図に、グラフィカル RunbookPowerShell ワークフロー Runbook のための Runbook ジョブのライフサイクルを示します。The following diagram shows the lifecycle of a runbook job for Graphical runbooks and PowerShell Workflow runbooks.

ジョブの状態 - PowerShell Workflow

次の図に、 PowerShell Runbookのための Runbook ジョブのライフサイクルを示します。The following diagram shows the lifecycle of a runbook job for PowerShell runbooks.

ジョブの状態 - PowerShell スクリプト

ジョブは、Azure サブスクリプションに接続することにより Azure リソースにアクセスします。Your jobs have access to your Azure resources by making a connection to your Azure subscription. データ センター内のリソースにパブリック クラウドからアクセスできる場合、ジョブはそれらのリソースにのみアクセスします。They only have access to resources in your data center if those resources are accessible from the public cloud.

Runbook を実行する場所Where to run your runbooks

Azure Automation の Runbook は、Azure のサンドボックスまたは Hybrid Runbook Worker のいずれかで実行できます。Runbooks in Azure Automation can run on either a sandbox in Azure or a Hybrid Runbook Worker. サンドボックスは、複数のジョブで使用できる Azure での共有環境です。A sandbox is a shared environment in Azure that can be used by multiple jobs. 同じサンドボックスを使用するジョブは、サンドボックスのリソース制限に縛られます。Jobs using the same sandbox are bound by the resource limitations of the sandbox. Hybrid Runbook Worker を使用すると、ロールをホストしているコンピューターで、環境内のリソースに対して Runbook を直接実行し、それらのローカル リソースを管理できます。Hybrid Runbook Workers can be used to run runbooks directly on the computer that's hosting the role and against resources in the environment to manage those local resources. Runbook は Azure Automation で格納および管理された後、1 つ以上の割り当て済みコンピューターに配信されます。Runbooks are stored and managed in Azure Automation and then delivered to one or more assigned computers. ほとんどの Runbook は、Azure のサンドボックスで容易に実行できます。Most runbooks can easily be ran in the Azure sandboxes. Runbook の実行のために、Azure サンドボックスよりも Hybrid Runbook を選択することが推奨される特定のシナリオがあります。There are specific scenarios where choosing a Hybrid Runbook over an Azure sandbox to execute your runbook may be recommended. 一部のシナリオの例を示した一覧については、次の表を参照してください。See the following table for a list of some example scenarios:

タスクTask 最適な選択肢Best Choice メモNotes
Azure リソースと統合するIntegrate with Azure resources Azure サンドボックスAzure Sandbox Azure でホストされ、認証がより簡単です。Hosted in azure, authentication is simpler. Azure VM で Hybrid Runbook Worker を使用している場合は、Azure リソース用のマネージド ID を使用できますIf you are using a Hybrid Runbook Worker on an Azure VM, you can use managed identities for Azure resources
最適なパフォーマンスで Azure リソースを管理するOptimal performance to manage azure resources Azure サンドボックスAzure Sandbox スクリプトは同じ環境内で実行されます。それが、待ち時間がより短いことにつながりますScript is ran in the same environment, which in turn has less latency
運用コストを最小限に抑えるMinimize operational costs Azure サンドボックスAzure Sandbox コンピューティングのオーバーヘッドがなく、VM の必要がありませんThere is no compute overhead, no need for a VM
実行時間の長いスクリプトLong running script Hybrid Runbook WorkerHybrid Runbook Worker Azure のサンドボックスにはリソースの制限がありますAzure sandboxes have limitation on resources
ローカル サービスと相互作用するInteract with Local services Hybrid Runbook WorkerHybrid Runbook Worker ホスト マシンに直接アクセスできますCan have access directly to host machine
サード パーティ製ソフトウェアと実行可能ファイルが必要Require 3rd party software and executables Hybrid Runbook WorkerHybrid Runbook Worker OS を管理し、ソフトウェアをインストールできますYou manage the OS and can install software
Runbook でファイルまたはフォルダーを監視するMonitor a file or folder with a runbook Hybrid Runbook WorkerHybrid Runbook Worker Hybrid Runbook Worker で Watcher タスクを使用しますUse a Watcher task on a Hybrid Runbook worker
多量のリソースを消費するスクリプトResource intensive script Hybrid Runbook WorkerHybrid Runbook Worker Azure のサンドボックスにはリソースの制限がありますAzure sandboxes have limitation on resources
特定の要件でのモジュールの使用Using modules with specific requirements Hybrid Runbook WorkerHybrid Runbook Worker 次に例をいくつか示します。Some examples are:
WinSCP - winscp.exe への依存関係WinSCP - dependency on winscp.exe
IISAdministration - IIS を有効にする必要があるIISAdministration - Needs IIS to be enabled
インストーラーが必要なモジュールをインストールするInstall module that requires installer Hybrid Runbook WorkerHybrid Runbook Worker サンドボックス用のモジュールは xcopy が可能な必要がありますModules for sandbox must be xcopyable
4.7.2 以外の .NET Framework が必要な Runbook またはモジュールの使用Using runbooks or modules that require .NET Framework different from 4.7.2 Hybrid Runbook WorkerHybrid Runbook Worker Automation のサンドボックスには .NET Framework 4.7.2 が備わっており、それをアップグレードする方法がありませんAutomation sandboxes have .NET Framework 4.7.2, and there is no way to upgrade it

Runbook の動作Runbook behavior

Runbook は、その内部で定義されているロジックに基づいて実行されます。Runbooks execute based on the logic that is defined inside them. Runbook は、中断された場合、先頭から再開されます。If a runbook is interrupted, the runbook restarts at the beginning. この動作のためには、一時的な問題があった場合の Runbook の再起動をサポートする方法で、Runbook が記述される必要があります。This behavior requires runbooks to be written in a way where they support being restarted if there were transient issues.

リソースの作成Creating resources

リソースを作成するスクリプトの場合、リソースの再作成を試みる前に、それが既に存在するかどうかを確認する必要があります。If your script creates resources, you should check to see if the resource already exists before attempting to create it again. 次の例で、基本となる例を示します。A basic example is shown in the following example:

$vmName = "WindowsVM1"
$resourceGroupName = "myResourceGroup"
$myCred = Get-AutomationPSCredential "MyCredential"
$vmExists = Get-AzureRmResource -Name $vmName -ResourceGroupName $resourceGroupName

    Write-Output "VM $vmName does not exists, creating"
    New-AzureRmVM -Name $vmName -ResourceGroupName $resourceGroupName -Credential $myCred
    Write-Output "VM $vmName already exists, skipping"

時間依存のスクリプトTime dependant scripts

Runbook の作成時に慎重に検討してください。Careful consideration should be made when authoring runbooks. 前述のように、Runbook は堅牢で、Runbook の再起動または失敗を引き起こす可能性のある一時的なエラーを処理できる方法で作成する必要があります。As mentioned earlier, runbooks need to be authored in a way that they're robust and can handle transient errors that may cause the runbook to restart or fail. Runbook は、失敗した場合には再試行されます。If a runbook fails it is retried. Runbook が、通常は時間の制約内で実行される場合、実行時間を調べるロジックを Runbook 内に実装し、起動、シャットダウン、スケールアウトなどの操作が特定時間中にのみ実行されるようにする必要があります。If a runbook normally runs within a time constraint, logic to check the execution time should be implemented in the runbook to ensure operations like start up, shut down or scale out are ran only during specific times.

進行状況の追跡Tracking progress

本質的にモジュラー形式である Runbook を作成することをお勧めします。It is a good practice to author runbooks to be modular in nature. これは、容易に再利用と再起動が可能なように Runbook のロジックを構築することを意味します。This means structuring the logic in the runbook such that it can be reused and restarted easily. Runbook の進行状況を追跡することは、問題がある場合に Runbook のロジックが正常に実行されることを保証する適切な方法です。Tracking progress in a runbook is a good way to ensure that the logic in a runbook is executed correctly if there were issues. Runbook の進行状況を追跡する方法は、ストレージ アカウント、データベース、ファイル共有のような外部ソースを使用する方法など、いくつか考えられます。Some possible ways to track the progress of the runbook is by using an external source such as storage accounts, a database, or shared files. 外部から状態を追跡することで、Runbook が実行した最後のアクションの状態をまずチェックし、その結果に基づいて、Runbook 内の特定のタスクをスキップまたは続行するように、Runbook のロジックを作成できます。By tracking the state externally, you can create logic in your runbook to first check the state of the last action the runbook took and based off the results either skip or continue specific tasks in the runbook.

同時実行ジョブの防止Prevent concurrent jobs

一部の Runbook は、複数のジョブにわたって同時に実行されると、おかしな動作をすることがあります。Some runbooks may behave strangely if they are running across multiple jobs at the same time. この場合、Runbook に既に実行中のジョブがあるかどうかをチェックするロジックを実装することが重要です。In this case, it's important to implement logic to check to see if a runbook already has a running job. この動作を実行可能な方法の基本例を、次の例に示します。A basic example of how you may do this behavior is shown in the following example:

# Authenticate to Azure
$connection = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzureRmAccount -ServicePrincipal -Tenant $connection.TenantID `
-ApplicationID $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint

$AzureContext = Select-AzureRmSubscription -SubscriptionId $connection.SubscriptionID

# Check for already running or new runbooks
$runbookName = "<RunbookName>"
$rgName = "<ResourceGroupName>"
$aaName = "<AutomationAccountName>"
$jobs = Get-AzureRmAutomationJob -ResourceGroupName $rgName -AutomationAccountName $aaName -RunbookName $runbookName -AzureRmContext $AzureContext

# If then check to see if it is already running
$runningCount = ($jobs | ? {$_.Status -eq "Running"}).count

If (($jobs.status -contains "Running" -And $runningCount -gt 1 ) -Or ($jobs.Status -eq "New")) {
    # Exit code
    Write-Output "Runbook is already running"
    Exit 1
} else {
    # Insert Your code here

実行可能ファイルの使用またはプロセスの呼び出しUsing executables or calling processes

Azure サンドボックスで実行される Runbook は、プロセス (.exe や など) の呼び出しをサポートしていません。Runbooks ran in Azure sandboxes do not support calling processes (such as an .exe or これは、Azure サンドボックスはコンテナーで実行される共有プロセスであり、基になっているすべての API にアクセスできるとは限らないためです。This is because Azure sandboxes are shared processes ran in containers, which may not have access to all the underlying APIs. サード パーティー製ソフトウェアやサブ プロセスの呼び出しが必要なシナリオの場合は、Hybrid Runbook Worker で Runbook を実行することをお勧めします。For scenarios where you require 3rd party software or calling of sub processes, it is recommended you execute the runbook on a Hybrid Runbook Worker.

ジョブの状態Job statuses

次の表には、ジョブが取り得るさまざまな状態を説明します。The following table describes the different statuses that are possible for a job. PowerShell には、終了するエラーと終了しないエラーという、2 種類のエラーがあります。PowerShell has two types of errors, terminating and non-terminating errors. 終了するエラーは、発生した場合に Runbook の状態を [失敗] に設定します。Terminating errors set the runbook status to Failed if they occur. 終了しないエラーの場合、エラー発生後もスクリプトを継続できます。Non-terminating errors allow the script to continue even after they occur. 終了しないエラーの例では、実在しないパスで Get-ChildItem コマンドレットを使用しています。An example of a non-terminating error is using the Get-ChildItem cmdlet with a path that doesn't exist. PowerShell では、パスが存在しないことを確認して、エラーをスローし、次のフォルダーへと処理を継続します。PowerShell sees that the path doesn't exist, throws an error, and continues to the next folder. このエラーでは、Runbook の状態を [失敗] に設定せず、[完了] とマークすることが可能です。This error wouldn't set the runbook status to Failed and could be marked as Completed. 終了しないエラー時に Runbook を強制的に停止するには、コマンドレットで -ErrorAction Stop を使用できます。To force a runbook to stop on a non-terminating error, you can use -ErrorAction Stop on the cmdlet.

StatusStatus 説明Description
完了Completed ジョブは正常に完了しました。The job completed successfully.
失敗Failed グラフィカル Runbook と PowerShell Workflow Runbookでは、Runbook のコンパイルが失敗しました。For Graphical and PowerShell Workflow runbooks, the runbook failed to compile. PowerShell スクリプト Runbook では、Runbook の開始に失敗したか、ジョブで例外が発生しました。For PowerShell Script runbooks, the runbook failed to start or the job had an exception.
失敗、リソースを待機中Failed, waiting for resources ジョブは fair share の限界に 3 回到達し、毎回、同じチェックポイントから、または Runbook の先頭から起動したために、失敗しました。The job failed because it reached the fair share limit three times and started from the same checkpoint or from the start of the runbook each time.
キューに登録済みQueued ジョブは Automation ワーカー上のリソースが使用できるようになるのを待機しています。そうなれば、ジョブを起動できます。The job is waiting for resources on an Automation worker to come available so that it can be started.
開始中Starting ジョブがワーカーに割り当てられており、システムがジョブを起動しています。The job has been assigned to a worker, and the system is starting it.
再開中Resuming システムは、ジョブが停止された後、そのジョブを再開しています。The system is resuming the job after it was suspended.
実行中Running ジョブは実行中です。The job is running.
実行中、リソースを待機中Running, waiting for resources ジョブは fair share 制限に達したためにアンロードされました。The job has been unloaded because it reached the fair share limit. ジョブは最後のチェックポイントからすぐに再開します。It resumes shortly from its last checkpoint.
停止済みStopped ジョブは完了した後、ユーザーによって停止されました。The job was stopped by the user before it was completed.
停止中Stopping システムは、ジョブを停止しています。The system is stopping the job.
SuspendedSuspended ユーザーか、システムか、または Runbook 内のコマンドによってジョブは中断されました。The job was suspended by the user, by the system, or by a command in the runbook. Runbook にチェックポイントがない場合は、Runbook の先頭から開始されます。If a runbook doesn't have a checkpoint, it starts from the beginning of the runbook. チェックポイントがある場合は、最後のチェックポイントからもう一度再開できます。If it has a checkpoint, it can start again and resume from its last checkpoint. Runbook は、例外が発生した場合にシステムによってのみ中断されます。The runbook is only suspended by the system when an exception occurs. 既定では、ErrorActionPreference は、エラーでもジョブの実行を継続することを意味する Continue に設定されています。By default, ErrorActionPreference is set to Continue, meaning that the job keeps running on an error. このユーザー設定変数を Stop に設定すると、エラー発生時にジョブは中断します。If this preference variable is set to Stop, then the job suspends on an error. グラフィカル Runbook と PowerShell Workflow Runbook のみに適用されます。Applies to Graphical and PowerShell Workflow runbooks only.
中断中Suspending ユーザーの要求を受けてシステムはジョブを中断しようとしています。The system is trying to suspend the job at the request of the user. Runbook は、次のチェックポイントに到達してからでないと、中断できません。The runbook must reach its next checkpoint before it can be suspended. Runbook は、次のチェックポイントに到達してからでないと、中断できません。If it already passed its last checkpoint, then it completes before it can be suspended. グラフィカル Runbook と PowerShell Workflow Runbook のみに適用されます。Applies to Graphical and PowerShell Workflow runbooks only.

Azure Portal を使用したジョブの状態の表示Viewing job status from the Azure portal

すべての Runbook ジョブの状態の概要を表示したり、Azure portal での特定の Runbook ジョブの詳細にドリルダウンしたりできます。You can view a summarized status of all runbook jobs or drill into details of a specific runbook job in the Azure portal. Log Analytics ワークスペースとの統合を構成し、Runbook のジョブの状態やジョブ ストリームを転送することも可能です。You can also configure integration with your Log Analytics workspace to forward runbook job status and job streams. Log Analytics との統合の詳細については、「Automation から Log Analytics へのジョブの状態とジョブ ストリームの転送」を参照してください。For more information about integrating with Log Analytics, see Forward job status and job streams from Automation to Log Analytics.

Automation Runbook ジョブの概要Automation runbook jobs summary

選択した Automation アカウントの右にある [ジョブの統計情報] タイルでは、すべての Runbook ジョブの概要を確認できます。On the right of your selected Automation account, you can see a summary of all the runbook jobs under Job Statistics tile.

[ジョブの統計情報] タイル

このタイルでは、実行されたすべてのジョブの数を確認できるほか、その状態がグラフィカルに表示されます。This tile displays a count and graphical representation of the job status for all jobs executed.

タイルをクリックすると、実行されたすべてのジョブの概要を示す一覧が含まれる [ジョブ] ページが表示されます。Clicking the tile presents the Jobs page, which includes a summarized list of all jobs executed. このページには、状態、開始時刻、および完了時刻が表示されます。This page shows the status, start times, and completion times.

Automation アカウントの [ジョブ] ページ

ジョブのリストをフィルター処理するには、[ジョブのフィルター] を選択します。特定の Runbook、ジョブの状態でフィルターしたり、検索対象の時刻の範囲をドロップダウン リストから選択したりできます。You can filter the list of jobs by selecting Filter jobs and filter on a specific runbook, job status, or from the drop-down list, and the time range to search within.

[フィルター] の [ジョブの状態]

また、特定の Runbook について、ジョブ概要の詳細情報を表示することもできます。それには、Automation アカウントで [Runbook] ページからその Runbook を選択し、[ジョブ] タイルを選択します。Alternatively, you can view job summary details for a specific runbook by selecting that runbook from the Runbooks page in your Automation account, and then select the Jobs tile. この操作で [ジョブ] ページが表示され、そのページでジョブ レコードをクリックすると、そのジョブの詳細と出力を表示できます。This action presents the Jobs page, and from there you can click the job record to view its detail and output.

Automation アカウントの [ジョブ] ページ

ジョブの概要Job Summary

特定の Runbook 用に作成されたすべてのジョブと、それらのジョブの最新の状態を、一覧で表示できます。You can view a list of all the jobs that have been created for a particular runbook and their most recent status. この一覧は、ジョブの状態とジョブに最後に変更を加えた日付の範囲とによってフィルター処理することができます。You can filter this list by job status and the range of dates for the last change to the job. 詳細な情報と出力を表示するには、ジョブの名前をクリックします。To view its detailed information and output, click the name of a job. ジョブの詳細表示には、そのジョブに指定された Runbook パラメーターの値が含まれます。The detailed view of the job includes the values for the runbook parameters that were provided to that job.

次の手順を使用して Runbook のジョブを表示します。You can use the following steps to view the jobs for a runbook.

  1. Azure Portal で、[Automation] を選択し、次に Automation アカウントの名前を選択します。In the Azure portal, select Automation and then select the name of an Automation account.
  2. ハブから [Runbook] を選択し、[Runbook] ページで、一覧から 1 つの Runbook を選択します。From the hub, select Runbooks and then on the Runbooks page select a runbook from the list.
  3. 選択した Runbook のページで、[ジョブ] タイルをクリックします。On the page for the selected runbook, click the Jobs tile.
  4. 一覧のジョブのいずれかをクリックすると、Runbook のジョブの詳細ページに、そのジョブの詳細と出力を表示できます。Click one of the jobs in the list and on the runbook job details page you can view its detail and output.

Windows PowerShell を使用したジョブの状態の取得Retrieving job status using Windows PowerShell

Get-AzureRmAutomationJob を使用して、Runbook 用に作成されたジョブと、特定のジョブの詳細を取得できます。You can use the Get-AzureRmAutomationJob to retrieve the jobs created for a runbook and the details of a particular job. Start-AzureRmAutomationRunbook を使用して、Windows PowerShell で Runbook を開始すると、結果として作成されたジョブが返されます。If you start a runbook with Windows PowerShell using Start-AzureRmAutomationRunbook, then it returns the resulting job. Get-AzureRmAutomationJobOutput を使用して、ジョブの出力を取得します。Use Get-AzureRmAutomationJobOutput to get a job’s output.

次のサンプル コマンドは、サンプル Runbook の最後のジョブを取得し、その状態、Runbook パラメーターに指定された値、およびジョブの出力を表示します。The following sample commands retrieve the last job for a sample runbook and display its status, the values provided for the runbook parameters, and the output from the job.

$job = (Get-AzureRmAutomationJob –AutomationAccountName "MyAutomationAccount" `
–RunbookName "Test-Runbook" -ResourceGroupName "ResourceGroup01" | sort LastModifiedDate –desc)[0]
Get-AzureRmAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
–AutomationAccountName "MyAutomationAcct" -Id $job.JobId –Stream Output

次の例では、特定のジョブの出力を取得し、各レコードを返します。The following sample retrieves the output for a specific job, and returns each record. いずれかのレコードで例外が発生した場合、値ではなく、その例外が書き出されます。In the case that there was an exception for one of the records, the exception is written out instead of the value. 出力中に正常にログに記録されない可能性がある追加情報を例外で提供できるため、この動作は有用です。This behavior is useful as exceptions can provide additional information, which may not be logged normally during output.

$output = Get-AzureRmAutomationJobOutput -AutomationAccountName <AutomationAccountName> -Id <jobID> -ResourceGroupName <ResourceGroupName> -Stream "Any"
foreach($item in $output)
    $fullRecord = Get-AzureRmAutomationJobOutputRecord -AutomationAccountName <AutomationAccountName> -ResourceGroupName <ResourceGroupName> -JobId <jobID> -Id $item.StreamRecordId
    if ($fullRecord.Type -eq "Error")

アクティビティ ログから詳細を取得するGet details from Activity log

Runbook を開始したユーザーやアカウントなどの他の詳細情報は、Automation アカウントのアクティビティ ログから取得できます。Other details such as the person or account that started the runbook can be retrieved from the Activity log for the automation account. 次の PowerShell の例では、対象の Runbook を最後に実行したユーザーが提供されます。The following PowerShell example provides the last user to run the runbook in question:

$SubID = "00000000-0000-0000-0000-000000000000"
$rg = "ResourceGroup01"
$AutomationAccount = "MyAutomationAccount"
$RunbookName = "Test-Runbook"
$JobResourceID = "/subscriptions/$subid/resourcegroups/$rg/providers/Microsoft.Automation/automationAccounts/$AutomationAccount/jobs"

Get-AzureRmLog -ResourceId $JobResourceID -MaxRecord 1 | Select Caller

fair shareFair share

クラウド内のすべての Runbook 間でリソースを共有するため、3 時間以上実行されているジョブがあると、Azure Automation はそれらのジョブを一時的にアンロードまたは停止します。To share resources among all runbooks in the cloud, Azure Automation temporarily unloads or stops any job that has been running for more than three hours. PowerShell ベースの Runbook および Python の Runbook に対するジョブは、停止されて再起動されずに、ジョブの状態には [停止済み] と表示されます。Jobs for PowerShell-based runbooks and Python runbooks are stopped and not restarted, and the job status shows Stopped.

長時間実行されるタスクの場合は、Hybrid Runbook Worker の使用をお勧めします。For long running tasks, it's recommended to use a Hybrid Runbook Worker. Hybrid Runbook Worker はフェア シェアによって制限されず、Runbook が実行できる時間に制限がありません。Hybrid Runbook Workers aren't limited by fair share, and don't have a limitation on how long a runbook can execute. その他のジョブの制限は、Azure サンドボックスと Hybrid Runbook Worker の両方に適用されます。The other job limits apply to both Azure sandboxes and Hybrid Runbook Workers. Hybrid Runbook Worker は 3 時間のフェア シェア制限を受けませんが、それでも Hybrid Runbook Worker で実行される Runbook は、予期しないローカル インフラストラクチャの問題からの再起動動作をサポートするように開発する必要があります。While Hybrid Runbook Workers aren't limited by the 3 hour fair share limit, runbooks ran on them should still be developed to support restart behaviors from unexpected local infrastructure issues.

もう 1 つのオプションは、子 Runbook を使用して Runbook を最適化することです。Another option is to optimize the runbook by using child runbooks. Runbook で、複数のリソースに対して同じ関数をループ処理する場合 (複数のデータベースに対するデータベース操作など)、その関数を子 Runbook に移動して、Start-AzureRMAutomationRunbook コマンドレットで呼び出すことができます。If your runbook loops through the same function on several resources, such as a database operation on several databases, you can move that function to a child runbook and call it with the Start-AzureRMAutomationRunbook cmdlet. これらの各子 Runbook は、別々のプロセスで並列に実行されるため、親 Runbook が完了するまでの合計時間が減ります。Each of these child runbooks executes in parallel in separate processes decreasing the total amount of time for the parent runbook to complete. お使いの Runbook で Get-AzureRmAutomationJob コマンドレットを使用すると、子 Runbook の完了後に実行が必要な操作がある場合、各子のジョブの状態を確認できます。You can use the Get-AzureRmAutomationJob cmdlet in your runbook to check the job status for each child if there are operations that need to be performed after the child runbook completes.

次の手順Next steps