エラー カテゴリ
Azure CLI によって返されるほとんどのエラーは、次のいずれかのカテゴリに分類されます。
エラー カテゴリ | 一般的なエラーの原因 |
---|---|
認識されない引数 | パラメーターのスペルが間違っているか、存在しません。 |
必須の引数がありません | 必須パラメーターが指定されていないか、2 つの "パラメーター ペア" のうちの 1 つだけが指定されています。 パラメーターのスペルが間違う場合もあります。 |
互いに排除し合う引数 | 2 つ以上のパラメーターを一緒に指定することはできません。 |
引数の値 が無効です | パラメーター 値 が無効です。 このエラーは、多くの場合、引用符、エスケープ文字、またはスペースが原因です。 |
要求が正しくありません | HTTP 状態コード 400 は、このエラーを返します。 スペースがないか、パラメーターダッシュがないか、または単一引用符または二重引用符が追加されていないか、または欠落しているか確認します。 このエラーは、パラメーター値に許可された値が含まれていない場合にも発生します。 |
リソースが見つかりません | パラメーター値で参照されている Azure リソースが見つかりません。 |
認証 | Microsoft Entra 認証に失敗しました。 |
デバッグ パラメーター
各参照コマンドで Azure CLI が何を実行しているのかを確認する最適な方法の 1 つは、 --debug
パラメーターを使用することです。 失敗したコマンドと成功したコマンドの両方の --debug
の例を次に示します。
# Error example: Create a resource group, but omit the quotes around the resource group name.
az group create --___location eastus2 --name msdocs-rg-test --debug
デバッグ出力の一部を次に示します。 ログの場所と認識されない引数に注意してください。
cli.knack.cli: Command arguments: ['group', 'create', '-l', 'eastus2', '-name', 'msdocs-rg-test', '--debug']
...
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/myName/.azure/commands/YYYY-MM-DD.HH-MM-SS.group_create.8912.log'.
...
cli.azure.cli.core.azclierror: unrecognized arguments: msdocs-rg-test
...
前の例で示したエラー --debug
出力を、正常な実行と比較します。
# Correct example: Because the resource group name contains special characters, enclose it in quotes
az group create --___location eastus2 --name "msdocs-rg-test" --debug
デバッグ出力の一部を次に示します。 ログの場所、API 呼び出し、および実行時に注意してください。
cli.knack.cli: Command arguments: ['group', 'create', '-l', 'eastus2', '-n', 'msdocs-rg-test', '--debug']
...
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/myName/.azure/commands/YYYY-MM-DD.HH-MM-SS.group_create.8912.log'.
...
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/msdocs-rg-test?api-version=YYYY-MM-DD'
cli.azure.cli.core.sdk.policies: Request method: 'PUT'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Content-Length': '23'
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': 'ba7ee6f4-2dcc-11ef-81ce-00155dadc5c8'
cli.azure.cli.core.sdk.policies: 'CommandName': 'group create'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '-l -n --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.61.0 (RPM) azsdk-python-core/1.28.0 Python/3.9.19 (Linux-5.10.102.2-microsoft-standard-x86_64-with-glibc2.35) cloud-shell/1.0'
cli.azure.cli.core.sdk.policies: 'Authorization': '*****'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {"___location": "eastus2"}
urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com:443 "PUT /subscriptions/3618afcd-ea52-4ceb-bb46-53bb962d4e0b/resourcegroups/msdocs-rg-test?api-version=2022-09-01 HTTP/1.1" 201 226
cli.azure.cli.core.sdk.policies: Response status: 201
...
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 18 Jun 2024 23:44:41 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/msdocs-rg-test","name":"msdocs-rg-test","type":"Microsoft.Resources/resourceGroups","___location":"eastus2","properties":{"provisioningState":"Succeeded"}}
...
cli.__main__: Command ran in 1.829 seconds (init: 0.111, invoke: 1.718)
JSON 書式設定の --debug
の例については、スクリプト言語間の引用の違い JSON 文字列を参照してください。
一般的な構文エラー
Azure CLI は Bash、PowerShell、Windows コマンド プロンプト (cmd.exe
) で実行できますが、スクリプト言語には構文の違いがあります。 一重引用符、二重引用符、エスケープ文字を含む Azure CLI スクリプトでは、多くの場合、言語間でコピーするときに変更が必要になります。 この課題は、特に --query
パラメーターに割り当てられているパラメーター値で最も多く見られます。 一般的なエラー メッセージを次に示します。
要求が正しくありません...{something} が無効です:このエラーは、スペース、単一引用符または二重引用符、または引用符がないことが原因である可能性があります。
予期しないトークン...: このエラーは、余分なスペースまたは引用符がある場合に表示されます。
無効なjmespath_type値: このエラーは、多くの場合、
--query
パラメーターで引用符の誤りにより発生します。変数参照が無効です。このエラーは、文字列が正しく書式設定されていない場合に受け取られます。多くの場合、連結またはエスケープ文字がないためです。
認識できない引数: このエラーは、多くの場合、行連結文字が正しくないか、パラメーター名のスペルが間違っている場合に発生します。
単項演算子の後に式がありません: このエラーは、行連結文字がない場合に表示されます。
構文エラーの説明と動作例の提供に特化した Azure CLI 記事がいくつかあります。
- スクリプト言語間の相違点の引用
- Bash、PowerShell、および Cmd チュートリアルでの構文の違い
- JMESPath クエリ を使用して Azure CLI コマンド出力をクエリする方法
で、多くの パラメーターの例を見つけます - Bash スクリプト言語で Azure CLI を使用する方法
- PowerShell スクリプト言語での Azure CLI の実行に関する考慮事項
ヒント
コマンド エラーを解決できない場合は、別のスクリプト言語を使用してみてください。 ほとんどの Azure CLI ドキュメントは、Bash スクリプト言語を使用する Azure Cloud Shell で記述およびテストされています。 Bash で実行する記事の例を取得できるが、PowerShell では実行されない場合は、単一引用符と二重引用符の使用を確認し、文字をエスケープします。
多要素認証 (MFA) のトラブルシューティング
対話型ログインエラー
リソースを作成、変更、または削除する Azure CLI コマンドの実行時にエラーが発生した場合は、多要素認証 (MFA) を必要とする Microsoft Entra ID 条件付きアクセス ポリシーが原因である可能性があります。
これらのエラーは、通常、ポリシーで MFA が必要であるが、ログイン中に適用されない場合に発生します。
リソースがポリシーによって禁止されました
使用すると、次のいずれかのエラーが表示されることがあります。
- Azure CLI バージョン 2.75.0 以前
Due to a configuration change made by your administrator, or because you moved to a new ___location,
you must enroll in multi-factor authentication. Interactive authentication is needed.
または:
Resource was disallowed by policy. Reasons: MFA is required. See error details for policy resource
IDs. RequestDisallowedByPolicy Message: Resource policy resource IDs was disallowed by policy.
Reasons: MFA is required.
または:
Unauthorized. RequestDisallowedByPolicy. Resource was disallowed by policy. Reasons: MFA is
required. See error details for policy resource IDs. MFA is required. Users must authenticate with
multi-factor authentication to create or update resources.
次のバージョン以降にアップグレードして、より有益なエラー メッセージとポリシーの詳細を受け取ります。
- Azure CLI バージョン 2.76.0 以降
Azure CLI 2.76.0 以降では次のエラーが発生します。この場合、条件付きアクセスでは特定の操作に MFA が必要です。
Run the command below to authenticate interactively; additional arguments may be added as needed:
az logout
az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
(RequestDisallowedByPolicy) Resource was disallowed by policy. Policy identifiers. Users must use
MFA for Create/Update operations. Users must authenticate with multi-factor authentication to create
or update resources. Users must use MFA for Create operation. Users must authenticate with
multi-factor authentication to create or update resources. Users must use MFA for Create/Update
operations. Users must authenticate with multi-factor authentication to create or update resources.
Users must use MFA for Create operation. Users must authenticate with multi-factor authentication to
create or update resources.
解決オプション
サインイン時に MFA を適用するように Azure 管理者に依頼します。 これにより、セッションは追加の手順なしで条件付きアクセスの要件を満たすことができます。
サインイン時に MFA を適用できない場合は、
--claims-challenge
パラメーターを使用して対話形式で認証します。az logout az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
詳細については、「Azure およびその他の管理ポータルの必須多要素認証の計画」を参照してください。
win32file のインポート中に DLL の読み込みに失敗しました
Azure CLI を使用しようとすると、次のエラーが発生する可能性があります。
DLL load failed while importing win32file: The specified module could not be found.
The command failed with an unexpected error. Here is the traceback:
DLL load failed while importing win32file: The specified module could not be found.
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/__main__.py", line 13, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/telemetry.py", line 19, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/telemetry/__init__.py", line 9, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\portalocker/__init__.py", line 4, in <module>
File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\portalocker/portalocker.py", line 11, in <module>
ImportError: DLL load failed while importing win32file: The specified module could not be found.
PS C:\Users\dsevilla>
この問題は、インストールが破損しているために発生する可能性があります。 この問題を解決するには:
- Azure CLI をアンインストールします。
- 推奨されるインストール方法を使用して、Azure CLI を再インストールします。
詳細については、 GitHub の問題 #32045 を参照してください。
エラー: 無効な値または存在しない
これらのエラーは、正しくない形式を含む変数値を使用しようとしたときに頻繁に発生します。 Azure CLI の既定の出力は JSON です。 Azure リソースの ID を変数に格納する場合は、 --output tsv
を指定する必要があります。 次に例を示します。
# Get a subscription that contains a name or phrase
subscriptionID=$(az account list --query "[?contains(name,'my case sensitive search phrase')].id")
echo $subscriptionID
# output as JSON
[ "00000000-0000-0000-0000-000000000000" ]
# Try to set your subscription to the new ID
az account set --subscription $subscriptionID
# error output
The subscription of '"00000000-0000-0000-0000-000000000000"' doesn't exist in cloud 'AzureCloud'.
次に、tsv
出力の種類を使用します。
# Get the active subscription
subscriptionID=$(az account list --query "[?contains(name,'my case sensitive search phrase')].id" --output tsv)
echo $subscriptionID
# output as TSV
00000000-0000-0000-0000-000000000000
# Successfully set your subscription to the new ID
az account set --subscription $subscriptionID
エラー: 引数が必要か必須か
このエラーは、Azure CLI コマンドに必要なパラメーターがない場合、または Azure CLI が参照コマンドを誤って解析する原因となる文字体裁エラーが発生した場合に発生します。 スクリプトを使用する場合は、1 つ以上の条件が満たされている場合にも、このエラーが発生します。
- 行の継続文字が欠落しているか、または間違っています。
- PowerShell スクリプト言語で作業する場合、行継続文字の右側に末尾のスペースが存在します。 PowerShell スプラッティング は配列でのみサポートされ、Azure CLI コマンドを使用したハッシュ テーブルではサポートされません。
- 変数名には、ダッシュ (-) などの特殊文字が含まれています。
エラー: リソースが見つかりません
Azure CLI でパラメーター値で渡されたリソース名または ID が見つからない場合は、通常、次のいずれかの理由が原因です。
- リソース名または ID のスペルが正しくありません。
- リソース名には特殊文字が含まれており、単一引用符または二重引用符で囲まれません。
- 変数に渡される値には、見えない先頭または末尾のスペースがあります。
- リソースは存在しますが、別のサブスクリプションにあります。
エラー: 文字列を JSON として解析できませんでした
Bash、Linux 上の PowerShell、および Windows 上の PowerShell には、引用符の扱いに違いがあります。
さらに、PowerShell のバージョンが異なると、異なる結果が生成される可能性があります。 JSON 文字列などの複雑なパラメーターの場合、ベスト プラクティスは、Azure CLI の @<file>
規則を使用してシェルの解釈をバイパスすることです。 詳細については、次のいずれかの記事を参照してください。
Bash、PowerShell、および cmd.exe
の JSON 構文の例については、 スクリプト言語間の相違点の引用 - JSON 文字列 のチュートリアルを参照してください。
エラー: 無効なテンプレートデプロイメント (InvalidTemplateDeployment)
そのリソースを提供していない場所に Azure リソースを作成しようとすると、"容量制限で次の SKU が失敗しました: myDesiredSkuName' は現在、場所 'mySpecifiedLocation' では使用できません" というエラーが表示されます。
westus
の場所に作成できない VM の完全なエラー例を次に示します。
{"error":{"code":"InvalidTemplateDeployment","message":"The template deployment 'vm_deploy_<32 character ID>'
is not valid according to the validation procedure. The tracking id is '<36 character ID>'.
See inner errors for details.","details":[{"code":"SkuNotAvailable","message":"The requested VM size for resource
'Following SKUs have failed for Capacity Restrictions: Standard_DS1_v2' is currently not available
in ___location 'westus'. Please try another size or deploy to a different ___location
or different zone. See https://aka.ms/azureskunotavailable for details."}]}}
解決策は、要求された Azure リソースのプロパティを変更するか、別の場所を試してみる方法です。
エラー: サブスクリプションが見つかりません
サブスクリプション名または ID を誤って入力しなかった場合、このエラーは、リソース プロバイダーがアクティブなサブスクリプションに登録されていない場合に発生します。 たとえば、az storage account create
を実行する場合は、Microsoft.Storage
プロバイダーを登録する必要があります。 リソース プロバイダーを登録するには、「 Azure リソース プロバイダーと種類を参照してください。
エラー: 不正なハンドシェイク証明書の検証に失敗しました
このエラーを解決する方法については、「プロキシ の背後で作業する」を参照してください。
プロキシの背後で作業する
自己署名証明書を使用するプロキシ サーバーで Azure CLI を使用している場合、Azure CLI で使用 Python REQUESTS_CA_BUNDLE
を PEM 形式の CA バンドル証明書ファイルのパスに設定します。
オペレーティングシステム (OS) | 既定の認証局パッケージ |
---|---|
Windows 32 ビット | C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
Windows 64 ビット | C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
Ubuntu/Debian Linux | /opt/az/lib/python<version>/site-packages/certifi/cacert.pem |
CentOS Stream/RHEL/SUSE Linux | /usr/lib64/az/lib/python<version>/site-packages/certifi/cacert.pem |
macOS | Intel モデル: /usr/local/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem シリコン モデル: /opt/homebrew/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem |
プロキシ サーバーの証明書を CA バンドル証明書ファイルに追加するか、その内容を別の証明書ファイルにコピーします。 次に、REQUESTS_CA_BUNDLE
を新しいファイルの場所に設定します。 次に例を示します。
<Original cacert.pem>
-----BEGIN CERTIFICATE-----
<Your proxy's certificate here>
-----END CERTIFICATE-----
一部のプロキシでは認証が必要です。
HTTP_PROXY
または HTTPS_PROXY
環境変数の形式には、認証 (HTTPS_PROXY="https://username:password@proxy-server:port"
など) を含める必要があります。 詳細については、「Azure SDK for Pythonのプロキシを構成する方法」を参照してください。
サービス プリンシパル
サービス プリンシパルのトラブルシューティングに関する情報については、「サービス プリンシパルの作業方法」 チュートリアルの「クリーンアップとトラブルシューティング」を参照してください。
その他の問題
この記事に記載されていない Azure CLI で製品の問題が発生した場合は、GitHubで問題を報告
こちらも参照ください
- Azure CLI を正常に使用するための のヒント
Azure CLI