Tips Untuk Berhasil Menggunakan Azure CLI
Dalam modul ini, Anda belajar memilih lingkungan, menginstal Azure CLI, menjalankan perintah Azure CLI secara interaktif, dan membuat skrip Bash . Mari kita selangkah lebih maju dan fokus pada cara menggunakan Azure CLI dengan sukses. Unit ini mengajari Anda cara kerja Azure CLI di belakang baris perintah dan memberi Anda tips untuk pemecahan masalah.
Petunjuk / Saran
Modul ini adalah kursus tingkat lanjut, dan unit ini membawa Anda jauh ke Azure CLI. Jika Anda baru menggunakan pemrograman baris perintah, fokus pada konsepnya. Detailnya menjadi lebih mudah dipahami saat Anda mendapatkan pengalaman. Jangan menyerah!
Memahami panggilan API Azure CLI
Yang berlangsung di balik antarmuka grafis portal Azure dan baris perintah Azure CLI adalah panggilan API. Anda dapat mengekspos Azure CLIpanggilan API dengan menggunakan --debugparameter. Inilah yang terjadi saat Anda membuat grup sumber daya baru:
az group create --location westus2 --name myResourceGroupName --debug
Berikut adalah output terminal dari Azure Cloud Shell dengan beberapa baris dihilangkan untuk brevity. Perhatikan output penting ini:
- Argumen perintah: Ini adalah bahasa pembuatan skrip, bukan Azure CLI, yang mengurai argumen perintah (parameter). Properti output ini adalah tempat pertama untuk melihat ketika perintah menghasilkan kesalahan.
- azlogging: Jalur ini adalah tempat file log Anda disimpan.
- Header permintaan: Header ini adalah nilai parameter yang diteruskan oleh perintah PUT .
-
Konten respons: Output ini adalah apa yang dikembalikan ke konsol tanpa output penuh
--debug.
cli.knack.cli: Command arguments: ['group', 'create', '--location', 'westus2', '--name', 'myResourceGroupName', '--debug']
cli.knack.cli: __init__ debug log:
...
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Modules found from index for 'group': ['azure.cli.command_modules.resource']
cli.azure.cli.core: Loading command modules:
...
cli.azure.cli.core: Loaded 53 groups, 233 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : group create
...
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/myName/.azure/commands/2025-10-08.21-47-27.group_create.5217.log'.
...
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myResourceGroupName?api-version=2022-09-01'
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': 'c79caddc-ed78-11ef-8a83-00155dbc433c'
cli.azure.cli.core.sdk.policies: 'CommandName': 'group create'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--location --name --debug'
...
cli.azure.cli.core.sdk.policies: Response content:
...
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName",
"location": "westus2",
"managedBy": null,
"name": "myResourceGroupName",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
cli.knack.cli: Event: Cli.SuccessfulExecute []
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x7f98a6bc7820>]
az_command_data_logger: exit code: 0
...
Wawasan utama dari output debug
- Penguraian perintah:Bahasa skrip (bukan Azure CLI) mengurai argumen. Lihat di sini terlebih dahulu saat pemecahan masalah.
-
Lokasi file log: Temukan log terperinci di jalur yang ditunjukkan
azlogginguntuk analisis post-mortem. -
Detail API: Lihat panggilan REST API aktual yang dilakukan, termasuk metode HTTP (
PUT,GET, dll.). -
Kode keluar: Nilai
0menunjukkan keberhasilan; nilai bukan nol menunjukkan kesalahan.
Beberapa perintah Azure CLI melakukan beberapa tindakan. Gunakan --debug untuk melihat setiap perintah yang dijalankan Azure CLI . Bahkan lebih berguna, gunakan --debug untuk memecahkan masalah mengapa skrip Azure CLI menghasilkan hasil yang tidak terduga.
Pemecahan masalah dengan --debug
Berapa kali sebagai pengembang telah Anda pikirkan, "Tugas ini harus begitu sederhana! Mengapa skrip saya tidak berfungsi?" Saat Anda menerima hasil tak terduga dari perintah Azure CLI , --debug parameternya adalah teman Anda! Mari kita bekerja melalui contoh perusahaan dengan 100 akun penyimpanan Azure. Anda perlu menemukan akun-akun di mana akses publik blob diaktifkan.
# Bash script - INCORRECT
resourceGroup="msdocs-rg-00000000"
az storage account list --resource-group $resourceGroup --query "[?allowBlobPublicAccess == `true`].id"
Saat nilai parameter tidak diformat dengan benar untuk bahasa skrip yang mengurai nilai, Anda menerima kesalahan invalid jmespath_type value :
cli.knack.cli: Command arguments: ['storage', 'account', 'list', '--resource-group', 'msdocs-rg-00000000', '--query', '[?allowBlobPublicAccess == ].id', '--debug']
...
cli.azure.cli.core.azclierror: argument --query: invalid jmespath_type value: '[?allowBlobPublicAccess == ].id'
az_command_data_logger: argument --query: invalid jmespath_type value: '[?allowBlobPublicAccess == ].id'
Lihat nilai variabel yang diteruskan Bash untuk allowBlobPublicAccess. Bahkan, di mana nilainya? Mengapa hilang?
Ingat, ini adalah lingkungan (juga disebut sebagai "bahasa skrip") yang mengurai nilai variabel Azure CLI . Setiap bahasa pembuatan skrip, dan bahkan versi bahasa skrip yang sama, dapat menghasilkan hasil yang berbeda. Berikut adalah cara yang benar untuk meneruskan nilai parameter boolean di Bash:
# Bash script - CORRECT
resourceGroup="msdocs-rg-00000000"
az storage account list --resource-group $resourceGroup --query "[?allowBlobPublicAccess == \`true\`].id" --debug
cli.knack.cli: Command arguments: ['storage', 'account', 'list', '--resource-group', 'msdocs-rg-00000000', '--query', '[?allowBlobPublicAccess == `true`].id', '--debug']
...
[
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/msdocs-rg-00000000/providers/Microsoft.Storage/storageAccounts/msdocssa00000000"
]
Petunjuk / Saran
Perbedaan utamanya adalah menghindari backtick dengan \true`` sehingga Bash tidak menafsirkannya sebagai substitusi perintah.
Memahami konsep penting dari --debug dan Anda berada di jalur yang tepat untuk menggunakan Azure CLI dengan sukses dalam lingkungan yang Anda pilih.
Perbedaan sintaks bahasa pembuatan skrip
Ketika kita baru saja selesai berbicara tentang --debug, langkah selanjutnya adalah menyadari apa yang menyebabkan sebagian besar kesalahan pembuatan skrip. Skrip yang ditulis dalam Bash perlu dimodifikasi agar berhasil dijalankan di PowerShell atau cmd.exe jika skrip Anda berisi salah satu konstruksi ini:
- Karakter kelanjutan baris
- Variabel
- Pengidentifikasi acak
- Kutipan
- Konstruksi bahasa pemrograman
Berikut adalah beberapa contoh:
| Sintaksis | Bash (sebuah bahasa shell dan bahasa perintah untuk Unix) | PowerShell | cmd.exe |
|---|---|---|---|
| Tanda kelanjutan baris | Garis miring terbelakang (\) |
Tanda Kutip Terbalik (`) |
Caret (^) |
| Penamaan variabel | variableName=varValue |
$variableName="varValue" |
set variableName=varValue |
| Angka sebagai string |
\50'' |
`50` |
`50` |
| Boolean sebagai string |
\benar'' |
`false` |
'true' |
| ID acak | let "randomIdentifier=$RANDOM*$RANDOM" |
$randomIdentifier = (New-Guid).ToString().Substring(0,8) |
set randomIdentifier=%RANDOM% |
| Perulangan |
until
while
for
|
for
foreach
while
do-while
do-until
|
for |
| Tulis ke konsol | echo |
Write-Host (lebih disukai) atau echo |
echo |
Kesalahan Umum
Contoh tabel ini tidak mencakup semuanya. Yang penting untuk dipahami saat menerima kesalahan Azure CLI adalah mempertimbangkan terlebih dahulu bahwa mungkin ada masalah sintaksis untuk lingkungan Anda. Uji kemungkinan ini dengan menyalin dan menempelkan skrip Anda ke bahasa skrip lain, seperti Azure Cloud Shell. Gunakan --debug di kedua lingkungan dan perhatikan perbedaan properti command arguments output.
Penting
Saat menyalin blok kode dari artikel Microsoft , ketahuilah bahwa sebagian besar dokumentasi Azure CLI di Microsoft ditulis untuk Bash dan diuji di Azure Cloud Shell.
Lebih banyak cara untuk mendapatkan bantuan
Gunakan az find
Ikuti tur cepat perintah Azure CLI dengan mengikuti contoh berikut:
Temukan perintah paling populer yang terkait dengan blob kata:
az find blob
Tampilkan perintah paling populer untuk grup perintah Azure CLI , seperti az storage:
az find "az storage"
Tampilkan parameter dan sub-perintah paling populer untuk perintah Azure CLI :
az find "az storage account create"
Gunakan --help
Jika Anda sudah mengetahui nama perintah yang Anda inginkan, argumen untuk perintah tersebut --help memberi Anda informasi lebih rinci tentang perintah dan daftar subperintah yang tersedia untuk grup perintah. Melanjutkan dengan contoh penyimpanan Azure kami, berikut cara mendapatkan daftar subgrup dan perintah untuk mengelola layanan blob akun penyimpanan:
az storage account blob-service-properties --help
Petunjuk / Saran
Gunakan --help dengan perintah atau subperintah apa pun untuk mendapatkan informasi penggunaan terperinci tanpa meninggalkan terminal.
Indeks dokumentasi A ke Z
Untuk menemukan contoh perintah referensi Azure CLI , gunakan salah satu dari beberapa indeks A ke Z:
Indeks referensi: Menyediakan daftar A ke Z dari semua grup referensi. Perluas bilah navigasi kiri untuk subgrup.
Daftar artikel konseptual Azure CLI: Menyediakan daftar mulai cepat A hingga Z, panduan cara, tutorial, dan modul pembelajaran yang menjelaskan cara menggunakan perintah referensi Azure CLI dalam skenario dunia nyata. Artikel ini mencantumkan artikel grup menurut grup perintah Azure CLI , seperti
az account, laluaz acr, dll. Gunakan Ctrl+F di Windows (Cmd+F di macOS) untuk dengan cepat melompat ke grup perintah pilihan Anda.Contoh skrip Azure CLI: Indeks memiliki tiga tab:
- Daftar menurut area subjek: Temukan sampel untuk layanan Azure.
- Daftar menurut grup referensi: Temukan sampel untuk grup perintah referensi.
- Repositori GitHub sampel Azure CLI: Temukan sampel di repositori GitHub sampel Azure CLI.
Menggunakan Copilot
Baik portal Microsoft Azure maupun Microsoft Edge menawarkan pengalaman Copilot yang mengembalikan informasi tentang perintah referensi Azure CLI , sampel, dan artikel yang diterbitkan. Copilot juga menyediakan tautan ke pertanyaan Stack Overflow terkait. Ketika Anda memiliki pekerjaan yang sulit untuk dilakukan dengan beberapa langkah pembuatan skrip, Copilot sangat membantu dalam mengkompilasi beberapa sumber informasi untuk menjawab pertanyaan Anda.
Nota
GitHub Copilot juga dapat membantu Anda menulis skrip Azure CLI langsung di editor kode Anda, memberikan penyelesaian dan saran kode cerdas.