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 Studio
yeniden 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 azd
hemen 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:
- Klasörün mevcut olduğundan
~/bin
emin olmak için komutunu çalıştırınmkdir -p ~/bin
- Yerel
~/azd
klasörün mevcut olduğundan emin olmak için komutunu çalıştırınmkdir -p ~/azd
- Ç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 olabilirstable
, ancak gibi1.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/bin
sembolik 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:
rm ~/bin/azd
komutunu çalıştırınrm -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 provision
ile 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
Azure portalına gidin.
rg-your-environment-name<> olan kaynak grubunuzu bulun.
Daha fazla bilgi edinmek için Dağıtımlar'ı seçin.
Ortam adınızla aynı olan bir ortam adı belirttiğinizden emin olun.
https://github.com/<your repo>/actions
adresine 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
Önceden sağlanan
.azd
klasörü el ile silin:rm -r ~/.azd
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 monitor
desteklenmemektedir.
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:
Windows'da aşağıdakileri çalıştırın:
azd init --template Azure-Samples/todo-java-mongo azd pipeline config
Aşağıdaki hata alındı:
Çö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 azd
neden 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
:
- Dizini başarısız olan hizmete değiştirin (
src/api
durumundafailed packaging service 'api'
) npm upgrade v8-compile-cache
komutunu çalıştırın- Dizini deponun köküne değiştirin ve komutunu (örneğin
azd package
azd up
, ) yeniden çalıştırınazd
azd pipeline config
koşullu erişim ilkesinden kaynaklanan hata
komutunu çalıştırırken azd pipeline config
aş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: 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"}
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_CREDENTIALS
bir GitHub gizli dizisinde depolanan bir Azure Hizmet Sorumlusu oluşturarak GitHub'a yetki ver. Adımlar için Codespace konağınızı seçin:
Hata iletisine göre desteklenen olarak listelenen bir cihazda çalıştırdığınızdan emin olun.
Bayrağı
--use-device-code=false
eklenmiş olarak yeniden çalıştırınazd auth login
:azd auth login --use-device-code=false
Oturum açtıktan sonra iletiyle
localhost refused to connect
ilgili bir hata alabilirsiniz. Bu durumda:- URL'yi kopyalayın.
- 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.
Oturum açtıktan sonra komutunu yeniden çalıştırın
azd pipeline config
.
azd pipeline config
Destek
azd pipeline config
şu anda DevContainers/VS Code Uzak Kapsayıcılar'da desteklenmiyor.
Python için canlı ölçüm desteği
Canlı Ölçümler (azd monitor --live
) şu anda Python uygulamaları için desteklenmemektedir. Daha fazla bilgi için, bkz. Canlı Ölçümler: 1 saniyelik gecikme süresiyle izleme ve tanılama.
Yardım istemek için GitHub sorunu oluşturma
Azure Geliştirici CLI'sı ve Azure Geliştirici CLI Visual Studio Code uzantısı hataları ve özellik isteklerini izlemek için GitHub Sorunları'nı kullanır. Yinelenenleri önlemek için yeni sorunları dosyalamadan önce lütfen mevcut sorunları arayın.
Bu projeyi kullanma hakkında yardım ve sorular için, katkıda bulunmak istiyorsanız lütfen Azure Geliştirici CLI'sini kullanmaya yönelik wiki'mize ve CONTRIBUTING belgemize bakın.