Aracılığıyla paylaş


Azure Developer CLI sorunlarını giderme

Bu makalede, Azure Developer CLI (azd) kullanırken ortaya çıkabilecek yaygın sorunların çözümleri sağlanır.

Yardım alın ve geri bildirimde bulunun

Bu makalede aradığınızı bulamıyorsanız veya geri bildirim sağlamak istiyorsanız Azure Geliştirici CLI Tartışmaları'na sorular gönderebilirsiniz.

Azure Geliştirici CLI GitHub deposunda GitHub Sorunları'nı açarak da hataları bildirebilirsiniz.

--debug Anahtarı kullanma

ile azdçalışırken beklenmeyen bir sorunla karşılaşırsanız, ek hata ayıklamayı ve tanılama çıkışını --debug etkinleştirmek için anahtarıyla komutu yeniden çalıştırın.

azd up --debug

Gelişmiş kullanılabilirlik için hata ayıklama çıkışını yerel bir metin dosyasına da gönderebilirsiniz. Bu yaklaşım, hata ayıklama bilgilerinin diğer izleme sistemleri tarafından alınmasına olanak tanır ve GitHub'da sorun oluştururken de yararlı olabilir.

Önemli

GitHub'da hata ayıklama günlüklerini gönderirken veya bunları diğer tanılama sistemlerine kaydederken hassas bilgileri yeniden işlemeyi unutmayın.

azd deploy --debug > "<your-file-path>.txt"

Dizin .azure

Azure Geliştirici CLI, dizinde .azure depolanan tüm dizinlerin Azure Geliştirici CLI ortamları olduğunu varsayar. Azure CLI yüklü bir kullanıcının giriş dizininden Azure Geliştirici CLI komutlarını çalıştırmayın.

Azure'da oturum açmadı veya belirtecin süresi Visual Studio'da doldu

Visual Studio'da çalıştırdıktan azd init -t <template-name> sonra şu hatayı alırsınız: "Uzak depoya erişmek için, OAuth Uygulamasını Visual Studioyeniden kimlik doğrulamanız gerekir."

Çözüm

Erişim belirtecini yenilemek için komutunu çalıştırın azd auth login .

Güncelleştirilmiş Azure hesabı izinleri azd

Varsayılan olarak, azd Azure kimlik bilgilerinizi ve izinlerinizi önbelleğe alır. Azure hesabınıza yeni roller ve izinler atanırsa veya ek aboneliklere eklenirse, bu değişiklikler 'e azdhemen yansıtılamayabilir. Bu sorunu çözmek için oturumu kapatın ve aşağıdaki komutları kullanarak yeniden azd oturum açın:

azd auth logout

azd auth login

Oturum açma işlemini tamamlamak ve önbelleğe alınan kimlik bilgilerinizi güncelleştirmek için komuttaki azd auth login istemleri izleyin.

Için Cloud Shell sınırlamaları azd

Cloud Shell'de çalıştırmayla azd ilgili bazı sınırlamalar vardır:

Cloud Shell'de Docker desteği

Cloud Shell, docker build daemon'ı çalışmadığından docker veya run komutların çalıştırılmasını desteklemez. Daha fazla bilgi için bkz . Cloud Shell Sorun Giderme.

Cloud Shell zaman aşımı

Cloud Shell uzun bir dağıtım veya uzun süre çalışan diğer görevler sırasında zaman aşımına uyabilir. Oturumun boşta kalmadığından emin olun. Bkz. Cloud Shell Kullanım sınırları.

Cloud Shell arabirimi

Cloud Shell öncelikli olarak bir komut satırı arabirimidir ve Visual Studio Code gibi tümleşik bir geliştirme ortamından daha az özelliğe sahip olacaktır.

Cloud Shell'de Docker daemon'a bağlanılamıyor

Cloud Shell, kabuk ortamınızı barındırmak için bir kapsayıcı kullanır, bu nedenle Docker daemon'unun çalıştırılmasını gerektiren görevlere izin verilmez.

Cloud Shell'de farklı azd sürümünü yükleme

Bazı durumlarda, Cloud Shell'de zaten kullanımda olan sürümden farklı azd bir sürümünün yüklenmesi gerekebilir. Bash'te bunu yapmak için:

  1. Klasörün mevcut olduğundan ~/bin emin olmak için komutunu çalıştırın mkdir -p ~/bin
  2. Yerel ~/azd klasörün mevcut olduğundan emin olmak için komutunu çalıştırın mkdir -p ~/azd
  3. Çalıştır curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> (<version> varsayılan olarak olabilir stable , ancak gibi 1.0.0 belirli bir yayın sürümü de belirtilebilir).

