Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Non esiste una equivalente
Documentazione di Apigee Edge per questo argomento.
Sintomi
Le richieste API non riescono con TARGET_CONNECT_HOST_NOT_REACHABLE
errore.
Messaggi di errore
Se si verifica questo problema, le richieste API non andranno a buon fine con HTTP 503
codice di stato della risposta e il seguente errore:
{"fault":{"faultstring": "Unable to resolve host invalid-target-host","detail": {"errorcode":"protocol.http.NoResolvedHost","reason": "TARGET_CONNECT_HOST_NOT_REACHABLE"}}}
Possibili cause
Per il sintomo sopra indicato sono state identificate le seguenti potenziali cause:
Causa | Descrizione | Piattaforma |
L'host del server di destinazione specificato è scorretto o contiene caratteri non validi | Questo problema potrebbe verificarsi nel caso in cui l'host del server di destinazione designato specificato nel proxy API sia errato o contenga caratteri non validi. | Apigee, Apigee hybrid |
Il peering DNS non è configurato | Questo problema potrebbe verificarsi quando Apigee non è in grado di risolvere il dominio se il peering DNS non è configurato nei deployment Apigee. | Apigee |
Causa: l'host del server di destinazione specificato non è corretto o contiene caratteri non validi
Diagnosi
-
Invia una richiesta API al proxy API pertinente:
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
e controlla il messaggio di risposta:
{"fault":{"faultstring": "Unable to resolve host invalid-target-host","detail": {"errorcode":"protocol.http.NoResolvedHost","reason": "TARGET_CONNECT_HOST_NOT_REACHABLE"}}}
-
Se la risposta contiene il motivo dell'errore
TARGET_CONNECT_HOST_NOT_REACHABLE
, quindi, è correlato per questo motivo.
Risoluzione
- Controlla la definizione del proxy API e trova il nome host target definito:
- Se il nome host target specificato non è valido o contiene caratteri non validi, correggilo di conseguenza, crea una nuova revisione del proxy e esegui il deployment del proxy.
Causa: il peering DNS non è configurato
Diagnosi
- Verifica se l'organizzazione Apigee è in peering con una rete VPC invocando la seguente API Apigee:
TOKEN=$(gcloud auth print-access-token)
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/$ORG" | jq .authorizedNetwork
Ad esempio:
TOKEN=$(gcloud auth print-access-token)
curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/example-org/" | jq .authorizedNetwork
Risposta:
"projects/example-org/global/networks/shared-vpc1"
Se l'organizzazione Apigee non è in coppia con una VPC e utilizza Private Service Connect (PSC), questo scenario non si applica a questa organizzazione Apigee.
- Verifica con lo sviluppatore del proxy API dal lato clienti se questo nome di dominio del server di destinazione è configurato internamente. In caso contrario, questo scenario non si applica.
- Trova l'ID progetto e la rete in cui si trova l'endpoint di destinazione in hosting.
-
Elenca i peering DNS creati nella rete indicata sopra eseguendo il comando
Comando
peered-dns-domains list
:gcloud services peered-dns-domains list --network=NETWORK --project=PROJECT-ID
Il comando precedente potrebbe restituire un risultato vuoto se non è presente alcun peering Sono disponibili domini DNS oppure elenca domini DNS in peering simili ai seguenti:
NAME DNS_SUFFIX customer-service customer.service.internal. accounts-service accounts.service.internal.
Se il comando riportato sopra non elenca una voce di peering DNS per il suffisso DNS pertinente, questo potrebbe essere il motivo del problema. Segui le istruzioni riportate nella sezione Risoluzione per risolvere il problema.
Risoluzione
- Prendi nota del suffisso DNS, dell'ID progetto e della rete in cui è ospitato l'endpoint di destinazione.
- Crea un dominio DNS accoppiato per il suffisso DNS utilizzando il
peered-dns-domains create
comando gcloud. Tieni presente che Il suffisso DNS deve contenere un punto finale alla fine del suffisso DNS.gcloud services peered-dns-domains create NAME --network=NETWORK --dns-suffix=DNS-SUFFIX. --project=PROJECT-ID
Ad esempio:
gcloud services peered-dns-domains create orders-service --network="shared-vpc1" --dns-suffix="orders.service.internal." --project=service-project
Risposta:
Operation "operations/cpdd.p25-1064980322781-fafa5fe4-b5fe-487e-830d-fff0f9a6200d" finished successfully.
- Ora, invia una richiesta API all'endpoint del proxy API e verifica
se il proxy API è in grado di risolvere il nome di dominio del server di destinazione
e comunicare con il server di destinazione:
gcloud services peered-dns-domains create orders-service --network="shared-vpc1" --dns-suffix="orders.service.internal." --project=service-project
Risposta:
Operation "operations/cpdd.p25-1064980322781-fafa5fe4-b5fe-487e-830d-fff0f9a6200d" finished successfully
Deve raccogliere informazioni di diagnostica
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccoglie le seguenti informazioni di diagnostica, quindi contatta l'assistenza clienti Google Cloud.
- ID progetto Google Cloud
- Organizzazione Apigee
- Revisione e proxy API
- Rete in cui è stato creato il dominio privato
- Suffisso DNS del dominio privato
- L'output completo del comando di creazione del dominio DNS in peering