Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Video
Lihat video berikut untuk informasi selengkapnya tentang error 503:
Video | Deskripsi |
---|---|
Memecahkan masalah dan menyelesaikan 503 Layanan Tidak Tersedia - NoActiveTargets | Pelajari hal berikut:
|
Gejala
Aplikasi klien menerima kode status respons HTTP 503 dengan pesan Service Available (Layanan Tidak Tersedia) 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 Layanan Tidak Tersedia dengan kode error NoActiveTargets biasanya diamati saat Anda menggunakan satu atau beberapa server target di konfigurasi endpoint target di Proxy API Anda.
Tabel berikut mencantumkan kemungkinan penyebab respons Layanan 503 Tidak Tersedia 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 Public dan Private Cloud |
Error Koneksi karena resolusi DNS salah | Resolusi DNS server target menghasilkan alamat IP yang buruk yang menyebabkan error koneksi. | Pengguna Edge Private Cloud |
Error Koneksi | Masalah jaringan atau konektivitas mencegah klien terhubung ke server. | Pengguna Edge Private Cloud |
Alias Host Target Salah | Host server target yang ditentukan salah atau memiliki karakter yang tidak diinginkan (seperti spasi). | Pengguna Edge Public dan Private Cloud |
Kegagalan Handshake SSL | Handshake TLS/SSL gagal antara klien dan server. | Pengguna Edge Public dan Private Cloud |
Kegagalan Health Check | Health check yang dikonfigurasi untuk memeriksa kondisi 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 mendapatkan respons 503 Service Tidak Tersedia dengan kode error NoActiveTargets.
Diagnosis
- Menentukan nama server target yang digunakan di Endpoint Target tertentu Konfigurasi Proxy API yang gagal menggunakan salah satu cara berikut:
- Jika ada satu endpoint target, periksa endpoint target tersebut.
- Jika ada beberapa endpoint target dan tidak yakin endpoint target mana yang telah menonaktifkan server target, ikuti langkah-langkah berikut:
- Aktifkan sesi rekaman aktivitas, lakukan panggilan API, dan rekonstruksi masalah - 503 Service Tidak Tersedia.
- Dari rekaman aktivitas, buka Alur Permintaan Target Dimulai dan tentukan nama endpoint target seperti yang ditunjukkan di bawah ini:
- Setelah mengidentifikasi endpoint target, dapatkan nama server target yang digunakan dari konfigurasi endpoint target seperti yang ditunjukkan pada 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.
- Dapatkan definisi untuk setiap server target yang digunakan di endpoint target menggunakan Edge UI atau panggilan Edge API.
UI Edge
Untuk mendapatkan definisi menggunakan UI Edge:
- Buka Admin > Lingkungan > Server Target.
- Pilih lingkungan spesifik tempat Anda melihat kegagalan.
- 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:Perhatikan di sini bahwa demo-target server target memiliki alias host, port #, dan SSL diaktifkan. Namun, server target itu sendiri dinonaktifkan, yang ditunjukkan oleh elemen ENABLED yang berwarna abu-abu.
API Edge
Untuk mendapatkan definisi menggunakan Edge API:
Gunakan Dapatkan 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 target demo server target telah dinonaktifkan karena elemen IsEnabled ditetapkan ke false.
Karena server target dinonaktifkan, Pemroses Pesan akan mengirim 503 Service Tidak tersedia dengan kode error NoActiveTargets langsung sebagai respons terhadap klien.
Resolusi
Pastikan server target spesifik yang digunakan dalam konfigurasi endpoint target API Anda Proxy selalu diaktifkan.
UI Edge
- Buka Admin > Lingkungan > Server Target.
- Pilih lingkungan spesifik tempat Anda melihat kegagalan.
- Telusuri nama server target tertentu untuk mendapatkan definisinya.
- Pilih server target tertentu, lalu klik Edit.
- Centang kotak Enabled.
- Klik Perbarui.
API Edge
Gunakan Mengupdate Target Server API untuk memperbarui definisi server target dan memastikan bahwa 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 masalah area dengan cepat untuk mendiagnosis masalah error, performa, dan latensi beserta sumbernya, seperti masalah aplikasi, proxy API, target backend, atau platform API.
Mengikuti contoh skenario
yang menunjukkan cara memecahkan masalah 5xx dengan API menggunakan Pemantauan API. Misalnya,
Anda perlu menyiapkan peringatan yang akan
diberi tahu ketika jumlah messaging.adaptors.http.flow.NoActiveTargets
kesalahan melebihi
batas tertentu.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi berikut informasi diagnostik. Hubungi dan bagikan ke Dukungan Apigee:
- Jika Anda adalah pengguna Cloud Publik, berikan informasi berikut:
- Nama Organisasi
- Nama Lingkungan
- Nama Proxy API
- Menyelesaikan perintah curl untuk mereproduksi error
- File rekaman aktivitas yang berisi permintaan dengan Layanan 503 Tidak Tersedia dengan kode error NoActiveTargets
- Jika Anda adalah pengguna Private Cloud, berikan informasi berikut:
- Pesan Error Lengkap diamati
- Nama Lingkungan
- Paket Proxy API
- File rekaman aktivitas yang berisi permintaan dengan Layanan 503 Tidak Tersedia dengan kode error NoActiveTargets
- Log Akses NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
) - Log Pemroses Pesan
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
)