Azure Automation の Runbook の種類

Azure Automation のプロセス オートメーション機能では、次の表で定義されているように、いくつかの種類の Runbook がサポートされています。 プロセス オートメーション環境の詳細については、「Azure Automation での Runbook の実行」を参照してください。

Type 説明
PowerShell Windows PowerShell スクリプトに基づくテキスト形式の Runbook です。 現在サポートされているバージョンは、PowerShell 5.1 (GA)、PowerShell 7.1 (プレビュー)、PowerShell 7.2 (プレビュー) です。
PowerShell ワークフロー Windows PowerShell ワークフロー スクリプトに基づくテキスト形式の Runbook です。
Python Python スクリプトに基づくテキスト形式の Runbook です。 現在サポートされているバージョンは、Python 2.7 (GA)、Python 3.8 (GA)、Python 3.10 (プレビュー) です。
グラフィカル Windows PowerShell に基づき、Azure portal のグラフィカル エディターで完全に作成および編集される グラフィカル Runbook です。
グラフィカル PowerShell ワークフロー Windows PowerShell ワークフローに基づき、Azure portal のグラフィカル エディターで完全に作成および編集される グラフィカル Runbook です。

特定の Runbook に使用する種類を決定するときは、次のことを考慮します。

  • グラフィカル Runbook からテキスト Runbook への変換、およびこの逆の変換を行うことはできません。
  • 異なる種類の Runbook を子 Runbook として使用する場合は制限があります。 詳しくは、「Azure Automation での子 Runbook」をご覧ください。

PowerShell Runbook

PowerShell Runbook は、Windows PowerShell に基づきます。 Azure ポータルのテキスト エディターを使用して、Runbook のコードを直接編集します。 また、任意のオフライン テキスト エディターを使用したり、Azure Automation に Runbook をインポート したりすることもできます。

PowerShell のバージョンは、指定されたランタイム バージョン によって決まります (つまり、バージョン 7.2 (プレビュー)、7.1 (プレビュー)、または 5.1)。 Azure Automation サービスは、最新の PowerShell ランタイムをサポートしています。

同じ Azure サンドボックスと Hybrid Runbook Worker が PowerShell 5.1PowerShell 7.1 (プレビュー) の Runbook をサイド バイ サイドで実行することができます。

注意

  • 現在、PowerShell 7.2 (プレビュー) ランタイム バージョンは、オーストラリア中部 2、韓国南部、スウェーデン南部、Jio India Central、ブラジル南東部、インド中部、インド西部、アラブ首長国連邦中部、Gov クラウドを除くすべてのパブリック リージョンのクラウドとハイブリッド の両方のジョブでサポートされています。
  • Runbook の実行時に、ランタイム バージョン7.1 (プレビュー) として選択した場合は 7.1 (プレビュー) ランタイム バージョンをターゲットとする PowerShell モジュールが使用され、ランタイム バージョン5.1 として選択した場合は 5.1 ランタイム バージョンをターゲットとする PowerShell モジュールが使用されます。 これは、PowerShell 7.2 (プレビュー) モジュールと Runbook に適用されます。

モジュールに適切なランタイム バージョンを選択したことを確認してください。

たとえば、 ランタイム バージョン7.1 (プレビュー) で SharePoint オートメーション シナリオの Runbook を実行している場合は、 ランタイム バージョン7.1 (プレビュー) でモジュールをインポートします。 ランタイム バージョン5.1 で SharePoint オートメーション シナリオの Runbook を実行する場合は、 ランタイム バージョン5.1 でモジュールをインポートします。 この場合、モジュールの 2 つのエントリが表示されます。1 つは ランタイム バージョン7.1 (プレビュー) 用、もう 1 つは 5.1 用です。

Runbook の種類。

注意

現在、PowerShell 5.1、PowerShell 7.1 (プレビュー)、PowerShell 7.2 (プレビュー) がサポートされています。

