Aracılığıyla paylaş


Kapsayıcı uygulamasında sorun giderme

Kapsayıcı uygulamanız düzgün çalışmıyorsa Azure Container Apps günlüklerini ve yapılandırma ayarlarını gözden geçirmek temel sorunları ortaya çıkarabilir. Kapsayıcı uygulamanızla ilgili ayrıntıları bulmanıza ve görüntülemenize yardımcı olması için aşağıdaki kılavuzu kullanın.

Senaryolar

Aşağıdaki tabloda Azure Container Apps kullanırken karşılaşabileceğiniz sorunlar ve bunları çözmek için gerçekleştirebileceğiniz eylemler listelanmaktadır.

Senaryo Açıklama Eylemler
Tüm senaryolar Günlükleri görüntüleme

Sorunları tanılama ve çözmeyi kullanma
Yeni düzeltme dağıtılırken hata oluştu Yeni bir düzeltme dağıtmaya çalıştığınızda bir hata iletisi alırsınız. Container Apps'in kapsayıcı görüntünüzü çekebildiğini doğrulama
Sağlama çok uzun sürüyor Yeni bir düzeltmeyi dağıttığınızda, yeni düzeltmeNin Sağlama durumuSağlama ve Çalışıyor durumusüresiz olarak İşleniyor şeklindedir. Sistem durumu yoklamalarının doğru yapılandırıldığını doğrulama
Düzeltme düzeyi düşürüldü Yeni düzeltmenin sağlanması 10 dakikadan fazla sürer. Son olarak Sağlama durumu Sağlandı, ancak Çalışıyor durumuDüzeyi Düşürüldü. Çalışıyor durumu araç ipucu okurDetails: Deployment Progress Deadline Exceeded. 0/1 replicas ready. Sistem durumu yoklamalarının doğru yapılandırıldığını doğrulama
Uç noktalara yönelik istekler başarısız oldu Kapsayıcı uygulaması uç noktası isteklere yanıt vermez. Giriş yapılandırmasını gözden geçirme
İstekler dönüş durumu 403 Kapsayıcı uygulama uç noktası HTTP hatası 403 (erişim reddedildi) ile isteklere yanıt verir. Ağ yapılandırmasının doğru olduğunu doğrulama
Yanıtlar beklendiği gibi değil Kapsayıcı uygulama uç noktası isteklere yanıt verir, ancak yanıtlar beklendiği gibi değildir. Trafiğin doğru düzeltmeye yönlendirildiğinden emin olun

Kapsayıcı kayıt defterine görüntü dağıtırken benzersiz etiketler kullandığınızı doğrulayın
Eksik parametreler hatası Azure CLI'da komut çalıştırdığınızda az containerapp veya Azure PowerShell'de modülden Az.App cmdlet'leri çalıştırdığınızda eksik parametrelerle ilgili hata iletileri alırsınız. Azure Container Apps uzantısının en son sürümünün yüklü olduğunu doğrulayın
Önizleme özellikleri kullanılamıyor Azure CLI'da komut çalıştırdığınızda az containerapp önizleme özellikleri kullanılamaz. Azure Container Apps uzantısının önizleme özelliklerine izin verdiğinden emin olun
Uygulamanızı veya ortamınızı silme çalışmıyor Bu soruna genellikle provisioningState: ScheduledForDelete gibi bir ileti eşlik eder. İlişkili sanal ağı el ile silme

Günlükleri görüntüleme

Kapsayıcı uygulamanızla ilgili sorunları ararken izleyebileceğiniz ilk adımlardan biri günlük iletilerini görüntülemektir. Hem konsol hem de sistem günlüklerinin çıkışını görüntüleyebilirsiniz. Kapsayıcı uygulamanızın konsol günlüğü uygulamanın stdout ve stderr akışlarını yakalar. Container Apps, hizmet düzeyi olayları için sistem günlükleri oluşturur.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar bölümünde kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda İzleme'yi genişletin ve Günlük akışı (Günlükler değil) seçeneğini belirleyin.
  5. Günlük akışı sayfasında Bu düzeltme sıfıra ölçeklendi yazıyorsa, Düzeltme Yönetimine Git düğmesini seçin. En az 1 çoğaltma sayısına ölçeklendirilmiş yeni bir düzeltme dağıtın. Daha fazla bilgi için bkz . Azure Container Apps'te ölçeklendirme.
  6. Günlük akışı sayfasında Günlükler'i Konsol veya Sistem olarak ayarlayın.

