Azure Automation の Runbook の種類
Azure Automation のプロセス オートメーション機能では、次の表で定義されているように、いくつかの種類の Runbook がサポートされています。 プロセス オートメーション環境の詳細については、「Azure Automation での Runbook の実行」を参照してください。
型 | 説明 |
---|---|
PowerShell | Windows PowerShell スクリプトに基づくテキスト形式の Runbook です。 現在サポートされているバージョンは PowerShell 7.2 (GA) と PowerShell 5.1 (GA) です。 PowerShell 7.1 は親製品である PowerShell でサポートされなくなったため、長期的にサポートされているバージョンである PowerShell 7.2 で Runbook を作成することをお勧めします |
PowerShell ワークフロー | Windows PowerShell ワークフロー スクリプトに基づくテキスト形式の Runbook です。 |
Python | Python スクリプトに基づくテキスト形式の Runbook です。 現在サポートされているバージョンは Python 3.8 (GA) と Python 3.10 (プレビュー) です。 Python 2.7 は親製品である Python でサポートされなくなったため、長期的にサポートされているバージョンで Runbook を作成することをお勧めします。 |
グラフィカル | Windows PowerShell に基づき、Azure portal のグラフィカル エディターで完全に作成および編集される グラフィカル Runbook です。 |
グラフィカル PowerShell ワークフロー | Windows PowerShell ワークフローに基づき、Azure portal のグラフィカル エディターで完全に作成および編集される グラフィカル Runbook です。 |
Note
Azure Automation は、親製品である PowerShell と Python によってそれぞれ公開されるタイムラインに従って、PowerShell および Python 言語バージョンのサポート ライフサイクルに従います。 サポートされている言語バージョンの 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 サンドボックスと Hybrid Runbook Worker は、異なるランタイム バージョンを対象とする複数の PowerShell Runbook を並行して実行できます。
Note
- 現在、PowerShell 7.2 ランタイム バージョンは、インド中部、アラブ首長国連邦中部、イスラエル中部、イタリア北部、ドイツ北部を除くすべてのパブリック リージョンで、クラウド ジョブとハイブリッド ジョブの両方でサポートされています。
- Runbook の実行時に、ランタイム バージョン を 7.2 として選択した場合は 7.2 ランタイム バージョンをターゲットとする PowerShell モジュールが使用され、ランタイム バージョン を 5.1 として選択した場合は 5.1 ランタイム バージョンをターゲットとする PowerShell モジュールが使用されます。 これは、PowerShell 7.1 (プレビュー) モジュールと Runbook に適用されます。
モジュールに適切なランタイム バージョンを選択したことを確認してください。
例: ランタイム バージョン 7.1 (プレビュー) で SharePoint オートメーション シナリオ用の Runbook を実行している場合は、ランタイム バージョン 7.1 (プレビュー) にモジュールをインポートします。ランタイム バージョン 5.1 で SharePoint オートメーション シナリオ用の Runbook を実行している場合は、ランタイム バージョン 5.1 にモジュールをインポートします。 この場合、モジュールの 2 つのエントリが表示されます。1 つは ランタイム バージョン 7.1 (プレビュー) 用、もう 1 つは 5.1 用です。
Note
現在、PowerShell 5.1、PowerShell 7.1、PowerShell 7.2 (プレビュー) がサポートされています。
長所
- すべての複雑なロジックを PowerShell コードで実装でき、PowerShell ワークフローのその他の複雑さはありません。
- 実行前にコンパイルする必要がないため、PowerShell ワークフロー Runbook よりも速く起動できます。
- Windows と Linux の両方の Azure と Hybrid Runbook Worker で動作します。
制限事項と既知の問題
現在、PowerShell Runbook には次の制限事項と既知の問題があります。
制限事項
Note
現在、PowerShell 7.2 ランタイム バージョンは、インド中部、アラブ首長国連邦中部、イスラエル中部、イタリア北部、ドイツ北部を除くすべてのパブリック リージョンで、クラウド ジョブとハイブリッド ジョブの両方でサポートされています。
- PowerShell 7.2 ランタイム バージョンの場合、インポートされたモジュールのモジュール アクティビティは抽出されません。 VS コード用の Azure Automation 拡張機能を使用することで、Runbook の作成エクスペリエンスを簡略化できます。
- PowerShell 7.x では、ワークフローはサポートされていません。 詳細については、「PowerShell ワークフロー」を参照してください。
- PowerShell 7.x では現在、署名された Runbook はサポートされていません。
- ソース管理の統合では、PowerShell 7.2 はサポートされていません。 また、ソース管理の PowerShell 7.2 Runbook は、Automation アカウントに Runtime 5.1 として作成されます。
- Az モジュール 8.3.0 は既定でインストールされています。 Azure portal または API を使用して Az バージョンが再度構成されると、選択した Az モジュール バージョンのコンポーネント モジュールの完全なリストが表示されます。
- インポートされた PowerShell 7.2 モジュールは、ジョブの実行中に検証されます。 ジョブの実行を成功させるには、選んだモジュールのすべての依存関係もインポートする必要があります。
- Azure Runbook では
Start-Job
を-credential
でサポートされていません。 - Azure では、すべての PowerShell 入力パラメーターがサポートされているわけではありません。 詳細情報 を参照してください。
既知の問題
サービス バックエンド インフラストラクチャの変更により、
C:\modules
などの内部ファイルパスに依存する Runbook が失敗する可能性があります。 Runbook コードを変更して、内部ファイル パスへの依存関係がないことを確認し、Get-ChildItem を使用 して必要なモジュール情報を取得します。Get-AzStorageAccount
コマンドレットがエラーで失敗する可能性があります。Get-AzStorageAccount
コマンドはAz.Storage
モジュールで見つかりましたが、モジュールを読み込めませんでした。.\child-runbook.ps1
を使った子スクリプトの実行はサポートされていません。
回避策:Start-AutomationRunbook
(内部コマンドレット) またはStart-AzAutomationRunbook
(Az.Automation モジュールにある) を使用して、親 Runbook から別の Runbook を開始します。ExchangeOnlineManagement モジュール バージョン 3.0.0 以降を使用すると、エラーが発生する可能性があります。 この問題を解決するには、PowerShellGet モジュールと PackageManagement モジュールを明示的にアップロードしてください。
Az.Automation モジュール内で
New-AzAutomationVariable
コマンドレットを使って型 object の変数をアップロードすると、操作は期待どおりに機能しません。回避策: ConvertTo-Json コマンドレットを使ってオブジェクトを JSON 文字列に変換してから、JSON 文字列を値として含む変数をアップロードします。 この回避策により、Azure Automation 環境内で変数が JSON 文字列として適切に処理されるようになります。
例 - Azure VM に関する情報を保存した PowerShell オブジェクトを作成する
# Retrieve Azure virtual machines with status information for the 'northeurope' region $AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"} $VMstopatch = @($AzVM).Id # Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.) New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch # Convert the object to a JSON string $jsonString = $VMstopatch | ConvertTo-Json # Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook) New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString
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 7 以降のバージョンではサポートされていません。 そのため、古い Runbook はアップグレードできません。
- 新しい PowerShell 7 以降のバージョンと比較して、並列実行の処理が非効率的です。
- 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 インド中部、ブラジル南東部、インド中部、インド西部、アラブ首長国連邦中部、Gov クラウドを除くすべてのパブリック リージョンで、クラウドとハイブリッドの両方のジョブに対してサポートされています。
利点
Note
Python パッケージのインポートには数分かかる場合があります。
- 堅牢な Python ライブラリを使用できます。
- Azure または Hybrid Runbook Worker で実行できます。
- Python 2.7 の場合、Windows Hybrid Runbook Worker がサポートされるには、Python 2.7 がインストールされている必要があります。
- Python 3.8 クラウド ジョブの場合、Python 3.8 バージョンがサポートされています。 コードが異なるバージョン間で互換性がある場合は、任意の 3.x バージョンのスクリプトとパッケージが動作する可能性があります。
- Windows マシン上の Python 3.8 ハイブリッド ジョブの場合、使用する可能性のある任意の 3.x バージョンをインストールすることを選択できます。
- Linux マシン上の Python 3.8 ハイブリッド ジョブの場合、DSC OMSConfig と Linux Hybrid Worker を実行するために、そのマシンにインストールされている Python 3 バージョンに依存します。 Python 3 のバージョン間でメソッド シグネチャまたはコントラクトに破壊的変更がない場合には、異なるバージョンでも機能します。
制限事項
Python Runbook の制限事項を次に示します
- Python 3.10 (プレビュー) モジュールの場合は、現在、cp310 Linux OS をターゲットとしたホイール ファイルのみがサポートされています。 詳細情報
- ソース管理の統合はサポートされていません。
- Python 3.10 (プレビュー) のカスタム パッケージは、ジョブの実行時にのみ検証されます。 パッケージがランタイムで互換性がない場合、またはパッケージの必要な依存関係が Automation アカウントにインポートされていない場合、ジョブは失敗することが予想されます。
- 現在、Python 3.10 (プレビュー) Runbook は、Azure portal からのみサポートされています。 Rest API と PowerShell はサポートされていません。
複数の Python バージョン
Windows ハイブリッド worker に適用されます。 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_PATH
と PYTHON_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 はデジタル署名することができません。
次のステップ
- PowerShell Runbook の詳細については、「チュートリアル: PowerShell Runbook を作成する」を参照してください。
- PowerShell ワークフロー Runbook の詳細については、「チュートリアル: PowerShell ワークフロー Runbook を作成する」を参照してください。
- グラフィカル Runbook の詳細については、「チュートリアル: グラフィカル Runbook を作成する」を参照してください。
- Python Runbook の詳細については、「チュートリアル: Python Runbook を作成する」を参照してください。