Layanan 503 Tidak Tersedia - NoActiveTargets

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Video

Lihat video berikut untuk informasi lebih lanjut tentang kesalahan 503:

Video Deskripsi
Memecahkan masalah dan menyelesaikan 503 Service Available - NoActiveTargets Pelajari hal berikut:
  • Pentingnya Server Target dan Pemantau Kesehatan
  • Pemecahan masalah dan penyelesaian error 503 Service memperkirakan real-time - NoActiveTargets

Gejala

Aplikasi klien menerima kode status respons HTTP 503 dengan pesan Service Available dan kode error NoActiveTargets untuk permintaan proxy API.

Pesan error

Anda akan melihat respons error berikut:

HTTP/1.1 503 Service Unavailable
  

Anda akan melihat pesan error berikut dalam respons HTTP:

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

Kemungkinan penyebab

Respons HTTP 503 Service Availability dengan kode error NoActiveTargets biasanya diamati saat Anda menggunakan satu atau beberapa server target dalam konfigurasi endpoint target di Proxy API Anda.

Tabel berikut mencantumkan kemungkinan penyebab respons 503 Service memperkirakan dengan kode error NoActiveTargets:

Penyebab Deskripsi Siapa yang dapat melakukan langkah-langkah pemecahan masalah
Server Target Dinonaktifkan Server target yang ditentukan dalam konfigurasi endpoint target dinonaktifkan. Pengguna Edge Publik dan Private Cloud
Error Koneksi karena resolusi DNS yang salah Resolusi DNS server target menghasilkan alamat IP yang buruk yang menyebabkan kesalahan koneksi. Pengguna Edge Private Cloud
Error Koneksi Masalah jaringan atau konektivitas mencegah klien terhubung ke server. Pengguna Edge Private Cloud
Alias Target Host Salah Host server target yang ditentukan salah atau berisi karakter yang tidak diinginkan (seperti spasi). Pengguna Edge Publik dan Private Cloud
Kegagalan Handshake SSL Handshake TLS/SSL gagal antara klien dan server. Pengguna Edge Publik dan Private Cloud
Kegagalan Health Check Health check yang dikonfigurasi untuk memeriksa respons server target mungkin gagal karena beberapa alasan. Pengguna Edge Private Cloud

Penyebab: Server target dinonaktifkan

Jika semua server target yang ditentukan dalam konfigurasi endpoint target dinonaktifkan, Anda akan mendapatkan respons 503 Service Supported dengan kode error NoActiveTargets.

Diagnosis

  1. Tentukan nama server target yang digunakan dalam Konfigurasi Endpoint Target tertentu untuk Proxy API yang gagal menggunakan salah satu cara berikut:
    1. Jika ada endpoint target tunggal, periksa endpoint target tertentu tersebut.
    2. Jika ada beberapa endpoint target dan jika Anda tidak yakin titik mana yang telah menonaktifkan server target, ikuti langkah-langkah di bawah ini:
      1. Aktifkan sesi pelacakan, lakukan panggilan API, dan rekonstruksi masalah - 503 Layanan Tidak Tersedia.
      2. Dari rekaman aktivitas, buka Alur Permintaan Target Dimulai dan tentukan nama endpoint target seperti yang ditunjukkan di bawah:
      3. Menentukan nama endpoint target dari trace

  2. Setelah Anda mengidentifikasi endpoint target, dapatkan nama server target yang digunakan dari konfigurasi endpoint target seperti yang ditunjukkan dalam contoh di bawah:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    Pada contoh di atas, ada satu server target yang bernama demo-target.

  3. Dapatkan definisi untuk setiap server target yang digunakan di endpoint target menggunakan UI Edge atau panggilan Edge API.

    UI Edge

    Untuk mendapatkan definisi menggunakan Edge UI:

    1. Buka Admin > Lingkungan > Server Target.
    2. Pilih lingkungan spesifik tempat Anda melihat kegagalan.
    3. Telusuri nama server target tertentu untuk mendapatkan definisi server target.

      Misalnya, ketik nama server target demo-target dan Anda akan melihat definisinya seperti yang ditunjukkan di bawah ini:

      Nama server target dan status diaktifkan/dinonaktifkan

      Perhatikan di sini bahwa server target demo-target memiliki alias host, port #, dan SSL diaktifkan. Namun, server target itu sendiri dinonaktifkan , yang ditunjukkan dengan elemen ENABLED berwarna abu-abu.

    API Edge

    Untuk mendapatkan definisi menggunakan Edge API:

    Gunakan Get TargetServer API untuk mendapatkan definisi server target.

    Output Definisi Server Target

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

    Output Apigee API menunjukkan bahwa server target demo-target dinonaktifkan saat elemen IsEnabled disetel ke false.

    Karena server target dinonaktifkan, Message Processor akan segera mengirimkan 503 Service memperkirakan dengan kode error NoActiveTargets sebagai respons terhadap klien.

Resolusi

Pastikan server target khusus yang digunakan dalam konfigurasi endpoint target Proxy API selalu diaktifkan.

UI Edge

  1. Buka Admin > Lingkungan > Server Target.
  2. Pilih lingkungan spesifik tempat Anda melihat kegagalan.
  3. Telusuri nama server target tertentu untuk mendapatkan definisinya.
  4. Pilih server target spesifik, lalu klik Edit.
  5. Centang kotak Diaktifkan.
  6. Klik Perbarui.

API Edge

Gunakan Update a Target Server API untuk memperbarui definisi server target dan pastikan IsEnabled ditetapkan ke true dalam payload permintaan API seperti yang ditunjukkan di bawah ini:

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

Jika masalah masih berlanjut, buka Harus Mengumpulkan Informasi Diagnostik.

Mendiagnosis masalah menggunakan pemantauan API

Pemantauan API memungkinkan Anda mengisolasi area masalah dengan cepat untuk mendiagnosis masalah error, performa, dan latensi beserta sumbernya, seperti aplikasi developer, proxy API, target backend, atau platform API.

Ikuti contoh skenario yang menunjukkan cara memecahkan masalah 5xx pada API Anda menggunakan API Monitoring. Misalnya, Anda mungkin ingin menyiapkan pemberitahuan yang akan dikirimkan saat jumlah kesalahan messaging.adaptors.http.flow.NoActiveTargets melebihi batas tertentu.

Harus mengumpulkan informasi diagnostik

Jika masalah terus berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut. Hubungi dan bagikan ke Dukungan Apigee:

  1. Jika Anda adalah pengguna Cloud Publik, berikan informasi berikut:
    1. Nama Organisasi
    2. Nama Lingkungan
    3. Nama Proxy API
    4. Menyelesaikan perintah curl untuk mereproduksi error
    5. File detail migrasi yang berisi permintaan dengan 503 Service Available with kode error NoActiveTargets
  2. Jika Anda adalah pengguna Private Cloud, berikan informasi berikut:
    1. Pesan Error Lengkap yang diamati
    2. Nama Lingkungan
    3. Paket Proxy API
    4. File detail migrasi yang berisi permintaan dengan 503 Service Available with kode error NoActiveTargets
    5. Log Akses NGINX

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

    6. Log Pemroses Pesan

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