503 Hizmet Kullanılamıyor - NoActiveTarget

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Videolar

503 hatalarıyla ilgili daha fazla bilgi için aşağıdaki videolara bakın:

Video Açıklama
"503 Service Kullanılamıyor - NoActiveTarget" sorunlarını giderme Aşağıdakiler hakkında bilgi edinin:
  • Hedef Sunucuların ve Durum İzleyicilerin Önemi
  • Gerçek zamanlı 503 Service Kullanılamıyor - NoActiveTarget hatasıyla ilgili sorunları giderme ve çözme

Belirti

İstemci uygulaması, API proxy istekleri için Hizmet Kullanılamıyor mesajı ve NoActiveTarget hata koduyla birlikte 503 HTTP yanıt durum kodunu alır.

Hata mesajı

Aşağıdaki hata yanıtını görürsünüz:

HTTP/1.1 503 Service Unavailable
  

HTTP yanıtında aşağıdaki hata mesajını görürsünüz:

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
       }
    }
}
  

Olası nedenler

NoActiveTarget hata koduna sahip 503 Hizmet Kullanılamıyor HTTP yanıtı, genellikle API Proxy'nizdeki hedef uç nokta yapılandırmasında bir veya daha fazla hedef sunucu kullandığınızda görülür.

Aşağıdaki tabloda, NoActiveTarget yanıtı hata koduyla 503 Hizmet Kullanılamıyor hatasının olası nedenleri listelenmiştir:

Neden Açıklama Sorun giderme adımlarını kimler uygulayabilir?
Hedef Sunucu Devre Dışı Bırakıldı Hedef uç nokta yapılandırmasında belirtilen hedef sunucu devre dışı bırakıldı. Edge Herkese Açık ve Özel Bulut kullanıcıları
Yanlış DNS çözümlemesinden kaynaklanan bağlantı hataları Hedef sunucunun DNS çözümlemesi, bağlantı hatalarına neden olan bozuk IP adreslerine neden oldu. Edge Private Cloud kullanıcıları
Bağlantı Hataları Ağ veya bağlantı sorunları, istemcinin sunucuya bağlanmasını engelliyor. Edge Private Cloud kullanıcıları
Yanlış Hedef Ana Makine Takma Adı Belirtilen hedef sunucu ana makinesi yanlış veya istenmeyen karakterler (ör. boşluk) içeriyor. Edge Herkese Açık ve Özel Bulut kullanıcıları
SSL El Sıkışma Hataları İstemci ile sunucu arasındaki TLS/SSL el sıkışması başarısız oldu. Edge Herkese Açık ve Özel Bulut kullanıcıları
Durum Denetimi Başarısızlıkları Hedef sunucunun durumunu kontrol etmek üzere yapılandırılan durum denetimleri, bir nedenden dolayı başarısız olabilir. Edge Private Cloud kullanıcıları

Neden: Hedef sunucu devre dışı bırakıldı

Hedef uç nokta yapılandırmasında belirtilen tüm hedef sunucular devre dışı bırakılırsa NoActiveTarget hata kodunu içeren 503 Hizmet Kullanılamıyor yanıtı alırsınız.

