Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Felkategorier
De flesta fel som returneras av Azure CLI finns i någon av följande kategorier:
| Felkategori | Allmän felorsak |
|---|---|
| Okänt argument | En parameter är felstavad eller finns inte. |
| Obligatoriskt argument saknas | En obligatorisk parameter har inte angetts eller så anges bara ett av två "parameterpar". En parameter kan också vara felstavad. |
| Ömsesidigt uteslutande argument | Det går inte att ange två eller flera parametrar tillsammans. |
| Ogiltigt argumentvärde | Parameterns värde är inte giltigt. Det här felet beror ofta på användningen av citattecken, escape-sekvens eller mellanslag. |
| Felaktig begäran | En HTTP-statuskod på 400 returnerar det här felet. Sök efter ett saknat utrymme, saknat parameterstreck eller ett extra eller saknat enkelt eller dubbelt citattecken. Det här felet inträffar också när ett parametervärde inte innehåller något tillåtet värde. |
| Det går inte att hitta resursen | Det går inte att hitta en Azure-resurs som refereras till i ett parametervärde. |
| Autentisering | Microsoft Entra-autentiseringen misslyckades. |
Felsökningsparametern
Ett av de bästa sätten att se vad Azure CLI kör för varje referenskommando är att använda parametern --debug . Här är exempel på --debug för både ett misslyckat och lyckat kommando:
# 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
Här är en del av felsökningsutdata. Observera loggens plats och de okända argumenten.
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
...
Jämför felutdata --debug som ges i det tidigare exemplet med ett lyckat utförande:
# Correct example: Because the resource group name contains special characters, enclose it in quotes
az group create --location eastus2 --name "msdocs-rg-test" --debug
Här är en del av felsökningsutdata. Observera loggplatsen, API-anropet och körningstiden.
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)
Exempel på --debug JSON-formatering finns i Citera skillnader mellan skriptspråk – JSON-strängar.
Vanliga syntaxfel
Även om Azure CLI kan köras i Bash, PowerShell och Windows-kommandotolken (cmd.exe), finns det syntaxskillnader mellan skriptspråk. Azure CLI-skript som innehåller enkla citattecken, dubbla citattecken och escape-tecken kräver ofta ändringar när de kopieras mellan språk. Den här utmaningen visas oftast i parametervärden, särskilt i de som tilldelats parametern --query . Här följer några vanliga felmeddelanden:
Felaktig begäran ... {something} är ogiltigt: Det här felet kan orsakas av blanksteg, enkla eller dubbla citattecken eller brist på citattecken.
Oväntad token...: Det här felet visas när det finns ett extra utrymme eller citattecken.
Ogiltigt jmespath_type värde: Det här felet beror ofta på felaktig citat i parametern
--query.Variabelreferensen är inte giltig: Det här felet tas emot när en sträng inte är korrekt formaterad, ofta på grund av sammanfogning eller ett escape-tecken som saknas.
Okända argument: Det här felet orsakas ofta av ett felaktigt radfortsättningstecken eller felstavat parameternamn.
Uttryck saknas efter unary-operatorn: Det här felet visas när ett radfortsättningstecken saknas.
Det finns flera Azure CLI-artiklar som är dedikerade för att förklara syntaxfel och tillhandahålla arbetsexempel:
- Citera skillnader mellan skriptspråk
- Syntaxskillnader i Bash, PowerShell och Cmd handledning
- Hitta många
--queryparameter exempel i Hur man frågar Azure CLI-kommandoutdata med hjälp av en JMESPath-fråga - Använda Azure CLI på ett Bash-skriptspråk
- Överväganden för att köra Azure CLI på ett PowerShell-skriptspråk
Tips/Råd
Om du inte kan lösa ett kommandofel kan du prova att använda ett annat skriptspråk. De flesta Azure CLI-dokumentationen skrivs och testas i Azure Cloud Shell, som använder Bash-skriptspråket. Om du kan få ett artikelexempel att köra i Bash, men det inte körs i PowerShell, granskar du din användning av enkla och dubbla citattecken och escape-tecken.
Felsöka multifaktorautentisering (MFA)
Interaktiva inloggningsfel
Om du får fel när du kör Azure CLI-kommandon som skapar, ändrar eller tar bort resurser kan problemet orsakas av en princip för villkorsstyrd åtkomst för Microsoft Entra-ID som kräver multifaktorautentisering (MFA).
Dessa fel uppstår vanligtvis när MFA krävs av principen men inte framtvingas under inloggningen.
Resursen tilläts inte av principen
Du kan se något av följande fel när du använder:
- Azure CLI version 2.75.0 eller tidigare
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.
Eller:
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.
Eller:
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.
Uppgradera till följande versioner eller senare för att få mer informativa felmeddelanden och principinformation:
- Azure CLI version 2.76.0 eller senare
Följande fel uppstår i Azure CLI 2.76.0+, där MFA krävs av villkorsstyrd åtkomst för specifika åtgärder.
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.
Lösningsalternativ
Be Azure-administratören att framtvinga MFA vid inloggning. På så sätt kan sessionen uppfylla kraven för villkorsstyrd åtkomst utan ytterligare steg.
Om MFA-tvingande vid inloggning inte är möjligt använder du parametern för att autentisera
--claims-challengeinteraktivt:az logout az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
Mer information finns i Planera för obligatorisk multifaktorautentisering för Azure och andra administratörsportaler
DLL-belastningen misslyckades vid import av win32file
Du kan få följande fel när du försöker använda 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>
Det här problemet kan inträffa på grund av en skadad installation. Så här löser du problemet:
- Avinstallera Azure CLI.
- Installera om Azure CLI med den installationsmetod du föredrar.
Mer information finns i GitHub-problem #32045.
Fel: Ogiltigt värde eller finns inte
Dessa fel uppstår ofta när du försöker använda variabelvärden som innehåller ett felaktigt format. Standardutdata för Azure CLI är JSON. Om du försöker lagra ett ID för en Azure-resurs i en variabel måste du ange --output tsv. Här är ett exempel:
# 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'.
Använd nu tsv-utdatatypen.
# 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
Fel: Argument förväntas eller krävs
Du får det här felet när ett Azure CLI-kommando saknar en obligatorisk parameter, eller om det finns ett typografiskt fel som gör att Azure CLI felaktigt parsar referenskommandot. När du arbetar med ett skript får du även det här felet när ett eller flera villkor är sanna:
- Ett radfortsättningstecken saknas eller är felaktigt.
- Det finns ett avslutande utrymme på höger sida av ett radfortsättningstecken när du arbetar i PowerShell-skriptspråket. PowerShell-splatting stöds bara med matriser och inte hash-tabeller med Azure CLI-kommandon.
- Ett variabelnamn innehåller ett specialtecken, till exempel ett bindestreck (-).
Fel: Resursen hittades inte
När Azure CLI inte kan hitta resursnamnet eller ID:t som skickats i ett parametervärde beror det vanligtvis på någon av följande orsaker:
- Resursnamnet eller ID:t stavas felaktigt.
- Resursnamnet innehåller specialtecken och omges inte av enkla eller dubbla citattecken.
- Värdet som skickas till en variabel har osynliga inledande eller avslutande blanksteg.
- Resursen finns, men finns i en annan prenumeration.
Fel: Det gick inte att parsa strängen som JSON
Det finns citatskillnader mellan Bash, PowerShell i Linux och PowerShell i Windows.
Dessutom kan olika versioner av PowerShell ge olika resultat. För komplexa parametrar, till exempel en JSON-sträng, är bästa praxis att använda Azure CLI:s @<file> konvention för att kringgå gränssnittets tolkning. Mer information finns i någon av följande artiklar:
För JSON-syntaxexempel för Bash, PowerShell och cmd.exe, se Självstudie om att citera skillnader mellan skriptspråk – JSON-strängar.
Fel: Ogiltig mallimplementering
När du försöker skapa en Azure-resurs på en plats som inte erbjuder den resursen får du ett felmeddelande som liknar det här meddelandet: "Följande SKU:er har misslyckats för kapacitetsbegränsningar: myDesiredSkuName" är för närvarande inte tillgängligt på platsen "mySpecifiedLocation".
Här är ett fullständigt felexempel för en virtuell dator som inte kan skapas på platsen westus :
{"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."}]}}
Lösningen är att ändra en egenskap för din begärda Azure-resurs eller prova en annan plats.
Fel: Prenumerationen hittades inte
Förutsatt att du inte angav prenumerationsnamnet eller ID:t felaktigt uppstår det här felet när en resursprovider inte är registrerad i den aktiva prenumerationen. Om du till exempel vill köra az storage account createmåste providern Microsoft.Storage registreras. För att registrera en resursleverantör, se Azure-resursleverantörer och typer.
Fel: Det gick inte att verifiera det felaktiga handskakningscertifikatet
Mer information om hur du löser det här felet finns i Arbeta bakom en proxyserver .
Jobba via en proxy
Om du använder Azure CLI via en proxyserver som använder självsignerade certifikat kan python-begärandebiblioteket som används av Azure CLI orsaka följande fel: SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",).
Du kan åtgärda det här felet genom att ange miljövariabeln REQUESTS_CA_BUNDLE till sökvägen till CA-paketcertifikatfilen i PEM-format.
| Olympiska Spelen (OS) | Standardpaket för certifikatutfärdare |
|---|---|
| Windows 32-bitars | C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
| Windows 64-bitars | 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-modeller: /usr/local/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem Kiselmodeller: /opt/homebrew/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem |
Lägg till proxyserverns certifikat i CA-paketcertifikatfilen eller kopiera innehållet till en annan certifikatfil. Ange REQUESTS_CA_BUNDLE sedan till den nya filplatsen. Här är ett exempel:
<Original cacert.pem>
-----BEGIN CERTIFICATE-----
<Your proxy's certificate here>
-----END CERTIFICATE-----
Vissa proxyservrar kräver autentisering. Formatet för HTTP_PROXY miljövariablerna eller HTTPS_PROXY bör innehålla autentiseringen, till exempel HTTPS_PROXY="https://username:password@proxy-server:port". Mer information finns i Konfigurera proxyservrar för Azure SDK för Python.
Tjänsteprinciper
Information om hur du felsöker tjänstens huvudnamn finns i Rensa och felsöka i självstudiekursen Arbeta med tjänstens huvudnamn.
Övriga frågor
Om du får ett produktproblem med Azure CLI som inte finns med i den här artikeln skapa ett problem på GitHub.