Memecahkan masalah Azure Developer CLI
Artikel ini menyediakan solusi untuk masalah umum yang mungkin muncul saat Anda menggunakan Azure Developer CLI (azd).
Dapatkan bantuan dan berikan umpan balik
Jika Anda tidak dapat menemukan apa yang Anda cari dalam artikel ini atau ingin memberikan umpan balik, Anda dapat memposting pertanyaan ke Diskusi CLI Pengembang Azure.
Anda juga dapat melaporkan bug dengan membuka Masalah GitHub di repositori GitHub Azure Developer CLI.
Menggunakan sakelar --debug
Jika Anda mengalami masalah tak terduga saat bekerja dengan azd
, jalankan ulang perintah dengan sakelar --debug
untuk mengaktifkan penelusuran kesalahan dan output diagnostik tambahan.
azd up --debug
Anda juga dapat mengirim output penelusuran kesalahan ke file teks lokal untuk meningkatkan kegunaan. Pendekatan ini memungkinkan info debugging diserap oleh sistem pemantauan lain dan juga dapat berguna saat mengajukan masalah di GitHub.
Penting
Pastikan untuk meredaksi informasi sensitif apa pun saat mengirimkan log debug di GitHub atau menyimpannya ke sistem diagnostik lainnya.
azd deploy --debug > "<your-file-path>.txt"
.azure
Direktori
Azure Developer CLI mengasumsikan bahwa direktori apa pun yang disimpan di .azure
direktori adalah lingkungan Azure Developer CLI. Jangan jalankan perintah Azure Developer CLI dari direktori beranda pengguna yang menginstal Azure CLI.
Tidak masuk ke Azure atau token kedaluwarsa di Visual Studio
Setelah menjalankan azd init -t <template-name>
di Visual Studio, Anda mendapatkan kesalahan berikut: "Untuk mengakses jarak jauh: repositori ini, Anda harus mengotorisasi ulang Aplikasi Visual Studio
OAuth ."
Solusi
Jalankan azd auth login
untuk merefresh token akses.
Izin akun Azure yang diperbarui tidak di-refresh azd
Secara default, azd
cache kredensial dan izin Azure Anda. Jika akun Azure Anda diberi peran dan izin baru, atau ditambahkan ke langganan tambahan, perubahan ini mungkin tidak segera tercermin dalam azd
. Untuk mengatasi masalah ini, keluar lalu masuk kembali menggunakan azd
perintah berikut:
azd auth logout
azd auth login
Ikuti perintah dari azd auth login
perintah untuk menyelesaikan proses masuk dan memperbarui kredensial cache Anda.
Batasan Cloud Shell untuk azd
Ada beberapa batasan untuk berjalan azd
di Cloud Shell:
Dukungan Docker di Cloud Shell
Cloud Shell tidak mendukung menjalankan docker build
atau run
perintah karena daemon docker tidak berjalan. Untuk informasi selengkapnya, lihat Pemecahan Masalah Cloud Shell.
Batas waktu Cloud Shell
Cloud Shell mungkin kehabisan waktu selama penyebaran yang panjang atau tugas lain yang berjalan lama. Pastikan sesi tidak menjadi menganggur. Lihat Batas Penggunaan Cloud Shell.
Antarmuka Cloud Shell
Cloud Shell terutama merupakan antarmuka baris perintah dan akan memiliki lebih sedikit fitur daripada lingkungan pengembangan terintegrasi seperti Visual Studio Code.
Tidak dapat tersambung ke daemon Docker di Cloud Shell
Cloud Shell menggunakan kontainer untuk menghosting lingkungan shell Anda, sehingga tugas yang mengharuskan menjalankan daemon Docker tidak diizinkan.
Menginstal versi azd yang berbeda di Cloud Shell
Dalam beberapa kasus, mungkin perlu menginstal versi yang berbeda dari azd
versi yang sudah digunakan di Cloud Shell. Untuk melakukan ini di bash:
- Jalankan
mkdir -p ~/bin
untuk memastikan bahwa~/bin
folder ada - Jalankan
mkdir -p ~/azd
untuk memastikan bahwa folder lokal~/azd
ada - Jalankan
curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version>
( akan secarastable
default tetapi versi rilis tertentu seperti1.0.0
<version>
juga dapat ditentukan).
Setelah diinstal, versi yang azd
ditautkan secara simbolis akan lebih diutamakan ~/bin
daripada versi yang azd
ditautkan secara simbolis di /usr/local/bin
.
Untuk kembali menggunakan versi azd
yang sudah diinstal pada Cloud Shell di bash:
- Jalankan
rm ~/bin/azd
- Jalankan
rm -rf ~/azd
Solusi
Gunakan host lain untuk melakukan tugas yang memerlukan daemon docker. Salah satu opsinya adalah menggunakan docker-machine, seperti yang dijelaskan dalam dokumentasi pemecahan masalah Cloud Shell.
Persyaratan CLI Azure Bicep
azd up
dan azd provision
memerlukan rilis terbaru Azure Bicep CLI. Anda mungkin mendapatkan pesan kesalahan berikut: "Kesalahan: gagal mengkompilasi templat bicep: gagal menjalankan build bicep modul Az PowerShell: kode keluar: 1, stdout: , stderr: PERINGATAN: Rilis Bicep baru tersedia: v0.4.1272."
Solusi
Sebelumnya, Bicep adalah prasyarat untuk menginstal dan menggunakan azd
. azd
sekarang secara otomatis menginstal Bicep dalam cakupan lokal azd
(tidak secara global) dan masalah ini sekarang harus diselesaikan. Namun, jika Anda ingin menggunakan versi yang berbeda, Anda dapat mengatur variabel lingkungan: AZD_BICEP_TOOL_PATH
untuk menunjuk ke lokasi versi yang Anda butuhkan.
azd up
atau azd provision
gagal
Hal-hal kadang-kadang bisa mengalihkan dengan azd up
atau azd provision
. Kesalahan umum meliputi:
- "Tidak dapat menyediakan sumber daya tertentu di wilayah Azure karena wilayah tersebut berada di luar kapasitas."
- "Penyedia sumber daya yang relevan tidak ada di wilayah tersebut."
Langkah-langkah pemecahan masalah mungkin berbeda, tergantung pada akar penyebabnya.
Solusi
Buka portal Microsoft Azure.
Temukan grup sumber daya Anda, yaitu rg-your-environment-name<>.
Pilih Penyebaran untuk mendapatkan informasi selengkapnya.
Verifikasi bahwa Anda telah menentukan nama lingkungan yang sama dengan nama lingkungan Anda.
https://github.com/<your repo>/actions
Buka , lalu lihat file log dalam eksekusi alur untuk informasi selengkapnya.
Untuk sumber daya lain, lihat Memecahkan masalah kesalahan umum penyebaran Azure - Azure Resource Manager.
azd init
Memerlukan sudo
Sebelum azd version = azure-dev-cli_0.2.0-beta.1
, azd
akan membuat .azd
folder dengan drw-r--r--
akses.
Ini akan menyebabkan masalah, karena menggunakan versi ini atau versi sebelumnya pada pengaturan Linux apa pun (WSL, ssh-remote, devcontainer, dll.) sudah menyediakan .azd
folder dengan mode baca-saja.
Solusi
Hapus folder yang sudah disediakan
.azd
secara manual:rm -r ~/.azd
azd
Jalankanazd init
untuk membuat folder lagi dengan tingkat akses yang tepat.
azd monitor
untuk kontainer pengembangan
azd monitor
saat ini tidak didukung jika Anda menggunakan kontainer pengembangan sebagai lingkungan pengembangan Anda.
Tidak dapat mengautentikasi di lingkungan Codespaces
Jika Anda mengalami masalah autentikasi di Codespaces, pastikan Dockerfile templat menyertakan sudo apt-get update && sudo apt-get install xdg-utils
perintah. Perintah xdg-utils
akan membuka tab browser yang memungkinkan Anda masuk.
Static Web Apps gagal disebarkan meskipun pesan berhasil
Masalah yang diketahui ada saat menyebarkan ke Azure Static Web Apps di mana output default azd up
dapat menyatakan tindakan berhasil, tetapi perubahan tersebut tidak benar-benar disebarkan. Anda dapat mendiagnosis masalah ini dengan menjalankan azd up
perintah dengan --debug
bendera diaktifkan. Dalam log output, Anda mungkin melihat pesan berikut:
Preparing deployment. Please wait...
An unknown exception has occurred
Anda kemungkinan besar mengalami masalah ini saat azd
dijalankan dari tindakan GitHub. Sebagai solusinya, setelah Anda membuat situs, salin staticwebapp.config.json
ke folder build. Anda dapat mengotomatiskan langkah ini dengan menggunakan hook perintah pra-paket atau pra-penyebaran, yang memungkinkan Anda menjalankan skrip kustom di berbagai titik dalam alur kerja perintah azd.
Tim produk berupaya menyelesaikan masalah ini.
Kesalahan GitHub Actions - "Tidak memiliki rahasia mendapatkan izin pada brankas kunci"
Berbagi nama lingkungan atau grup sumber daya yang sama saat menyediakan sumber daya secara lokal dan di GitHub Actions dapat menghasilkan kesalahan Does not have secrets get permission on key vault..
dari layanan Key Vault. Key Vault tidak mendukung pembaruan izin bertahap melalui Bicep, yang secara efektif berarti alur kerja Tindakan GitHub menimpa izin Kebijakan Akses pengguna lokal.
Solusi yang direkomendasikan untuk masalah ini adalah menggunakan nama lingkungan terpisah untuk pengembangan lokal dan alur kerja GitHub Actions. Baca selengkapnya tentang menggunakan beberapa lingkungan dengan azd env
perintah di halaman FAQ.
Dukungan browser berbasis teks
Browser berbasis teks saat ini tidak didukung oleh azd monitor
.
azd pipeline config
menggunakan AzDo untuk templat Java di Windows
Anda mungkin mengalami kegagalan saat menjalankan azd pipeline config
templat AzDo untuk Java di Windows. Misalnya, Anda telah:
Jalankan yang berikut ini di Windows:
azd init --template Azure-Samples/todo-java-mongo azd pipeline config
Menerima kesalahan berikut:
Solusi
Ini adalah masalah yang sudah diketahui. Saat kami mengatasi masalah ini, coba perintah berikut:
git update-index --chmod=+x src/api/mvnw && git commit -m "Fix executable bit permissions" && git push
failed packaging service 'api': failed invoking action 'package', failed to run NPM script build, signal: segmentation fault
kegagalan setelah meningkatkan azd
pada Apple Silicon (M1/M2)
Dalam beberapa situasi, peningkatan dari versi azd
x86_64 ke biner ARM64 dapat mengakibatkan kegagalan untuk templat yang telah dibangun dengan versi x86_64 .azd
Ini karena templat menggunakan versi v8-compile-cache
yang dapat mencoba memuat bytecode yang dibangun di bawah x86_64 ke dalam proses ARM64.
Untuk memperbaiki masalah ini, tingkatkan v8-compile-cache
paket dalam proyek yang terpengaruh:
- Ubah direktori ke layanan yang gagal (
src/api
dalam kasusfailed packaging service 'api'
) - Jalankan
npm upgrade v8-compile-cache
- Ubah direktori ke akar repositori dan jalankan
azd
perintah (misalnyaazd package
atauazd up
) lagi
azd pipeline config
kegagalan karena Kebijakan Akses Bersyar
Saat menjalankan azd pipeline config
, Anda mungkin menerima kesalahan seperti berikut ini:
ERROR: failed to create or update service principal: failed retrieving application list, failed executing request: http call(https://login.microsoftonline.com/common/oauth2/v2.0/token)(POST) error: reply status code was 400:
{"error":"invalid_grant","error_description":"AADSTS50005: User tried to log in to a device from a platform (Unknown) that's currently not supported through Conditional Access policy. Supported device platforms are: iOS, Android, Mac, and Windows flavors.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: 2022-12-16 21:10:37Z","error_codes":[50005],"timestamp":"2022-12-16 21:10:37Z","trace_id":"0000aaaa-11bb-cccc-dd22-eeeeee333333","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Kesalahan ini terkait dengan pengaktifan penyewa Microsoft Entra Anda dari Kebijakan Akses Bersyar. Kebijakan khusus mengharuskan Anda masuk ke platform perangkat yang didukung.
Anda mungkin juga menerima kesalahan ini karena masuk menggunakan mekanisme kode perangkat, yang mencegah ID Microsoft Entra mendeteksi platform perangkat Anda dengan benar.
Solusi
Untuk mengonfigurasi alur kerja, Anda perlu memberikan izin GitHub guna menyebarkan ke Azure atas nama Anda. Otorisasi GitHub dengan membuat Perwakilan Layanan Azure yang disimpan dalam rahasia GitHub bernama AZURE_CREDENTIALS
. Pilih host Codespace Anda untuk langkah-langkah:
Pastikan Anda berjalan di perangkat yang tercantum sebagai didukung, sesuai pesan kesalahan.
Jalankan
azd auth login
ulang dengan bendera--use-device-code=false
ditambahkan:azd auth login --use-device-code=false
Anda mungkin menerima kesalahan dengan pesan
localhost refused to connect
setelah masuk. Jika demikian:- Salin URL.
- Jalankan
curl '<pasted url>'
(URL dalam tanda kutip) di terminal Codespace baru.
Di terminal asli, login sekarang harus berhasil.
Setelah masuk, jalankan
azd pipeline config
ulang .
azd pipeline config
Dukungan
azd pipeline config
saat ini tidak didukung dalam Kontainer Jarak Jauh DevContainers/VS Code.
Dukungan metrik langsung untuk Python
Metrik Langsung (azd monitor --live
) saat ini tidak didukung untuk aplikasi Python. Untuk informasi selengkapnya, lihat Metrik Langsung: Memantau dan mendiagnosis dengan latensi 1 detik.
Membuat masalah GitHub untuk meminta bantuan
Azure Developer CLI dan ekstensi Azure Developer CLI Visual Studio Code menggunakan Masalah GitHub untuk melacak bug dan permintaan fitur. Silakan cari masalah yang ada sebelum mengajukan masalah baru untuk menghindari duplikat.
Untuk bantuan dan pertanyaan tentang penggunaan proyek ini, silakan lihat wiki kami untuk menggunakan Azure Developer CLI dan dokumen KONTRIBUSI kami jika Anda ingin berkontribusi.