yüklendikten sonra, sembolik olarak bağlı sürümüazd, içinde ~/bin/usr/local/binsembolik olarak bağlanmış sürümünden azd öncelikli olacaktır.

Bash'te Cloud Shell'de zaten yüklü olan azd sürümünü kullanmaya geri dönmek için:

  1. rm ~/bin/azd komutunu çalıştırın
  2. rm -rf ~/azd komutunu çalıştırın

Çözüm

Docker daemon gerektiren görevleri gerçekleştirmek için başka bir konak kullanın. Cloud Shell sorun giderme belgelerinde açıklandığı gibi docker-machine kullanmak bir seçenektir.

Azure Bicep CLI gereksinimi

azd up ve azd provision Azure Bicep CLI'nın en son sürümünü gerektirir. Şu hata iletisini alabilirsiniz: "Hata: bicep şablonu derlenemiyor: Az PowerShell modülü bicep derlemesi çalıştırılamadı: çıkış kodu: 1, stdout: , stderr: UYARI: Yeni bir Bicep sürümü kullanılabilir: v0.4.1272."

Çözüm

Daha önce Bicep' i yüklemek ve kullanmak azd için bir önkoşuldu. azd şimdi Bicep'i yerel azd kapsamda (genel olarak değil) otomatik olarak yükler ve bu sorun artık çözülmelidir. Ancak, farklı bir sürüm kullanmak istiyorsanız ortam değişkenini ayarlayabilirsiniz: AZD_BICEP_TOOL_PATH ihtiyacınız olan sürümün konumunu işaret edebilir.

azd up veya azd provision başarısız oluyor

Bazen veya azd provisionile azd up işler çeyize gidebilir. Yaygın hatalar şunlardır:

  • "Bölge kapasite dışında olduğundan Azure bölgesinde belirli kaynaklar sağlanamıyor."
  • "İlgili kaynak sağlayıcısı bu bölgede yok."

Sorun giderme adımları, kök nedene bağlı olarak farklılık gösterebilir.

Çözüm

  1. Azure portalına gidin.

  2. rg-your-environment-name<> olan kaynak grubunuzu bulun.

  3. Daha fazla bilgi edinmek için Dağıtımlar'ı seçin.

  4. Ortam adınızla aynı olan bir ortam adı belirttiğinizden emin olun.

  5. https://github.com/<your repo>/actionsadresine gidin ve daha fazla bilgi için işlem hattı çalıştırmasında günlük dosyasına bakın.

Diğer kaynaklar için bkz . Yaygın Azure dağıtım hatalarını giderme - Azure Resource Manager.

azd init Gerektirir sudo

öncesindeazd version = azure-dev-cli_0.2.0-beta.1, erişimi olan drw-r--r-- bir .azd klasör azd oluşturur.

Bu veya önceki bir sürümün herhangi bir Linux kurulumunda kullanılması (WSL, ssh-remote, devcontainer vb.) salt okunur modlu bir .azd klasör sağladığından, bu bir soruna neden olur.

Çözüm

  1. Önceden sağlanan .azd klasörü el ile silin:

    rm -r ~/.azd
    
  2. Doğru erişim düzeyleriyle klasörü yeniden oluşturmak için için komutunu azd çalıştırınazd init.

azd monitor geliştirme kapsayıcısı için

azd monitor geliştirme ortamı olarak bir geliştirme kapsayıcısı kullanıyorsanız şu anda desteklenmemektedir.

Codespaces ortamlarında kimlik doğrulaması yapılamıyor

Codespaces'ta kimlik doğrulaması sorunlarıyla karşılaşıyorsanız Dockerfile şablonunun komutları içerdiğinden sudo apt-get update && sudo apt-get install xdg-utils emin olun. xdg-utils Komut, oturum açmanıza olanak tanıyan bir tarayıcı sekmesi açar.

Statik Web Apps başarılı olmasına rağmen dağıtılamaz iletisi

Azure Static Web Apps'e dağıtılırken varsayılan azd up çıkışın eylemin başarılı olduğunu ancak değişikliklerin gerçekten dağıtılmadığını belirten bilinen bir sorun vardır. Bayrağı etkin komutunu çalıştırarak azd up--debug bu sorunu tanılayabilirsiniz. Çıkış günlüklerinde aşağıdaki iletiyi görebilirsiniz:

Preparing deployment. Please wait...
An unknown exception has occurred

