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 StudioOAuth ."

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:

  1. Jalankan mkdir -p ~/bin untuk memastikan bahwa ~/bin folder ada
  2. Jalankan mkdir -p ~/azd untuk memastikan bahwa folder lokal ~/azd ada
  3. Jalankan curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> ( akan secara stable default tetapi versi rilis tertentu seperti 1.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:

  1. Jalankan rm ~/bin/azd
  2. 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

  1. Buka portal Microsoft Azure.

  2. Temukan grup sumber daya Anda, yaitu rg-your-environment-name<>.

  3. Pilih Penyebaran untuk mendapatkan informasi selengkapnya.

  4. Verifikasi bahwa Anda telah menentukan nama lingkungan yang sama dengan nama lingkungan Anda.

  5. https://github.com/<your repo>/actionsBuka , 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

  1. Hapus folder yang sudah disediakan .azd secara manual:

    rm -r ~/.azd
    
  2. azd Jalankan azd 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:

  1. Jalankan yang berikut ini di Windows:

    azd init --template Azure-Samples/todo-java-mongo
    azd pipeline config
    
  2. Menerima kesalahan berikut:

    Screenshot showing the error received when running azd pipeline config with AzDo for Java on Windows.

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:

  1. Ubah direktori ke layanan yang gagal (src/api dalam kasus failed packaging service 'api')
  2. Jalankan npm upgrade v8-compile-cache
  3. Ubah direktori ke akar repositori dan jalankan azd perintah (misalnya azd package atau azd 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: be3438c1-42fc-4c37-96d8-0e723ac54f01\r\nCorrelation ID: f535565f-9f3c-4014-ad65-403f514bf892\r\nTimestamp: 2022-12-16 21:10:37Z","error_codes":[50005],"timestamp":"2022-12-16 21:10:37Z","trace_id":"be3438c1-42fc-4c37-96d8-0e723ac54f01","correlation_id":"f535565f-9f3c-4014-ad65-403f514bf892"}

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:

  1. Pastikan Anda berjalan di perangkat yang tercantum sebagai didukung, sesuai pesan kesalahan.

  2. Jalankan azd auth login ulang dengan bendera --use-device-code=false ditambahkan:

    azd auth login --use-device-code=false
    
  3. Anda mungkin menerima kesalahan dengan pesan localhost refused to connect setelah masuk. Jika demikian:

    1. Salin URL.
    2. Jalankan curl '<pasted url>' (URL dalam tanda kutip) di terminal Codespace baru.

    Di terminal asli, login sekarang harus berhasil.

  4. Setelah masuk, jalankan azd pipeline configulang .