Halaman ini menjelaskan cara memecahkan masalah error yang Anda terima sebagai respons dari permintaan ke API Anda.
Upstream backend unavailable
Jika Anda menerima kode error 14
dan pesan upstream backend unavailable
,
hal ini menunjukkan bahwa Extensible Service Proxy (ESP) tidak dapat menjangkau
backend layanan. Periksa hal-hal berikut:
- Pastikan layanan backend sedang berjalan. Cara Anda melakukannya bergantung pada backend.
- Untuk Compute Engine, lihat Memecahkan Masalah Cloud Endpoints di Compute Engine guna mengetahui detailnya.
-
Untuk GKE, Anda perlu menggunakan SSH untuk mengakses pod dan menggunakan
curl
. Lihat Memecahkan Masalah Endpoint di Google Kubernetes Engine untuk mengetahui detailnya.
- Port alamat IP layanan backend yang benar telah ditentukan:
-
Untuk GKE, periksa nilai flag ESP
--backend
(opsi singkatnya adalah-a
) di file manifes deployment Anda (sering kali disebutdeployment.yaml
). -
Untuk Compute Engine, periksa nilai flag ESP
--backend
(opsi singkatnya adalah-a
) dalam perintahdocker run
.
-
Untuk GKE, periksa nilai flag ESP
reset reason: connection failure
Jika Anda menerima kode HTTP 503
atau kode gRPC 14
dan pesan upstream connect error or disconnect/reset before headers. reset reason: connection failure
, hal ini menunjukkan
bahwa ESPv2 tidak dapat menjangkau backend layanan.
Untuk memecahkan masalah, periksa kembali item di bawah.
Alamat Backend
ESPv2 harus dikonfigurasi dengan alamat backend yang benar. Masalah yang umum mencakup:
- Skema alamat backend harus cocok dengan jenis aplikasi backend.
Backend OpenAPI harus berupa
http://
dan backend gRPC harus berupagrpc://
. - Untuk ESPv2 yang di-deploy di Cloud Run, skema alamat backend harus berupa
https://
ataugrpcs://
.s
memberi tahu ESPv2 untuk menyiapkan TLS dengan backend.
Pencarian DNS
Secara default, ESPv2 berupaya me-resolve nama domain ke alamat IPv6. Jika resolusi IPv6 gagal, ESPv2 akan kembali ke alamat IPv4.
Untuk beberapa jaringan, mekanisme penggantian mungkin tidak berfungsi sebagaimana mestinya.
Sebagai gantinya, Anda dapat memaksa ESPv2 untuk menggunakan alamat IPv4 melalui flag --backend_dns_lookup_family
.
Error ini umum terjadi jika Anda mengonfigurasi Konektor VPC Serverless untuk ESPv2 yang di-deploy di Cloud Run. VPC tidak mendukung traffic IPv6.
API is not enabled for the project
Jika Anda mengirim kunci API dalam permintaan, pesan error seperti "API my-api.endpoints.example-project-12345.cloud.goog is not enabled for the project" menunjukkan bahwa kunci API dibuat dalam project Google Cloud yang berbeda dengan API. Untuk memperbaiki masalah ini, Anda dapat membuat kunci API di project Google Cloud yang sama dengan yang terkait dengan API, atau Anda dapat mengaktifkan API di project Google Cloud tempat kunci API dibuat.
Service control request failed with HTTP response code 403
Jika Anda menerima kode error 14
dan pesan Service control request failed
with HTTP response code 403
, hal ini menunjukkan bahwa Service Control API
(servicecontrol.googleapis.com
) tidak diaktifkan pada project.
Lihat Memeriksa layanan yang diperlukan untuk memastikan semua layanan yang diperlukan Endpoint dan ESP diaktifkan di project Anda.
Baca bagian Memeriksa izin yang diperlukan untuk memastikan semua izin yang diperlukan untuk akun layanan yang terkait dengan instance yang menjalankan ESP.
Method doesn't allow unregistered callers
ESP merespons error,
Method doesn't allow unregistered callers
, saat Anda menentukan
allow_unregistered_calls: false
dalam file konfigurasi gRPC API, tetapi
permintaan ke API Anda tidak memiliki kunci API yang ditetapkan ke parameter kueri
bernama key
.
Jika Anda perlu membuat kunci API untuk melakukan panggilan ke API, lihat Membuat kunci API.
Method does not exist
Respons, Method does not exist
, berarti bahwa metode HTTP (GET
, POST
, atau lainnya) di jalur URL yang ditentukan tidak ditemukan. Untuk memecahkan masalahnya, bandingkan konfigurasi layanan yang telah Anda deploy untuk memastikan nama metode dan jalur URL yang Anda kirim dalam permintaan sudah cocok:
Di konsol Google Cloud, buka halaman Endpoint Services untuk project Anda.
Jika Anda memiliki lebih dari satu API, pilih API yang Anda kirimi permintaan.
Klik tab Histori deployment.
Pilih deployment terbaru untuk melihat konfigurasi layanan.
Transport is closing
Jika Anda menerima kode error 13
dan pesan transport is closing
, ini
menunjukkan bahwa ESP tidak dapat dijangkau.
Periksa log error ESP. Cara Anda melakukannya bergantung pada backend. Lihat informasi selengkapnya di sini:
Respons yang tidak diharapkan
Jika respons HTTP terlihat seperti biner, ini mungkin menunjukkan bahwa
permintaan terhubung ke API dengan menggunakan port HTTP2
saat Anda bermaksud
menggunakan port HTTP1
.
Periksa opsi konfigurasi port untuk ESP. Karena
tanda bentuk pendek, -p
(untuk HTTP1
) dan -P
(untuk HTTP2
), terlihat mirip, sebaiknya
gunakan tanda bentuk panjang: --http_port
untuk HTTP1
dan --http2_port
untuk HTTP2
.
Kesalahan konfigurasi backend ESP juga dapat menyebabkan respons yang tidak terduga. Pastikan tanda backend (-a
atau --backend
) ditetapkan ke URL gRPC seperti --backend=grpc://127.0.0.1:8081
.
Untuk detail selengkapnya tentang tanda ESP, lihat Opsi startup ESP.
Memeriksa log Cloud Logging
Untuk menggunakan log Cloud Logging guna membantu memecahkan masalah error respons:
Pada konsol Google Cloud, buka halaman Logging.
Di bagian atas halaman, pilih project Google Cloud.
Menggunakan menu drop-down di sebelah kiri, pilih Production API > [YOUR_SERVICE_NAME].
Sesuaikan rentang waktu hingga Anda melihat baris yang menampilkan error respons.
Luaskan payload JSON dan cari
error_cause
.Jika
error_cause
disetel keapplication
, hal ini menunjukkan masalah dalam kode Anda.Jika
error cause
berisi masalah lain dan Anda tidak dapat memperbaiki masalah tersebut, ekspor log dan sertakan log tersebut dalam komunikasi apa pun yang Anda lakukan dengan Google.
Lihat informasi selengkapnya di sini:
Untuk mengetahui detail tentang struktur log di Logs Explorer, lihat Referensi log endpoint
Mulai menggunakan Logs Explorer.
Gunakan Kueri log lanjutan untuk pemfilteran lanjutan, seperti mendapatkan semua permintaan dengan latensi lebih besar dari 300 milidetik.