Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kategori kesalahan
Sebagian besar kesalahan yang dikembalikan oleh Azure CLI termasuk dalam salah satu kategori berikut:
| Kategori kesalahan | Penyebab kesalahan umum |
|---|---|
| Argumen tidak dikenal | Parameter salah eja atau tidak ada. |
| Argumen yang diperlukan hilang | Parameter yang diperlukan tidak ditentukan atau hanya salah satu dari dua "pasangan parameter" yang ditentukan. Parameter mungkin juga salah eja. |
| Argumen saling eksklusif | Dua parameter atau lebih tidak dapat ditentukan bersama-sama. |
| nilai argumen tidak valid | Parameter nilai tidak valid. Kesalahan ini sering disebabkan oleh kutipan, karakter escape, atau penspasian. |
| Permintaan buruk | Kode status HTTP 400 mengembalikan kesalahan ini. Periksa ruang yang hilang, tanda hubung pada parameter yang hilang, atau tanda kutip tunggal atau ganda yang tambahan atau hilang. Kesalahan ini juga terjadi ketika nilai parameter tidak berisi nilai yang diizinkan. |
| Sumber Daya tidak ditemukan | Sumber daya Azure yang dirujuk dalam nilai parameter tidak dapat ditemukan. |
| Otentikasi | Autentikasi Microsoft Entra gagal. |
Parameter Debug
Salah satu cara terbaik untuk melihat apa yang dijalankan Azure CLI untuk setiap perintah referensi adalah dengan menggunakan --debug parameter . Berikut adalah contoh --debug untuk perintah yang gagal dan berhasil:
# 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
Berikut adalah bagian dari output debug. Perhatikan lokasi log dan argumen yang tidak dikenali.
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
...
Bandingkan output kesalahan --debug yang diberikan dalam contoh sebelumnya dengan eksekusi yang berhasil:
# Correct example: Because the resource group name contains special characters, enclose it in quotes
az group create --location eastus2 --name "msdocs-rg-test" --debug
Berikut adalah bagian dari output debug. Perhatikan lokasi log, panggilan API, dan run time.
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)
Untuk contoh --debug untuk pemformatan JSON, lihat Mengutip perbedaan antara bahasa pembuatan skrip - string JSON.
Kesalahan sintaks umum
Meskipun Azure CLI dapat berjalan di Bash, PowerShell, dan Windows Command Prompt (cmd.exe), ada perbedaan sintaks antara bahasa skrip. Skrip Azure CLI yang berisi tanda kutip tunggal, tanda kutip ganda, dan karakter escape sering memerlukan modifikasi saat disalin antar bahasa. Tantangan ini paling sering terlihat dalam nilai parameter, terutama pada parameter yang ditetapkan ke --query. Berikut adalah beberapa pesan kesalahan umum:
Permintaan tidak valid ... {something} tidak sah: Kesalahan ini mungkin disebabkan oleh spasi, tanda kutip tunggal atau ganda, atau kurangnya tanda kutip.
Token tak terduga...: Kesalahan ini terlihat ketika ada ruang atau kutipan tambahan.
Nilai jmespath_type tidak valid: Kesalahan ini sering berasal dari kesalahan penulisan dalam parameter
--query.Referensi variabel tidak valid: Kesalahan ini diterima ketika string tidak diformat dengan benar, seringkali karena penggabungan atau karakter escape yang hilang.
Argumen yang tidak dikenal: Kesalahan ini sering disebabkan oleh karakter kelanjutan baris yang salah atau nama parameter yang salah eja.
Ekspresi hilang setelah operator unary: Kesalahan ini terlihat ketika karakter kelanjutan baris hilang.
Ada beberapa artikel Azure CLI yang didedikasikan untuk menjelaskan kesalahan sintaksis dan memberikan contoh kerja:
- Mengutip perbedaan antara bahasa skrip
- Tutorial Perbedaan Sintaks dalam Bash, PowerShell, dan Cmd
- Temukan banyak contoh parameter
--querydalam Cara mengkueri output perintah Azure CLI menggunakan kueri JMESPath - Cara menggunakan Azure CLI dalam bahasa skrip Bash
- Pertimbangan untuk menjalankan Azure CLI dalam bahasa skrip PowerShell
Petunjuk / Saran
Jika Anda tidak dapat mengatasi kesalahan perintah, coba gunakan bahasa skrip yang berbeda. Sebagian besar dokumentasi Azure CLI ditulis dan diuji di Azure Cloud Shell, yang menggunakan bahasa pembuatan skrip Bash. Jika Anda bisa mendapatkan contoh artikel untuk dijalankan di Bash, tetapi tidak dijalankan di PowerShell, tinjau penggunaan tanda kutip tunggal dan ganda, dan karakter escape.
Pemecahan masalah autentikasi multifaktor (MFA)
Kegagalan masuk interaktif
Jika Anda mengalami kesalahan saat menjalankan perintah Azure CLI yang membuat, memodifikasi, atau menghapus sumber daya, masalah tersebut mungkin disebabkan oleh kebijakan Akses Bersyarat ID Microsoft Entra yang memerlukan autentikasi multifaktor (MFA).
Kesalahan ini biasanya terjadi ketika otentikasi multi-faktor (MFA) diperlukan oleh kebijakan tetapi tidak diberlakukan saat proses masuk.
Sumber daya tidak diizinkan oleh kebijakan
Anda mungkin melihat salah satu kesalahan berikut saat menggunakan:
- Azure CLI versi 2.75.0 atau yang lebih lama
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.
Atau:
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.
Atau:
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.
Tingkatkan ke versi berikut atau yang lebih baru untuk menerima pesan kesalahan dan detail kebijakan yang lebih informatif:
- Azure CLI versi 2.76.0 atau yang lebih baru
Kesalahan berikut terjadi di Azure CLI 2.76.0+, di mana MFA diperlukan oleh Akses Bersyarat untuk operasi tertentu.
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.
Opsi resolusi
Minta administrator Azure Anda untuk menerapkan MFA saat masuk. Ini memungkinkan sesi Anda memenuhi persyaratan Akses Bersyarat tanpa langkah tambahan.
Jika penerapan MFA saat masuk tidak dimungkinkan, gunakan
--claims-challengeparameter untuk mengautentikasi secara interaktif:az logout az login --tenant "aaaabbbb-0000-cccc-1111-dddd2222eeee" --scope "https://management.core.windows.net//.default" --claims-challenge "<claims-challenge-token>"
Untuk informasi selengkapnya, lihat Merencanakan autentikasi multifaktor wajib untuk Azure dan portal admin lainnya
Memuat DLL gagal saat mengimpor win32file
Anda mungkin mengalami kesalahan berikut saat mencoba menggunakan 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>
Masalah ini dapat terjadi karena penginstalan yang rusak. Untuk mengatasi masalah:
- Copot pemasangan Azure CLI.
- Instal ulang Azure CLI menggunakan metode penginstalan pilihan Anda.
Untuk informasi selengkapnya, lihat Masalah GitHub #32045.
Kesalahan: Nilai tidak valid atau tidak ada
Kesalahan ini sering terjadi saat mencoba menggunakan nilai variabel yang berisi format yang salah. Output default untuk Azure CLI adalah JSON. Jika Anda mencoba menyimpan ID untuk sumber daya Azure dalam variabel, Anda harus menentukan --output tsv. Berikut adalah sebuah contoh:
# 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'.
Sekarang gunakan jenis output 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
Kesalahan: Argumen diharapkan atau diperlukan
Anda menerima kesalahan ini ketika perintah Azure CLI kehilangan parameter yang diperlukan, atau ada kesalahan tipografi yang menyebabkan Azure CLI salah mengurai perintah referensi. Saat bekerja dengan skrip, Anda juga menerima kesalahan ini ketika satu atau beberapa kondisi benar:
- Karakter kelanjutan baris hilang atau salah.
- Spasi akhir ada di kanan karakter kelanjutan baris saat bekerja dalam bahasa skrip PowerShell. PowerShell splatting hanya didukung dengan array dan tidak dengan tabel hash dalam perintah Azure CLI.
- Nama variabel berisi karakter khusus, seperti tanda hubung (-).
Kesalahan: Sumber daya tidak ditemukan
Saat Azure CLI tidak dapat menemukan nama sumber daya atau ID yang diteruskan dalam nilai parameter, biasanya karena salah satu alasan berikut:
- Nama sumber daya atau ID salah dieja.
- Nama sumber daya berisi karakter khusus dan tidak dikelilingi oleh tanda kutip tunggal atau ganda.
- Nilai yang diteruskan ke variabel memiliki spasi di awal atau di akhir yang tidak terlihat.
- Sumber daya ada, tetapi berada dalam langganan yang berbeda.
Kesalahan: Gagal mengurai string sebagai JSON
Ada perbedaan kutipan antara Bash, PowerShell di Linux, dan PowerShell di Windows.
Selain itu, versi PowerShell yang berbeda dapat menghasilkan hasil yang berbeda. Untuk parameter kompleks, seperti string JSON, praktik terbaiknya adalah menggunakan konvensi Azure CLI @<file> untuk melewati interpretasi shell. Untuk informasi selengkapnya, lihat salah satu artikel berikut ini:
Untuk contoh sintaks JSON untuk Bash, PowerShell, dan cmd.exe, lihat Mengutip perbedaan antara bahasa pembuatan skrip - tutorial string JSON .
Kesalahan: InvalidTemplateDeployment
Saat Anda mencoba membuat sumber daya Azure di lokasi yang tidak menawarkan sumber daya tersebut, Anda menerima kesalahan yang mirip dengan pesan ini: "SKU berikut gagal untuk Pembatasan Kapasitas: myDesiredSkuName' saat ini tidak tersedia di lokasi 'mySpecifiedLocation'".
Berikut adalah contoh kesalahan lengkap untuk VM yang tidak dapat dibuat di westus lokasi:
{"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."}]}}
Solusinya adalah mengubah properti sumber daya Azure yang Anda minta, atau mencoba lokasi lain.
Kesalahan: Langganan tidak ditemukan
Dengan asumsi Bahwa Anda tidak salah mengetikkan nama langganan atau ID, kesalahan ini terjadi ketika penyedia sumber daya tidak terdaftar dalam langganan aktif. Misalnya, jika Anda ingin menjalankan az storage account create, penyedia Microsoft.Storage harus terdaftar. Untuk mendaftarkan penyedia sumber daya, lihat Penyedia dan jenis sumber daya Azure.
Kesalahan: Sertifikat jabat tangan tidak valid gagal diverifikasi
Lihat Bekerja dengan proksi untuk informasi tentang cara mengatasi kesalahan ini.
Bekerja melalui proksi
Jika Anda menggunakan Azure CLI melalui server proksi yang menggunakan sertifikat yang ditandatangani sendiri, pustaka permintaan Python digunakan oleh Azure CLI dapat menyebabkan kesalahan berikut: SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",).
Untuk mengatasi kesalahan ini, atur variabel lingkungan REQUESTS_CA_BUNDLE ke jalur file sertifikat bundel CA dalam format PEM.
| Sistem operasi | Paket otoritas sertifikat default |
|---|---|
| Windows 32-bit | C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem |
| Windows 64-bit | 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 | Model Intel: /usr/local/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem Model silikon: /opt/homebrew/Cellar/azure-cli/<cliversion>/libexec/lib/python<version>/site-packages/certifi/cacert.pem |
Tambahkan sertifikat server proksi ke file sertifikat bundel CA, atau salin konten ke file sertifikat lain. Kemudian atur REQUESTS_CA_BUNDLE ke lokasi file baru. Berikut adalah sebuah contoh:
<Original cacert.pem>
-----BEGIN CERTIFICATE-----
<Your proxy's certificate here>
-----END CERTIFICATE-----
Beberapa proksi memerlukan autentikasi. Format variabel lingkungan HTTP_PROXY atau HTTPS_PROXY harus menyertakan autentikasi, seperti HTTPS_PROXY="https://username:password@proxy-server:port". Untuk detailnya, lihat Cara mengonfigurasi proksi untuk Azure SDK for Python.
Prinsipal layanan
Untuk informasi tentang pemecahan masalah prinsipal layanan, lihat Pembersihan dan Pemecahan Masalah di tutorial Bekerja dengan prinsipal layanan.
Masalah Lain
Jika Anda mengalami masalah produk dengan Azure CLI yang tidak tercantum dalam artikel ini, mengajukan masalah di GitHub.