長所

  • すべての複雑なロジックを PowerShell コードで実装でき、PowerShell ワークフローのその他の複雑さはありません。
  • 実行前にコンパイルする必要がないため、PowerShell ワークフロー Runbook よりも速く起動できます。
  • Windows と Linux の両方の Azure と Hybrid Runbook Worker で動作します。

制限事項と既知の問題

現在、PowerShell Runbook には次の制限事項と既知の問題があります。

制限事項

  • PowerShell スクリプトについて理解している必要があります。
  • Runbook に並列処理を使用し、複数のアクションを並列して実行することはできません。
  • Runbook にチェックポイントを使用し、エラーが発生した場合に Runbook を再開することはできません。
  • PowerShell、PowerShell ワークフロー Runbook とグラフィカル Runbook を子 Runbook として組み込むには、新しいジョブを作成する Start-AzAutomationRunbook コマンドレットを使用する必要があります。
  • Runbook では PowerShell #Requires ステートメントを使用できません。Azure サンドボックスまたは Hybrid Runbook Worker ではサポートされていないため、ジョブが失敗する可能性があります。
  • Azure Runbook では、 は-credentialサポートStart-Jobされていません。
  • Azure では、すべての PowerShell 入力パラメーターがサポートされているわけではありません。 詳細については、こちらを参照してください

既知の問題

  • などの C:\modules 内部ファイル パスに依存する Runbook は、サービス バックエンド インフラストラクチャの変更により失敗する可能性があります。 Runbook コードを変更して、内部ファイル パスに依存関係がないことを確認し、 Get-ChildItem を 使用して必要なディレクトリを取得します。
  • ARM テンプレートを介してインポートされたモジュールは、 で Import-module読み込まれていない可能性があります。 回避策として、(モジュール名として名前を持つ) .zip ファイルを作成し、名前付きフォルダー (ModuleNamedZipFile.zip \ModuleFiles など) を圧縮するのではなく、モジュール ファイルを .zip ファイルに直接追加します。 その後、モジュールを削除するか、新しい .zip ファイルに再度追加できます。
  • Get-AzStorageAccount コマンドレットがエラーで失敗する可能性があります。 コマンドは Get-AzStorageAccount モジュール Az.Storageで見つかりましたが、モジュールを読み込めませんでした
  • .zip ファイルを介してアップロードされた PowerShell 5.1 モジュールが Runbook に読み込まれていない可能性があります。 回避策として、(モジュール名として名前を持つ) .zip ファイルを作成し、名前付きフォルダー (ModuleNamedZipFile.zip \ModuleFiles など) を圧縮するのではなく、モジュール ファイルを .zip ファイルに直接追加します。 その後、モジュールを削除するか、新しい .zip ファイルに再度追加できます。
  • 完了したジョブには、 Az モジュールと AzureRM モジュールの両方がこのマシンで検出されましたという警告メッセージが表示されることがあります。Az モジュールと AzureRM モジュールを同じセッションにインポートしたり、同じスクリプトまたは Runbook で使用したりすることはできません。 これは単なる警告メッセージであり、ジョブの実行には影響しません。
  • PowerShell Runbook では、null 値を含む暗号化されていない変数資産は取得できません。
  • PowerShell Runbook では、名前に *~* が含まれる変数資産は取得できません。
  • PowerShell Runbook のループ内の Get-Process 操作は、約 80 回の反復後にクラッシュする可能性があります。
  • 一度に大量のデータを出力ストリームに書き込もうとした場合、PowerShell Runbook が失敗する可能性があります。 通常、大きなオブジェクトの処理に必要な情報のみを Runbook から出力することで、この問題を回避できます。 たとえば、制限なしで Get-Process を使用するのではなく、Get-Process | Select ProcessName, CPU のように必要なパラメーターのみをコマンドレットから出力させることができます。
  • ExchangeOnlineManagement モジュール バージョン 3.0.0 以降を使用すると、エラーが発生する可能性があります。 この問題を解決するには、 PowerShellGet モジュールと PackageManagement モジュールも明示的にアップロードしてください。
  • New-item コマンドレットを使用すると、ジョブが中断される可能性があります。 この問題を解決するには、軽減策の手順に従います。
    1. 変数内のコマンドレットのnew-item出力を使用し、コマンドを使用してwrite-output出力ストリームに書き込む必要はありません
      • Runbook の [ログ記録] と [トレース ] 設定から有効にした後で、デバッグ ストリームまたは進行状況ストリームを使用できます。
      $item = New-Item -Path ".\message.txt" -Force -ErrorAction SilentlyContinue
      write-debug $item # or use write-progress $item
      
      • または、スクリプトでこれを行うために必要な場合は、変数が空でない場合にチェックすることもできます。
      $item = New-Item -Path ".\message.txt" -Force -ErrorAction SilentlyContinue
      if($item) { write-output "File Created" }
      
    2. また、同じ Runbook が想定どおりに動作する PowerShell 7.1 または PowerShell 7.2 に Runbook をアップグレードすることもできます。
  • バージョン 2.12.3 以降のモジュール Az.Accounts をインポートする場合は、PowerShell 5.1 Runbook がこのバージョンのモジュールに依存している場合は、 必ず Newtonsoft.Json v10 モジュールを明示的にインポートしてください。 この問題の回避策は、PowerShell 7.2 Runbook を使用することです。

