Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Tidak ada dokumentasi
Apigee Edge yang setara untuk topik ini.
Gejala
Permintaan API gagal dengan TARGET_CONNECT_HOST_NOT_REACHABLE
error.
Pesan Error
Jika masalah ini terjadi, permintaan API akan gagal dengan kode status respons HTTP 503
dan error berikut:
{"fault":{"faultstring": "Unable to resolve host invalid-target-host","detail": {"errorcode":"protocol.http.NoResolvedHost","reason": "TARGET_CONNECT_HOST_NOT_REACHABLE"}}}
Kemungkinan Penyebab
Kemungkinan penyebab berikut telah teridentifikasi untuk gejala yang disebutkan di atas:
Penyebab | Deskripsi | Platform |
Host server target yang ditentukan salah atau memiliki karakter yang tidak valid | Masalah ini dapat terjadi jika host server target yang ditetapkan yang ditetapkan dalam proxy API salah atau berisi karakter yang tidak valid. | Apigee, Apigee Hybrid |
Peering DNS tidak dikonfigurasi | Masalah ini dapat terjadi jika Apigee tidak dapat menyelesaikan nama domain jika peering DNS tidak dikonfigurasi di deployment Apigee. | Apigee |
Penyebab: host server target yang ditentukan salah atau memiliki karakter yang tidak valid
Diagnosis
-
Kirim permintaan API ke proxy API yang relevan:
curl -ik https://dev.example.com/dns-peering-example HTTP/2 503 content-type: application/json x-request-id: *** content-length: 169 date: Thu, 02 Nov 2023 04:31:43 GMT via: 1.1 google alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
dan periksa pesan responsnya:
{"fault":{"faultstring": "Unable to resolve host invalid-target-host","detail": {"errorcode":"protocol.http.NoResolvedHost","reason": "TARGET_CONNECT_HOST_NOT_REACHABLE"}}}
-
Jika respons berisi alasan error
TARGET_CONNECT_HOST_NOT_REACHABLE
, berarti hal tersebut terkait dengan alasan ini.
Resolusi
- Periksa definisi proxy API dan temukan nama host target yang ditentukan:
- Jika nama host target yang diberikan tidak valid atau memiliki karakter yang tidak valid, perbaiki, buat revisi baru untuk proxy, dan deploy proxy.
Penyebab: Peering DNS tidak dikonfigurasi
Diagnosis
- Periksa apakah organisasi Apigee di-peering menggunakan jaringan VPC
dengan memanggil Apigee API berikut:
TOKEN=$(gcloud auth print-access-token)
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/$ORG" | jq .authorizedNetwork
Contoh:
TOKEN=$(gcloud auth print-access-token)
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/example-org/" | jq .authorizedNetwork
Respons:
"projects/example-org/global/networks/shared-vpc1"
Jika organisasi Apigee tidak di-peering dengan VPC dan menggunakan Private Service Connect (PSC), skenario ini tidak berlaku untuk organisasi Apigee ini.
- Verifikasi dengan developer proxy API dari sisi pelanggan apakah nama domain server target ini telah dikonfigurasi secara internal. Jika tidak, skenario ini tidak berlaku.
- Temukan project ID dan jaringan tempat endpoint target dihosting.
-
Buat daftar peering DNS yang dibuat di jaringan di atas dengan menjalankan
perintah
peered-dns-domains list
:gcloud services peered-dns-domains list --network=NETWORK --project=PROJECT-ID
Perintah di atas dapat menampilkan hasil kosong jika tidak ada domain DNS yang di-peering yang tersedia, atau mencantumkan domain DNS yang di-peering yang mirip dengan berikut ini:
NAME DNS_SUFFIX customer-service customer.service.internal. accounts-service accounts.service.internal.
Jika perintah di atas tidak mencantumkan entri peering DNS untuk akhiran DNS yang relevan, hal tersebut mungkin menjadi penyebab masalah ini. Ikuti petunjuk yang diberikan dalam Resolution untuk menyelesaikannya.
Resolusi
- Catat akhiran DNS, project ID, dan jaringan tempat endpoint target dihosting.
- Buat domain DNS yang di-peering untuk akhiran DNS menggunakan
perintah gcloud
peered-dns-domains create
. Perhatikan bahwa akhiran DNS harus berisi titik di akhir akhiran DNS.gcloud services peered-dns-domains create NAME --network=NETWORK --dns-suffix=DNS-SUFFIX. --project=PROJECT-ID
Contoh:
gcloud services peered-dns-domains create orders-service --network="shared-vpc1" --dns-suffix="orders.service.internal." --project=service-project
Respons:
Operation "operations/cpdd.p25-1064980322781-fafa5fe4-b5fe-487e-830d-fff0f9a6200d" finished successfully.
- Sekarang, kirim permintaan API ke endpoint proxy API dan verifikasi
apakah proxy API dapat me-resolve nama domain server target
dan berkomunikasi dengan server target:
gcloud services peered-dns-domains create orders-service --network="shared-vpc1" --dns-suffix="orders.service.internal." --project=service-project
Respons:
Operation "operations/cpdd.p25-1064980322781-fafa5fe4-b5fe-487e-830d-fff0f9a6200d" finished successfully
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Google Cloud Customer Care.
- ID project Google Cloud
- Organisasi Apigee
- Proxy dan revisi API
- Jaringan tempat domain pribadi dibuat
- Akhiran DNS domain pribadi
- Output lengkap dari perintah pembuatan domain DNS yang di-peering