Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Tidak ada dokumentasi
Apigee Edge yang setara untuk topik ini.
Gejala
Permintaan API gagal dengan error TARGET_CONNECT_HOST_NOT_REACHABLE.
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 diidentifikasi 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 dalam proxy API salah atau berisi karakter yang tidak valid. | Apigee, Apigee hybrid |
| Peering DNS tidak dikonfigurasi | Masalah ini dapat terjadi saat Apigee tidak dapat me-resolve nama domain jika peering DNS tidak dikonfigurasi dalam 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 respons:
{"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 respons 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 proxy, dan deploy proxy.
Penyebab: Peering DNS tidak dikonfigurasi
Diagnosis
- Periksa apakah organisasi Apigee di-peering dengan 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
Misalnya, untuk menentukan apakah peering VPC diaktifkan, periksa apakah atribut respons
authorizedNetworkada dan ditetapkan ke nilai. Jika tidak, peering VPC tidak diaktifkan:TOKEN=$(gcloud auth print-access-token)
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/example-org/" | jq .authorizedNetwork
Contoh respons ini menunjukkan bahwa peering VPC diaktifkan:
"projects/example-org/global/networks/shared-vpc1"
- Verifikasi dengan developer proxy API dari sisi pelanggan apakah nama domain server target ini dikonfigurasi secara internal. Jika tidak, skenario ini tidak berlaku.
- Temukan project ID dan jaringan tempat endpoint target dihosting.
Cantumkan peering DNS yang dibuat di jaringan di atas. Ikuti langkah-langkah di bawah berdasarkan apakah organisasi Apigee di-peering dengan jaringan VPC atau tidak.
Peering VPC diaktifkan
Jika organisasi Anda mengaktifkan peering VPC, gunakan perintah
peered-dns-domains list:gcloud services peered-dns-domains list --network=NETWORK --project=PROJECT-ID
Hasilnya dapat kosong jika tidak ada domain DNS peer yang tersedia, atau mencantumkan domain DNS peer. Contoh:
NAME DNS_SUFFIX customer-service customer.service.internal. accounts-service accounts.service.internal.
Peering VPC tidak diaktifkan
Jika organisasi Anda tidak mengaktifkan peering VPC, gunakan Apigee API berikut:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORGANIZATION/dnsZones"
Dengan:
ORGANIZATIONadalah nama organisasi Apigee Anda.Contoh respons, dengan nama organisasi
dns-peering-int-4:{ "dnsZones": [ { "name": "organizations/dns-peering-int-4/dnsZones/demo", "description": "latest", "domain": "demo.com", "peeringConfig": { "targetProjectId": "dns-peering-int-4", "targetNetworkId": "default" }, "state": "ACTIVE" }, { "name": "organizations/dns-peering-int-4/dnsZones/dns-peering-int-4", "description": "latest", "domain": "dns-peering-int-4.com", "peeringConfig": { "targetProjectId": "dns-peering-int-4", "targetNetworkId": "default" }, "state": "ACTIVE" } ] }Jika respons tidak menyertakan entri peering DNS untuk akhiran DNS yang relevan, hal itu dapat menjadi alasan masalah ini. Ikuti petunjuk yang diberikan di Resolusi untuk menyelesaikannya.
Resolusi
- Catat akhiran DNS, project ID, dan jaringan tempat endpoint target dihosting.
Buat domain DNS yang tertaut untuk akhiran DNS.
Peering VPC diaktifkan
Jika organisasi Anda mengaktifkan peering VPC, gunakan 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.
Peering VPC tidak diaktifkan
Jika organisasi Anda tidak mengaktifkan peering VPC, buat zona peering DNS dengan zona DNS pribadi di project Anda:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORGANIZATION/dnsZones?dnsZoneId=DNS_ZONE_ID" \ -d '{ "domain": "DOMAIN", "description": "DESCRIPTION", "peeringConfig": { "targetProjectId": "PRODUCER_PROJECT_ID", "targetNetworkId": "PRODUCER_VPC_NETWORK" } }'Dengan keterangan:
ORGANIZATIONadalah nama organisasi Apigee Anda.DNS_ZONE_IDadalah nama zona DNS yang ingin Anda buat.DOMAINadalah nama DNS zona terkelola ini, misalnyaexample.com.DESCRIPTIONadalah deskripsi singkat zona DNS. Karakter maksimum: 1024PRODUCER_PROJECT_IDadalah project yang berisi jaringan VPC produsen.PRODUCER_VPC_NETWORKadalah jaringan VPC dalam project pelanggan.
- 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.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut meskipun setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Layanan Pelanggan Google Cloud.
- Google Cloud project ID
- 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