PowerShell ワークフロー Runbook

PowerShell ワークフロー Runbook は、 Windows PowerShell ワークフローに基づくテキスト Runbook です。 Azure ポータルのテキスト エディターを使用して、Runbook のコードを直接編集します。 また、任意のオフライン テキスト エディターを使用したり、Azure Automation に Runbook をインポート したりすることもできます。

Note

PowerShell 7.1 (プレビュー) と PowerShell 7.2 (プレビュー) はワークフロー Runbook をサポートしていません。

長所

  • すべての複雑なロジックを PowerShell ワークフローのコードで実装できます。
  • エラーが発生した場合は、チェックポイントを使用して操作を再開できます。
  • 並列処理を使用して、複数のアクションを並行して実行できます。
  • 高度なワークフローを作成するために、他のグラフィカル Runbook や PowerShell ワークフロー Runbook を子 Runbook として組み込むことができます。

制限事項

  • PowerShell ワークフローについて理解している必要があります。
  • 逆シリアル化されたオブジェクトなど、PowerShell ワークフローに関する別の複雑さに対応する必要があります。
  • Runbook は、実行前にコンパイルする必要があるため、PowerShell Runbook よりも起動に時間がかかります。
  • PowerShell Runbook を子 Runbook として含めるには、Start-AzAutomationRunbook コマンドレットを使用する必要があります。
  • Linux Hybrid Runbook Worker では Runbook を実行できません。

Python Runbook

Python Runbook は、Python 2.7(GA)、Python 3.8 (GA) および Python 3.10 (プレビュー) でコンパイルされます。 Azure portal のテキスト エディターを使用して、Runbook のコードを直接編集することができます。 また、任意のオフライン テキスト エディターを使用したり、Azure Automation に Runbook をインポートしたりすることもできます。

現在、Python 3.10 (プレビュー) ランタイム バージョンは、オーストラリア中部 2、韓国南部、スウェーデン南部、Jio India Central、ブラジル南部、インド中部、インド西部、アラブ首長国連邦中部、Gov クラウドを除くすべてのパブリック リージョンで、クラウドとハイブリッドの両方のジョブでサポートされています。

長所

注意