GitHub eyleminden çalıştırıldığında azd büyük olasılıkla bu sorunla karşılaşırsınız. Geçici bir çözüm olarak, sitenizi derledikten sonra derleme klasörüne kopyalayın staticwebapp.config.json . Bu adımı, azd komut iş akışlarının çeşitli noktalarında özel betikler yürütmenizi sağlayan bir prepackage veya predeploy komut kancası kullanarak otomatikleştirebilirsiniz.

Ürün ekibi bu sorunu çözmek için çalışıyor.

GitHub Actions hatası - "Anahtar kasası üzerinde gizli dizi alma izni yok"

Kaynakları yerel olarak ve GitHub Actions'ta sağlarken aynı ortamı veya kaynak grubu adını paylaşmak Key Vault hizmetinden hata Does not have secrets get permission on key vault.. oluşturabilir. Key Vault, Bicep aracılığıyla artımlı izin güncelleştirmelerini desteklemez. Bu, GitHub Actions iş akışının yerel kullanıcının Erişim İlkesi izinlerinin üzerine yazıldığı anlamına gelir.

Bu sorunun önerilen çözümü, yerel geliştirme ve GitHub Actions iş akışları için ayrı ortam adları kullanmaktır. SSS sayfasındaki komutuyla azd env birden çok ortam kullanma hakkında daha fazla bilgi edinin.

Metin tabanlı tarayıcı desteği

Metin tabanlı tarayıcılar şu anda tarafından azd monitordesteklenmemektedir.

azd pipeline config Windows'da Java için AzDo şablonlarını kullanma

Windows'da Java şablonları için AzDo ile çalışırken azd pipeline config hatayla karşılaşabilirsiniz. Örneğin, şunları yaptınız:

  1. Windows'da aşağıdakileri çalıştırın:

    azd init --template Azure-Samples/todo-java-mongo
    azd pipeline config
    
  2. Aşağıdaki hata alındı:

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

Çözüm

Bu bilinen bir sorundur. Bu sorunu giderirken aşağıdaki komutu deneyin:

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 Apple Silicon'a yükselttikten azd sonra hata (M1/M2)

Bazı durumlarda, x86_64 sürümünden azd ARM64 ikili sürümüne yükseltme, x86_64 sürümüyle oluşturulmuş şablonlar için hatalara azdneden olabilir. Bunun nedeni, şablonun bir ARM64 işlemine x86_64 altında oluşturulan bayt kodunu yüklemeye çalışabilecek bir sürümünü v8-compile-cache kullanmasıdır.

Bu sorunu düzeltmek için etkilenen projedeki paketi yükseltin v8-compile-cache :

  1. Dizini başarısız olan hizmete değiştirin (src/api durumunda failed packaging service 'api')
  2. npm upgrade v8-compile-cache komutunu çalıştırın
  3. Dizini deponun köküne değiştirin ve komutunu (örneğin azd packageazd up, ) yeniden çalıştırın azd

azd pipeline config koşullu erişim ilkesinden kaynaklanan hata

komutunu çalıştırırken azd pipeline configaşağıdaki gibi bir hata alabilirsiniz:

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"}

Bu hata, Microsoft Entra kiracınızın Koşullu Erişim İlkelerini etkinleştirmesi ile ilgilidir. Belirli bir ilke, desteklenen bir cihaz platformunda oturum açmanızı gerektirir.

Microsoft Entra ID'nin cihaz platformunuzu doğru algılamasını engelleyen cihaz kodu mekanizması kullanılarak oturum açmış olmanız nedeniyle de bu hatayı alıyor olabilirsiniz.

Çözüm

İş akışını yapılandırmak için GitHub'a sizin adınıza Azure'da dağıtma izni vermeniz gerekir. adlı AZURE_CREDENTIALSbir GitHub gizli dizisinde depolanan bir Azure Hizmet Sorumlusu oluşturarak GitHub'a yetki ver. Adımlar için Codespace konağınızı seçin:

  1. Hata iletisine göre desteklenen olarak listelenen bir cihazda çalıştırdığınızdan emin olun.

  2. Bayrağı --use-device-code=false eklenmiş olarak yeniden çalıştırınazd auth login:

    azd auth login --use-device-code=false
    
  3. Oturum açtıktan sonra iletiyle localhost refused to connect ilgili bir hata alabilirsiniz. Bu durumda:

    1. URL'yi kopyalayın.
    2. Yeni bir Codespaces terminalinde (tırnak içinde URL) çalıştırın curl '<pasted url>' .

    Özgün terminalde oturum açma işlemi artık başarılı olmalıdır.

  4. Oturum açtıktan sonra komutunu yeniden çalıştırın azd pipeline config.