共有リソースの問題のトラブルシューティング
この記事では、Azure Automation で共有リソースを使用するときに発生する可能性がある問題について説明します。
モジュール
シナリオ: インポート中にモジュールがスタックする
問題
Azure Automation モジュールをインポートまたは更新しているときに、モジュールが [インポート中] の状態で停止します。
原因
PowerShell モジュールのインポートは複雑なマルチステップ プロセスであるため、モジュールが正しくインポートされず、一時的な状態で停止することがあります。 このインポート プロセスの詳細については、「PowerShell モジュールをインポートする」を参照してください。
解決方法
この問題を解決するには、Remove-AzAutomationModule コマンドレットを使用して、停止しているモジュールを削除する必要があります。 その後、モジュールのインポートを再試行できます。
Remove-AzAutomationModule -Name ModuleName -ResourceGroupName ExampleResourceGroup -AutomationAccountName ExampleAutomationAccount -Force
シナリオ:更新試行後のインポート中に AzureRM モジュールが停止する
問題
AzureRM モジュールの更新を試行した後、アカウントに以下のメッセージのバナーが残ります。
Azure modules are being updated
原因
Automation アカウントでの AzureRM モジュールの更新には、既知の問題があります。 具体的には、0 から始まる数値名を持つリソース グループにモジュールが含まれている場合に問題が発生します。
解決方法
Automation アカウントで AzureRM モジュールを更新するには、英数字名を持つリソース グループにアカウントが含まれている必要があります。 0 から始まる数値名を持つリソース グループは、現時点で AzureRM モジュールを更新できません。
シナリオ: モジュールがインポートに失敗するか、インポート後、コマンドレットを実行できない
問題
モジュールがインポートに失敗するか、成功してもコマンドレットが抽出されません。
原因
モジュールが正常に Azure Automation にインポートできない一般的な理由には次が考えられます。
- その構造が、Automation で必要な構造と一致しません。
- Automation アカウントにデプロイされていない別のモジュールにモジュールが依存しています。
- モジュールのフォルダーにその依存関係がありません。
- モジュールのアップロードに New-AzAutomationModule コマンドレットを使用していますが、完全なストレージ パスを指定していないか、パブリックにアクセスできる URL でモジュールを読み込んでいません。
解決方法
この問題を修正するには、次の解決策のいずれかを使用します。
- モジュールの形式が次のようになっていることを確認します: ModuleName.Zip -> ModuleName またはバージョン番号 -> (ModuleName.psm1、ModuleName.psd1)。
- .psd1 ファイルを開き、モジュールに依存関係があるかどうかを確認します。 依存関係がある場合、それらのモジュールを Automation アカウントにアップロードします。
- 参照される .dll ファイルがモジュール フォルダーにあることを確認します。
シナリオ:モジュールの更新時に Update-AzureModule.ps1 が一時停止する
問題
Update-AzureModule.ps1 Runbook を使用して Azure モジュールを更新しているときに、モジュールの更新プロセスが中断されます。
原因
この Runbook の場合、同時に更新されるモジュール数を決定する既定値は 10 です。 更新プロセスは、同時に更新されるモジュールが多すぎると、エラーが発生しやすくなります。
解決方法
同じ Automation アカウントですべての AzureRM または Az モジュールが必要になることは、通常はありません。 必要な特定のモジュールのみをインポートする必要があります。
Note
Az.Automation
または AzureRM.Automation
モジュール全体をインポートしないようにしてください。これにより、含まれているすべてのモジュールがインポートされます。
更新プロセスが中断する場合は、SimultaneousModuleImportJobCount
パラメーターを Update-AzureModules.ps1 スクリプトに追加し、既定値の 10 より小さい値を指定してください。 このロジックを実装する場合、3 または 5 の値から始めてください。 SimultaneousModuleImportJobCount
は、Azure モジュールの更新に使用される Update-AutomationAzureModulesForAccount システム Runbook のパラメーターです。 この調整を行うと、更新プロセスの実行時間は長くなりますが、完了する可能性が高くなります。 次の例に、パラメーターと Runbook のそれを配置する場所を示します。
$Body = @"
{
"properties":{
"runbook":{
"name":"Update-AutomationAzureModulesForAccount"
},
"parameters":{
...
"SimultaneousModuleImportJobCount":"3",
...
}
}
}
"@
実行アカウント
Note
Azure Automation 実行アカウント (クラシック実行アカウントを含む) は 2023 年 9 月 30 日に廃止され、マネージド ID に置き換えられました。Azure portal を通じて実行アカウントを作成または更新することはできなくなります。 詳細については、既存の実行アカウントからマネージド ID への移行に関する記事を参照してください。
シナリオ: Runbook の実行時に "DLL 'iplpapi.dll' の 'GetPerAdapterInfo' というエントリ ポイントが見つかりません" というエラーを受け取る
問題
Runbook を実行すると、以下の例外を受け取ります。
Unable to find an entry point named 'GetPerAdapterInfo' in DLL 'iplpapi.dll'
原因
このエラーは、正しく構成されていない [アカウントとして実行] によって発生する可能性があります。
解決方法
実行アカウントが正しく構成されていることを確認します。 次に、Azure で認証するための適切なコードが Runbook にあることを確認します。 次のサンプルは、[アカウントとして実行] を使用して Runbook で Azure を認証するコードのスニペットを示しています。
$connection = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $connection.TenantID `
-ApplicationID $connection.ApplicationID -CertificateThumbprint $connection.CertificateThumbprint
次のステップ
この記事で問題を解決できない場合は、追加のサポートを得るために、次のいずれかのチャネルをお試しください。
- Azure フォーラムを通じて Azure エキスパートから回答を得ることができます。
- @AzureSupport に問い合わせる。 これは、Azure コミュニティを適切なリソース (回答、サポート、専門家) につなぐための、Microsoft Azure の公式アカウントです。
- Azure サポート インシデントを送信する。 Azure サポートのサイトに移動して、[サポートの要求] を選択します。