Teşhis

  1. Hatalı API Proxy'sinin ilgili Hedef Uç Nokta Yapılandırmasında kullanılan hedef sunucunun adını belirlemek için aşağıdaki yöntemlerden birini kullanın:
    1. Tek bir hedef uç noktası varsa o hedef uç noktasını kontrol edin.
    2. Birden fazla hedef uç noktası varsa ve hangisinin hedef sunucuyu devre dışı bıraktığından emin değilseniz aşağıdaki adımları uygulayın:
      1. İzleme oturumunu etkinleştirin, API çağrısını gerçekleştirin ve sorunu yeniden oluşturun (503 Hizmeti Kullanılamıyor).
      2. İzden Hedef İstek Akışı Başlatıldı'ya gidin ve hedef uç noktanın adını aşağıda gösterildiği gibi belirleyin:
      3. Hedef uç nokta adını izden belirleme

  2. Hedef uç noktasını belirledikten sonra, aşağıdaki örnekte gösterildiği gibi, hedef uç nokta yapılandırmasından kullanılan hedef sunucu adını alın:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    Yukarıdaki örnekte, demo-target adında tek bir hedef sunucu vardır.

  3. Edge kullanıcı arayüzünü veya Edge API çağrısı kullanarak hedef uç noktasında kullanılan tüm hedef sunucuların tanımını öğrenin.

    Edge kullanıcı arayüzü

    Edge kullanıcı arayüzünü kullanarak tanımı almak için:

    1. Yönetici > Ortamlar > Hedef Sunucular'a gidin.
    2. Hatayı gördüğünüz ortamı seçin.
    3. Hedef sunucu tanımını öğrenmek için belirli hedef sunucu adını arayın.

      Örneğin, hedef sunucu adını demo-target yazdığınızda tanımını aşağıda gösterildiği gibi görürsünüz:

      Hedef sunucu adı ve etkin/devre dışı durumu

      Burada hedef sunucu demo-target için bir ana makine takma adı, bağlantı noktası numarası bulunur ve SSL'nin etkin olduğu unutulmamalıdır. Ancak hedef sunucunun kendisi devre dışıdır . Bu durum, ETKİN öğesinin devre dışı bırakılmasıyla belirtilir.

    Edge API'sı

    Edge API'yi kullanarak tanımı almak için:

    Hedef sunucu tanımını öğrenmek için Get TargetServer API'yi kullanın.

    Hedef Sunucu Tanımı Çıkışı

    <TargetServer name="demo-target">
      <Host>demo-target.apigee.net</Host>
      <Port>443</Port>
      <IsEnabled>false</IsEnabled>
      <SSLInfo>
          <Enabled>true</Enabled>
      </SSLInfo>
    </TargetServer>
              

    IsEnabled öğesi yanlış değerine ayarlandığından Apigee API çıkışı, hedef sunucu demo-target öğesinin devre dışı bırakıldığını gösterir.

    Hedef sunucu devre dışı bırakıldığından, Mesaj İşleyici hemen istemciye yanıt olarak NoActiveTarget hata koduyla birlikte 503 Service Kullanılamıyor ifadesini gönderir.

Çözünürlük

API Proxy'nizin hedef uç nokta yapılandırmasında kullanılan belirli hedef sunucuların her zaman etkin olduğundan emin olun.

Edge kullanıcı arayüzü

  1. Yönetici > Ortamlar > Hedef Sunucular'a gidin.
  2. Hatayı gördüğünüz ortamı seçin.
  3. Tanımını öğrenmek için belirli bir hedef sunucu adını arayın.
  4. İlgili hedef sunucuyu seçip Düzenle'yi tıklayın.
  5. Etkin onay kutusunu seçin.
  6. Güncelle'yi tıklayın.

Edge API'sı

Hedef sunucu tanımını güncellemek için Hedef Sunucu API'sini Güncelle'yi kullanın ve API'nin istek yükünde IsEnabled'ın aşağıda gösterildiği gibi true olarak ayarlandığından emin olun:

<TargetServer name="demo-target">
  <Host>demo-target.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
      <Enabled>true</Enabled>
  </SSLInfo>
</TargetServer>
        

Sorun devam ederse Teşhis Bilgilerinin Toplanması Zorunlu bölümüne gidin.

API izlemeyi kullanarak sorunları teşhis edin

API Monitoring; hata, performans ve gecikme sorunlarını ve bunların kaynaklarını (ör. geliştirici uygulamaları, API proxy'leri, arka uç hedefleri veya API platformu) teşhis etmek için sorunlu alanları hızla izole etmenize olanak tanır.

API Monitoring'i kullanarak API'lerinizle ilgili 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu inceleyin. Örneğin, messaging.adaptors.http.flow.NoActiveTargets hata sayısı belirli bir eşiği aştığında bilgilendirilecek bir uyarı ayarlamak isteyebilirsiniz.

Teşhis bilgileri toplanmalıdır

Yukarıdaki talimatları uygulamanıza rağmen sorun devam ederse lütfen aşağıdaki teşhis bilgilerini toplayın. Apigee Desteği ile iletişime geçin ve paylaşın:

  1. Herkese Açık Bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:
    1. Kuruluş Adı
    2. Ortam Adı
    3. API Proxy Adı
    4. Hatayı yeniden oluşturmak için curl komutunu tamamlayın
    5. NoActiveTarget hata koduyla birlikte 503 Hizmet Kullanılamıyor istekleri içeren izleme dosyası
  2. Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
    1. Tam Hata Mesajı gözlemlendi
    2. Ortam Adı
    3. API Proxy paketi
    4. NoActiveTarget hata koduyla birlikte 503 Hizmet Kullanılamıyor istekleri içeren izleme dosyası
    5. NGINX Erişim Günlükleri

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. Mesaj İşlemci Günlükleri

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)