Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste documentazione equivalente di
Apigee Edge per questo argomento.
Sintomo
Problemi di connettività di rete tra Apigee e un servizio di destinazione southbound collegato da Private Service Connect (PSC).
Messaggio di errore
Un problema di connessione di rete o un timeout TCP tra Apigee e il servizio di destinazione viene visualizzato come risposta di errore 503
e viene visualizzato un errore simile a quello riportato di seguito se crei una sessione di debug.
{"fault":{"faultstring":"The Service is temporarily unavailable","detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable","reason":"TARGET_CONNECT_TIMEOUT"}}}
Possibili cause
Causa | Descrizione |
Regioni diverse tra l'attacco del servizio e l'istanza Apigee | La regione dell'istanza Apigee e la regione dell'allegato del servizio sono diverse. |
Regola firewall in entrata mancante per la subnet PSC nel progetto di destinazione | Nel progetto di destinazione, assicurati che esista una regola firewall di autorizzazione in entrata per consentire l'indirizzo IP e la porta dell'intervallo di subnet del PSC. |
Configurazione errata del collegamento del servizio nel progetto di destinazione | Verifica il collegamento del servizio nel progetto di destinazione. |
Stato errato del collegamento dell'endpoint in Apigee | Verifica l'aggancio dell'endpoint su Apigee. |
Mancata corrispondenza della porta configurata in TargetEndpoint e nell'ILB | Assicurati che TargetEndpoint nel proxy API utilizzi la stessa porta esposta dal bilanciatore del carico interno (ILB) nel progetto di destinazione. |
Causa: regioni diverse tra il collegamento del servizio e l'istanza Apigee
Diagnosi
-
Controlla la regione dell'istanza Apigee utilizzando uno dei seguenti metodi:
- Utilizzo dell'interfaccia utente Apigee classica:
- Accedi all' UI di Apigee.
- Fai clic su Amministrazione > Istanze.
- Fai clic su un'istanza.
- Controlla la posizione di hosting del runtime nel riquadro Dettagli istanza.
- Utilizzo dell'interfaccia utente di Apigee nella console Google Cloud:
-
Nella console Google Cloud, vai alla pagina Istanze Apigee.
- Fai clic su un'istanza.
- Controlla la posizione di hosting del runtime nel riquadro Dettagli istanza.
-
- Utilizzando una
chiamata API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances"
dove ORG_NAME è il nome dell'organizzazione. Ad esempio,
example-apigee-support
.Viene restituito qualcosa di simile al seguente. La posizione dell'hosting runtime è il valore mostrato per
location
di seguito. Ad esempio:asia-northeast1
."instances": [ { "name": "asia-northeast1", "location": "asia-northeast1", "host": "10.117.0.2", "port": "443", "createdAt": "1628150049760", "lastModifiedAt": "1682139265367", "diskEncryptionKeyName": "projects/apigee-x-support-apac-05/locations/asia-northeast1/keyRings/phanim-disk-key-1/cryptoKeys/phanim-disk-key-ring-1", "state": "ACTIVE", "peeringCidrRange": "SLASH_20", "runtimeVersion": "1-9-0-apigee-25", "consumerAcceptList": [ "example-apigee-support", "example-neg-project" ], "serviceAttachment": "projects/xb363132eb41cb643p-tp/regions/asia-northeast1/serviceAttachments/apigee-asia-northeast1-yp9o" }
- Utilizzo dell'interfaccia utente Apigee classica:
-
Controlla la regione Allegato endpoint utilizzando una
chiamata API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Dove:
- ORG_NAME è il nome dell'organizzazione.
Ad esempio,
example-apigee-support
. - ENDPOINT_ATTACHMENT_NAME è il nome dell'allegato
dell'endpoint. Ad esempio,
example-ea
.
Viene restituito qualcosa di simile al seguente. La regione di attacco dell'endpoint è il valore mostrato per
location
di seguito. Ad esempio:asia-northeast1
.{ "name": "organizations/example-apigee-support/endpointAttachments/example-ea", "location": "asia-northeast1", "host": "7.0.4.2", "state": "ACTIVE", "connectionState": "ACCEPTED", "serviceAttachment": "projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend" }
- ORG_NAME è il nome dell'organizzazione.
Ad esempio,
-
Controlla la regione Allegato servizio utilizzando la console Cloud:
-
Nella console Google Cloud, vai alla pagina Private Service Connect .
- Controlla la colonna Regione per la località.
-
Risoluzione
Assicurati che le regioni Istanzia Apigee, Collegamento endpoint e
Collegamento servizio siano uguali. Ad esempio,
asia-northeast1
.
Come descritto in
Limitazioni, l'accesso globale non è supportato. Ciò significa che i collegamenti ai servizi e ai relativi endpoint devono trovarsi nella stessa regione. Ad esempio, se la tua istanza Apigee si trova nella regione us-west1
, non puoi collegarvi servizi che si trovano in us-east2
o in qualsiasi altra regione.
Se le regioni sono diverse, riscontrerai problemi di connettività tra Apigee e il servizio di destinazione.
Causa: regola firewall in entrata mancante per la subnet PSC nel progetto di destinazione
Diagnosi
Verifica che nel progetto di destinazione sia presente una regola firewall che consenta all'indirizzo IP dell'intervallo della subnet PSC di connettersi al servizio di destinazione:
-
Nella console Google Cloud, vai alla pagina Firewall.
-
Nel riquadro Regole firewall VPC, verifica che esista una regola come quella riportata nell'esempio seguente:
- Direzione: in entrata
- Azione in caso di corrispondenza:Consenti
- Filtro di origine:intervalli IPv4/IPv6
- Intervalli IP: intervallo di indirizzi IP della subnet PSC
(
ipCidrRange
) che puoi ottenere con il seguente comando gcloud per descrivere la subnet PSC:gcloud compute networks subnets describe PSC_SUBNET_NAME --region=REGION
Dove:
-
PSC_SUBNET_NAME è il nome della subnet PCS.
Ad esempio,
pscsub
. -
REGION è la località. Ad esempio,
asia-northeast1
.
Viene restituito qualcosa di simile al seguente:
creationTimestamp: '2023-04-19T03:33:29.371-07:00' fingerprint: 1JPKY66teTg= gatewayAddress: 10.10.0.1 id: '5645967773396008342' ipCidrRange: 10.10.0.0/24 kind: compute#subnetwork name: pscsub network: https://www.googleapis.com/compute/v1/projects/target-project/global/networks/default privateIpGoogleAccess: false privateIpv6GoogleAccess: DISABLE_GOOGLE_ACCESS purpose: PRIVATE_SERVICE_CONNECT ....
-
PSC_SUBNET_NAME è il nome della subnet PCS.
Ad esempio,
- Protocolli e porte:devono essere elencati in base alla configurazione del servizio di destinazione.
Ad esempio:
Risoluzione
Se la regola del firewall non è in vigore, crea una sottorete PSC come descritto nel passaggio 2 di Creare un collegamento di servizio.
Causa: configurazione errata del collegamento al servizio nel progetto di destinazione
Diagnosi
Controlla la regione Allegato servizio utilizzando uno dei seguenti metodi:
- Utilizzo della console Cloud:
-
Nella console Google Cloud, vai alla pagina Private Service Connect .
- Fai clic su Servizi pubblicati.
- Fai clic su un servizio.
- Controlla la riga Regione per la località.
-
- Utilizzo di un
gcloud command
:gcloud compute service-attachments describe SERVICE_ATTACHMENT --region=REGION
Dove:
-
SERVICE_ATTACHMENT è il nome del collegamento al servizio.
Ad esempio,
gkebackend
. -
REGION è la località. Ad esempio,
asia-northeast1
.
Viene restituito qualcosa di simile al seguente:
connectedEndpoints: - endpoint: https://www.googleapis.com/compute/v1/projects/xb363132eb41cb643p-tp/regions/asia-northeast1/forwardingRules/example-ea pscConnectionId: '6816512648152066' status: ACCEPTED connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2023-04-19T05:09:09.941-07:00' description: '' enableProxyProtocol: false fingerprint: 0BZDAZ3zDCs= id: '4503680255626733322' kind: compute#serviceAttachment name: gkebackend natSubnets: - https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/subnetworks/pscsub pscServiceAttachmentId: high: '21570167574103266' low: '4503680255626733322' region: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1 selfLink: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend targetService: https://www.googleapis.com/compute/v1/projects/target-project/regions/asia-northeast1/forwardingRules/k8s2-tcp-b65prv8v-default-ilb-svc-tv2s6klz
-
SERVICE_ATTACHMENT è il nome del collegamento al servizio.
Ad esempio,
Risoluzione
-
Assicurati che il valore
connectedEndpoints.endpoint
faccia riferimento al progetto tenant di Apigee e assicurati che il relativo stato siaACCEPTED
. Puoi trovare il progetto tenant utilizzando l' API Apigee Organizations:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME"
dove ORG_NAME è il nome dell'organizzazione. Ad esempio:
example-apigee-support
.Viene restituito qualcosa di simile al seguente. L'ID si trova in un campo denominato
apigeeProjectId
. Ad esempio:xb363132eb41cb643p-tp
.{ "name": "example-apigee-support", "createdAt": "1628148440954", "lastModifiedAt": "1650563608527", "environments": [ "dev" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "analyticsRegion": "asia-northeast1", "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "CERTIFICATE_NUMBER", "runtimeDatabaseEncryptionKeyName": "projects/example-apigee-support/locations/asia-northeast1/keyRings/phanim-key-ring-1/cryptoKeys/phanim-app-key-1", "projectId": "example-apigee-support", "state": "ACTIVE", "billingType": "SUBSCRIPTION", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {} }, "apigeeProjectId": "xb363132eb41cb643p-tp" }
-
Assicurati che il collegamento del servizio abbia connettività con il
collegamento endpoint come descritto in
Modelli di rete southbound, Controlla e gestisci la connettività dei collegamenti.
Nell'interfaccia utente del passaggio 1 , assicurati che:
-
La riga Subnet fa riferimento alla subnet PSC. Ad esempio,
pscsub
. - La riga Target fa riferimento al bilanciatore del carico interno corretto per i backend di destinazione.
-
La riga Subnet fa riferimento alla subnet PSC. Ad esempio,
Causa: stato errato del collegamento dell'endpoint in Apigee
Diagnosi
Visualizza l'allegato dell'endpoint su Apigee utilizzando una chiamata API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Dove:
-
ORG_NAME è il nome dell'organizzazione. Ad esempio:
example-apigee-support
. -
ENDPOINT_ATTACHMENT_NAME è il nome dell'allegato
dell'endpoint. Ad esempio,
example-ea
.
Viene restituito qualcosa di simile al seguente:
{ "name": "organizations/example-apigee-support/endpointAttachments/example-ea", "location": "asia-northeast1", "host": "7.0.4.2", "state": "ACTIVE", "connectionState": "ACCEPTED", "serviceAttachment": "projects/target-project/regions/asia-northeast1/serviceAttachments/gkebackend" }
Risoluzione
Assicurati di quanto segue:
state
èACTIVE
connectionState
èACCEPTED
-
serviceAttachment
fa riferimento al progetto di destinazione corretto e al nome del collegamento al servizio
Causa: mancata corrispondenza della porta configurata in TargetEndpoint e nel bilanciatore del carico interno
Diagnosi
- Nel progetto di destinazione, trova la porta esposta dalla regola di forwarding utilizzando la console Cloud:
-
Nella console Google Cloud, vai alla pagina Private Service Connect .
- Fai clic su Servizi pubblicati.
- Fai clic su un servizio. Come mostrato nell'esempio seguente, la porta 80 è esposta.
-
Risoluzione
Assicurati che la stessa porta 80 sia la porta in TargetEndpoint
del proxy API.
Per verificare, vai al proxy API e verifica l'URL
TargetEndpoint
:
- Utilizzo dell'interfaccia utente Apigee classica:
- Accedi all' UI di Apigee.
- Fai clic su Sviluppa > Proxy API.
- Fai clic su un proxy.
- Fai clic su Sviluppa.
- Nel riquadro XML, controlla quanto segue:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
- Utilizzo dell'interfaccia utente di Apigee nella console Google Cloud:
-
Nella console Google Cloud, vai alla pagina Apigee.
- Nell'area Sviluppo proxy, fai clic su Proxy API.
- Fai clic su un proxy.
- Fai clic su Sviluppa.
- Nel riquadro XML, controlla quanto segue:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
-
Deve raccogliere informazioni di diagnostica
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e poi contatta l'assistenza clienti Google Cloud:
- Organizzazione Apigee
- Ambiente e proxy API in cui si verifica il problema
- Sessione di debug scaricata (fornirà tutte le informazioni riportate sopra)
- Collegamento dell'endpoint in uso
- Progetto di destinazione e collegamento al servizio