Python パッケージのインポートには数分かかる場合があります。

  • 堅牢な Python ライブラリを使用できます。
  • Azure または Hybrid Runbook Worker で実行できます。
  • Python 2.7 では、 Python 2.7 がインストールされた状態で Windows Hybrid Runbook Worker がサポートされます。
  • Python 3.8 クラウド ジョブの場合、Python 3.8 バージョンがサポートされています。 コードが異なるバージョン間で互換性がある場合は、3.x バージョンのスクリプトとパッケージが動作する可能性があります。
  • Windows マシン上の Python 3.8 ハイブリッド ジョブの場合は、使用する 3.x バージョンをインストールすることを選択できます。
  • Linux マシン上の Python 3.8 ハイブリッド ジョブの場合、DSC OMSConfig と Linux ハイブリッド Worker を実行するには、マシンにインストールされている Python 3 バージョンに依存します。 Python 3 のバージョン間でメソッド シグネチャまたはコントラクトに破壊的変更がない場合には、異なるバージョンでも機能します。

制限事項

Python Runbook の制限事項を次に示します

  • Python スクリプトについて理解している必要があります。
  • Python 2.7.12 モジュールの場合は、ホイール ファイル cp27-amd6 を使用します。
  • サードパーティ製ライブラリを使用するには、Automation アカウントにパッケージをインポートする必要があります。
  • Azure Automation では sys.stderr がサポートされていません。
  • Python automationassets パッケージは pypi.org では使用できないため、Windows マシンへのインポートには使用できません。

複数の Python バージョン

これは、Windows ハイブリッド ワーカーに適用されます。 Windows Runbook Worker では、Python 2 Runbook を実行するときに、PYTHON_2_PATH 環境変数が最初に検索され、それが有効な実行可能ファイルを参照しているかどうかが検証されます。 たとえば、インストール フォルダーが C:\Python2 の場合、C:\Python2\python.exe が有効なパスであるかどうかがチェックされます。 見つからない場合は、PATH 環境変数が検索され、同様のチェックが実行されます。

Python 3 の場合、PYTHON_3_PATH 環境変数が最初に検索された後、PATH 環境変数にフォールバックされます。

Python の 1 つのバージョンだけを使用する場合は、PATH 変数にインストール パスを追加できます。 Runbook Worker で両方のバージョンを使用する場合は、PYTHON_2_PATHPYTHON_3_PATH をそれらのバージョンのモジュールの場所に設定します。

既知の問題

クラウド ジョブの場合、Python 3.8 のジョブが例外メッセージ invalid interpreter executable path で失敗することがあります。 この例外は、ジョブが遅延している場合、開始して 10 分以上経っている場合、または Start-AutomationRunbook を使用して Python 3.8 Runbook を開始している場合に発生することがあります。 ジョブが遅延している場合は、Runbook を再度開始するだけで十分です。

グラフィック Runbook

Azure portal のグラフィカル エディターを使用して、グラフィカルおよびグラフィカル PowerShell ワークフロー Runbook を作成および編集できます。 ただし、別のツールを使用してこの種類の Runbook を作成または編集することはできません。 グラフィカル Runbook の主な機能を次に示します。

  • Automation アカウントのファイルにエクスポートし、別の Automation アカウントにインポートします。
  • PowerShell コードを生成します。
  • インポート時にグラフィカル PowerShell ワークフロー Runbook との間で変換します。

長所

  • 視覚的な insert-link-configure 作成モデルを使用できます。
  • プロセスを介したデータの流れに専念できます。
  • 管理プロセスが視覚的に表現されます。
  • 他の Runbook を子 Runbook として含めることで、高度なワークフローを作成できます。
  • モジュール型プログラミングを促進できます。

制限事項

  • Azure portal の外部で作成または編集することができません。
  • 複雑なロジックを実行するために、PowerShell ワークフローのコードを含むコード アクティビティが必要になる場合があります。
  • テキスト形式のいずれかに変換することはできません。また、テキスト Runbook をグラフィカル形式に変換することもできません。
  • グラフィカル ワークフローによって作成される PowerShell コードを表示したり、直接編集したりすることができません。 コード アクティビティで作成したコードは表示できます。
  • Linux Hybrid Runbook Worker で Runbook を実行することができません。 「Hybrid Runbook Worker を使用してデータ センターまたはクラウドのリソースを自動化する」を参照してください。
  • グラフィック Runbook はデジタル署名することができません。

次のステップ