Sorunları tanılama ve çözme aracını kullanma

Kapsayıcı uygulamanızın sistem durumu, yapılandırması ve performansıyla ilgili sorunları bulmak için sorunları tanılama ve çözme aracını kullanabilirsiniz.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar bölümünde kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda Sorunları tanılama ve çözme'yi seçin.
  5. Sorunları tanılama ve çözme sayfasında Sorun giderme kategorilerinden birini seçin.
  6. Kapsayıcı uygulamanızla ilgili sorunları çözmenin yollarını bulmak için gezinti çubuğundaki kategorilerden birini seçin.

Kapsayıcı görüntüsünün erişilebilirliğini doğrulama

Yeni bir düzeltme dağıtmaya çalıştığınızda bir hata iletisi alırsanız, Container Apps'in kapsayıcı görüntünüzü çekebildiğinden emin olun.

  • Kapsayıcı ortamı güvenlik duvarınızın kapsayıcı kayıt defterine erişimi engellemediğinden emin olun. Daha fazla bilgi için bkz . Kullanıcı tanımlı yollarla giden trafiği denetleme.
  • Mevcut sanal ağınız varsayılan Azure tarafından sağlanan DNS sunucusu yerine özel bir DNS sunucusu kullanıyorsa, DNS sunucunuzun doğru yapılandırıldığını ve kapsayıcı kayıt defterinin DNS aramasının başarısız olmadığını doğrulayın. Daha fazla bilgi için bkz . DNS.
  • Kapsayıcı Uygulamaları bulut derleme özelliğini kullanarak sizin için bir kapsayıcı görüntüsü oluşturduysanız (bkz . Azure Container Apps için koddan buluta yol, görüntünüz genel olarak erişilebilir olmadığından bu bölüm geçerli değildir.

Konsol uygulaması olarak çalıştırılabilen bir Docker kapsayıcısı için, yükseltilmiş komut isteminde aşağıdaki komutu çalıştırarak görüntünüzün genel olarak erişilebilir olduğunu doğrulayın. Bu komutu çalıştırmadan önce, ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

docker run --rm <YOUR_CONTAINER_IMAGE>

Docker'ın hata bildirmeden görüntünüzü çalıştırdığını doğrulayın. Docker'ı Windows üzerinde çalıştırıyorsanız Docker Altyapısı'nın çalıştığından emin olun.

Resminize genel erişim sağlanmıyorsa aşağıdaki hatayı alabilirsiniz.

docker: Error response from daemon: pull access denied for <YOUR_CONTAINER_IMAGE>, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.

Daha fazla bilgi için bkz . Azure Container Apps ortamında ağ.

Giriş yapılandırmasını gözden geçirme

Kapsayıcı uygulamanızın giriş ayarları, kapsayıcı uygulamanıza dış ve iç trafiğin yönlendirmesini denetleen bir dizi kural aracılığıyla uygulanır. Kapsayıcı uygulamanıza bağlanamıyorsanız, giriş ayarlarınızın istekleri engellemediğinden emin olmak için bu giriş ayarlarını gözden geçirin.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar'ın altında kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda Ayarlar'ı genişletin ve Giriş'i seçin.
Sorun Eylem
Giriş etkin mi? Etkin onay kutusunun işaretli olduğunu doğrulayın.
Dış girişe izin vermek istiyor musunuz? Giriş Trafiği'nin Her yerden trafik kabul ediyor olarak ayarlandığını doğrulayın. Kapsayıcı uygulamanız HTTP trafiğini dinlemiyorsa Giriş Trafiği'ni Container Apps Ortamı ile Sınırlı olarak ayarlayın.
İstemciniz kapsayıcı uygulamanıza erişmek için HTTP veya TCP kullanıyor mu? Giriş türünün doğru protokole (HTTP veya TCP) ayarlandığını doğrulayın.
İstemciniz mTLS'i destekliyor mu? İstemci sertifika modunun yalnızca istemciniz mTLS'yi destekliyorsa Gerekli olarak ayarlandığını doğrulayın. Daha fazla bilgi için bkz . İstemci sertifikası kimlik doğrulamasını yapılandırma.
İstemciniz HTTP/1 veya HTTP/2 kullanıyor mu? Aktarım'ın doğru HTTP sürümüne (HTTP/1 veya HTTP/2) ayarlandığını doğrulayın.
Hedef bağlantı noktası doğru ayarlanmış mı? Hedef bağlantı noktasının kapsayıcı uygulamanızın dinlediği bağlantı noktasına veya kapsayıcı uygulamanızın Dockerfile dosyası tarafından kullanıma sunulan bağlantı noktasına ayarlandığını doğrulayın.
İstemci IP adresiniz reddedildi mi? IP Güvenlik Kısıtlamaları Modu Tüm trafiğe izin ver olarak ayarlanmamışsa istemcinizin reddedilen bir IP adresine sahip olmadığını doğrulayın.

Daha fazla bilgi için bkz . Azure Container Apps'te giriş.

Ağ yapılandırmasını doğrulama

Azure özyinelemeli çözümleyiciler istekleri çözümlemek için IP adresini 168.63.129.16 kullanır.

  1. Sanal ağınız varsayılan Azure tarafından sağlanan DNS sunucusu yerine özel bir DNS sunucusu kullanıyorsa, DNS sunucunuzu çözümlenmemiş DNS sorgularını adresine iletecek 168.63.129.16şekilde yapılandırın.
  2. NSG'nizi veya güvenlik duvarınızı yapılandırırken adresi engellemeyin 168.63.129.16 .

Daha fazla bilgi için bkz . Azure Container Apps ortamında ağ.

Sistem durumu yoklamaları yapılandırmasını doğrulama

Aktarımları olarak TCP kullanan tüm sistem durumu yoklaması türleri (canlılık, hazır olma ve başlatma) için, bağlantı noktası numaralarının kapsayıcı uygulamanız için yapılandırdığınız giriş hedef bağlantı noktasıyla eşleşip eşleşmediğini doğrulayın.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar'ın altında kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda Uygulama'yı genişletin ve Kapsayıcılar'ı seçin.
  5. Kapsayıcılar sayfasında Sistem durumu yoklamaları'nı seçin.
  6. Canlılık yoklamaları, Hazırlık yoklamaları ve Başlangıç yoklamaları'nı genişletin.
  7. Her araştırma için Bağlantı noktası değerinin doğru olduğunu doğrulayın.

Bağlantı noktası değerlerini aşağıdaki gibi güncelleştirin:

  1. Yeni bir düzeltme oluşturmak için Düzenle ve dağıt'ı seçin.
  2. Yeni düzeltme oluştur ve dağıt sayfasında, kapsayıcı görüntünüzün yanındaki onay kutusunu seçin ve Düzenle'yi seçin.
  3. Kapsayıcıyı düzenle penceresinde Sistem durumu yoklamaları'nı seçin.
  4. Canlılık yoklamaları, Hazırlık yoklamaları ve Başlangıç yoklamaları'nı genişletin.
  5. Her araştırma için Bağlantı noktası değerini düzenleyin.
  6. Kaydet düğmesini seçin.
  7. Yeni düzeltme oluştur ve dağıt sayfasında Oluştur düğmesini seçin.

Uzun başlatma süresi için sistem durumu yoklamalarını yapılandırma

Giriş etkinleştirilirse, her tür için tanımlanmamışsa aşağıdaki varsayılan yoklamalar otomatik olarak ana uygulama kapsayıcısına eklenir.

Her araştırma türü için varsayılan değerler aşağıdadır.

Özellik Başlangıç Hazırlık Canlılık
Protokol TCP TCP TCP
Bağlantı noktası Giriş hedef bağlantı noktası Giriş hedef bağlantı noktası Giriş hedef bağlantı noktası
Timeout 3 saniye 5 saniye yok
Dönem 1 saniye 5 saniye yok
İlk gecikme 1 saniye 3 saniye yok
Başarı eşiği 1 1 yok
Hata eşiği 240 48 yok

Kapsayıcı uygulamanızın başlatılması uzun sürüyorsa (Java'da yaygındır) canlılık ve hazırlık yoklaması başlangıç gecikme saniyesi özelliğinizi buna göre özelleştirmeniz gerekebilir. Kapsayıcı uygulamanızın tipik başlangıç zamanını görmek için günlükleri görüntüleyebilirsiniz.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar'ın altında kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda Uygulama'yı genişletin ve Kapsayıcılar'ı seçin.
  5. Kapsayıcılar sayfasında Sistem durumu yoklamaları'nı seçin.
  6. Yeni bir düzeltme oluşturmak için Düzenle ve dağıt'ı seçin.
  7. Yeni düzeltme oluştur ve dağıt sayfasında, kapsayıcı görüntünüzün yanındaki onay kutusunu seçin ve Düzenle'yi seçin.
  8. Kapsayıcıyı düzenle penceresinde Sistem durumu yoklamaları'nı seçin.
  9. Canlılık yoklamalarını genişletin.
  10. Canlılık yoklamalarını etkinleştir seçiliyse, İlk gecikme saniyeleri değerini artırın.
  11. Hazır olma yoklamaları'nı genişletin.
  12. Hazır olma yoklamalarını etkinleştir seçiliyse, İlk gecikme saniyeleri değerini artırın.
  13. Kaydet'i seçin.
  14. Yeni düzeltme oluştur ve dağıt sayfasında Oluştur düğmesini seçin.

Ardından kapsayıcı uygulamanızın başarıyla başlatılıp başlatılmayabileceğini görmek için günlükleri görüntüleyebilirsiniz.

Daha fazla bilgi için bkz . Sistem Durumu Yoklamalarını Kullanma.

Trafiğin doğru düzeltmeye yönlendirildiğinden emin olun

Kapsayıcı uygulamanız beklendiği gibi davranmıyorsa, sorun isteklerin güncel olmayan bir düzeltmeye yönlendirilmesi olabilir.

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna kapsayıcı uygulamanızın adını girin.
  3. Kaynaklar'ın altında kapsayıcı uygulamanızın adını seçin.
  4. Gezinti çubuğunda Uygulama'yı genişletin ve Düzeltmeler'i seçin.

Düzeltme Modu olarak ayarlanırsaSingle, tüm trafik varsayılan olarak en son düzeltmenize yönlendirilir. Etkin düzeltmeler sekmesinde Trafik değeri 100%olan yalnızca bir düzeltme listelenmelidir.

Düzeltme Modu olarak ayarlandıysaMultiple, trafiği güncel olmayan düzeltmelere yönlendirmediğinizden emin olun.

Trafik bölmeyi yapılandırma hakkında daha fazla bilgi için bkz . Azure Container Apps'te trafik bölme.

Azure Container Apps uzantısının en son sürümünün yüklü olduğunu doğrulayın

Azure CLI'da komutları veya Azure PowerShell'deki modülden Az.App cmdlet'leri çalıştırdığınızda az containerapp eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünü yüklediğinizden emin olun.

az extension add --name containerapp --upgrade

Azure Container Apps uzantısının önizleme özelliklerine izin verdiğinden emin olun

Azure CLI'da komut çalıştırdığınızda az containerapp önizleme özellikleri kullanılamıyorsa Azure Container Apps uzantısında önizleme özelliklerini etkinleştirin.

az extension add --name containerapp --upgrade --allow-preview true

Azure Container Apps ortamı tarafından kullanılan sanal ağı el ile silme

provisioningState: ScheduledForDelete iletisini alırsanız ancak ortamınız gerçekten silinemiyorsa, ilişkili sanal ağınızı el ile sildiğinizden emin olun.

  1. Silmeye çalıştığınız ortam tarafından kullanılan sanal ağı tanımlayın. PLACEHOLDERS> değerini <değerlerinizle değiştirin.

    az containerapp env show --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT>
    

    Çıktıda VNet Kimliğini bulun infrastructureSubnetId ve not edin. Örnek bir sanal ağ kimliği: vNet::myVNet.id.

  2. Sanal ağı el ile silin:

    az network vnet delete --resource-group <RESOURCE_GROUP> --name <VNET_ID>
    
  3. Azure Container Apps ortamını silin:

    az containerapp env delete --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT> --yes
    

Sonraki adımlar