Estás consultando la documentación de Apigee y Apigee hybrid.
No hay documentación equivalente de
Apigee Edge para este tema.
Síntoma
Problemas de conectividad de red entre Apigee y un servicio de destino de salida conectado mediante Private Service Connect (PSC).
Mensaje de error
Si se produce un problema de conexión de red o un tiempo de espera de TCP entre Apigee y el servicio de destino, se mostrará una respuesta de error 503
y un error similar al siguiente si crea una sesión de depuración.
{"fault":{"faultstring":"The Service is temporarily unavailable","detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable","reason":"TARGET_CONNECT_TIMEOUT"}}}
Causas posibles
Causa | Descripción |
Regiones diferentes entre el adjunto de servicio y la instancia de Apigee | La región de la instancia de Apigee y la de ServiceAttachment son diferentes. |
Falta una regla de cortafuegos de entrada para la subred de PSC en el proyecto de destino | En el proyecto de destino, asegúrate de que haya una regla de cortafuegos de entrada que permita la dirección IP y el puerto del intervalo de subredes de PSC. |
Configuración incorrecta del archivo adjunto del servicio en el proyecto de destino | Verifica el adjunto de servicio en el proyecto de destino. |
Estado incorrecto del archivo adjunto del endpoint en Apigee | Verifica el Endpoint attachment en Apigee. |
Discordancia entre el puerto configurado en TargetEndpoint y el ILB | Asegúrate de que TargetEndpoint del proxy de API use el mismo puerto que expone el balanceador de carga interno (ILB) en el proyecto de destino. |
Causa: las regiones de la vinculación de servicio y la instancia de Apigee son diferentes
Diagnóstico
-
Comprueba la región de la instancia de Apigee mediante uno de los siguientes métodos:
- Para usar la interfaz de usuario clásica de Apigee, sigue estos pasos:
- Inicia sesión en la interfaz de usuario de Apigee.
- Haga clic en Administrar > Instancias.
- Haz clic en una instancia.
- Consulta la ubicación de alojamiento del tiempo de ejecución en el panel Detalles de la instancia.
- Usar la interfaz de Apigee en la Google Cloud consola:
-
En la Google Cloud consola, ve a la página Instancias de Apigee.
- Haz clic en una instancia.
- Consulta la ubicación de alojamiento del tiempo de ejecución en el panel Detalles de la instancia.
-
- Mediante una
llamada a la API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances"
Donde ORG_NAME es el nombre de la organización. Por ejemplo,
example-apigee-support
.Se devuelve algo similar a lo siguiente. La ubicación del alojamiento en tiempo de ejecución es el valor que se muestra en
location
a continuación. Por ejemplo,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" }
- Para usar la interfaz de usuario clásica de Apigee, sigue estos pasos:
-
Consulta la región Endpoint attachment (Asociación de endpoint) mediante una
llamada a la API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Donde:
- ORG_NAME es el nombre de la organización.
Por ejemplo,
example-apigee-support
. - ENDPOINT_ATTACHMENT_NAME es el nombre del archivo adjunto del endpoint. Por ejemplo,
example-ea
.
Se devuelve algo similar a lo siguiente. La región de adjuntos de endpoint es el valor que se muestra en
location
a continuación. Por ejemplo,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 es el nombre de la organización.
Por ejemplo,
-
Comprueba la región del adjunto de servicio en la consola de Cloud:
-
En la Google Cloud consola, ve a la página Private Service Connect .
- Consulta la columna Región para ver la ubicación.
-
Resolución
Asegúrate de que las regiones de la instancia de Apigee, el EndpointAttachment y el ServiceAttachment sean las mismas. Por ejemplo, asia-northeast1
.
Tal como se describe en la sección
Limitaciones,
no se admite el acceso global. Esto significa que los adjuntos de servicio y los adjuntos de endpoint deben estar en la misma región. Por ejemplo, si tu instancia de Apigee está en la región us-west1
, no puedes conectar servicios que estén en us-east2
ni en ninguna otra región.
Si las regiones son diferentes, se producirán problemas de conectividad entre Apigee y el servicio de destino.
Causa: falta la regla de cortafuegos de entrada de la subred de PSC en el proyecto de destino
Diagnóstico
Busca una regla de cortafuegos en el proyecto de destino que permita que la dirección IP del intervalo de subredes de PSC se conecte al servicio de destino:
-
En la Google Cloud consola, ve a la página Cortafuegos.
-
En el panel Reglas de cortafuegos de VPC, comprueba que haya una regla como la del ejemplo siguiente:
- Dirección: entrada
- Acción tras coincidencia: permitir
- Filtro de origen: intervalos de IPv4 o IPv6
- Intervalos de IP: intervalo de direcciones IP de la subred de PSC
(
ipCidrRange
) que puedes obtener con el siguiente comando de gcloud para describir la subred de PSC:gcloud compute networks subnets describe PSC_SUBNET_NAME --region=REGION
Donde:
-
PSC_SUBNET_NAME es el nombre de la subred de PCS.
Por ejemplo,
pscsub
. -
REGION es la ubicación. Por ejemplo,
asia-northeast1
.
Se devuelve algo similar a lo siguiente:
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 es el nombre de la subred de PCS.
Por ejemplo,
- Protocolos y puertos: deben aparecer en función de la configuración del servicio de destino.
Por ejemplo:

Resolución
Si la regla de firewall no está configurada, crea una subred de PSC tal como se describe en el paso 2 del artículo Crear un adjunto de servicio.
Causa: configuración incorrecta del adjunto de servicio en el proyecto de destino
Diagnóstico
Comprueba la región del Service attachment (Adjunto de servicio) mediante uno de los siguientes métodos:
- Usar la consola de Cloud:
-
En la Google Cloud consola, ve a la página Private Service Connect .
- Haz clic en Servicios publicados.
- Haz clic en un servicio.
- Consulta la fila Región para ver la ubicación.
-
- Usar un
gcloud command
:gcloud compute service-attachments describe SERVICE_ATTACHMENT --region=REGION
Donde:
-
SERVICE_ATTACHMENT es el nombre de la vinculación de servicio.
Por ejemplo,
gkebackend
. -
REGION es la ubicación. Por ejemplo,
asia-northeast1
.
Se devuelve algo similar a lo siguiente:
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 es el nombre de la vinculación de servicio.
Por ejemplo,
Resolución
-
Asegúrate de que el valor de
connectedEndpoints.endpoint
haga referencia al proyecto de arrendatario de Apigee y de que su estado seaACCEPTED
. Puedes encontrar el proyecto de inquilino mediante la API Organizations de Apigee:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME"
Donde ORG_NAME es el nombre de la organización. Por ejemplo,
example-apigee-support
.Se devuelve algo similar a lo siguiente. El ID se encuentra en un campo llamado
apigeeProjectId
. Por ejemplo,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" }
-
Asegúrate de que el adjunto de servicio tenga conectividad con el adjunto de endpoint, tal como se describe en
Patrones de redes de salida, comprobar y gestionar la conectividad de los adjuntos.
En la interfaz de usuario del paso 1 , asegúrate de que:
-
La fila Subredes hace referencia a la subred de PSC. Por ejemplo,
pscsub
. - La fila Destino hace referencia al balanceador de carga interno correcto de los back-ends de destino.
-
La fila Subredes hace referencia a la subred de PSC. Por ejemplo,
Causa: estado incorrecto del archivo adjunto del endpoint en Apigee
Diagnóstico
Consulta el endpoint adjunto en Apigee mediante una llamada a la API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/endpointAttachments/ENDPOINT_ATTACHMENT_NAME"
Donde:
-
ORG_NAME es el nombre de la organización. Por ejemplo,
example-apigee-support
. -
ENDPOINT_ATTACHMENT_NAME es el nombre del archivo adjunto del endpoint. Por ejemplo,
example-ea
.
Se devuelve algo similar a lo siguiente:
{ "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" }
Resolución
Asegúrate de lo siguiente:
state
esACTIVE
connectionState
esACCEPTED
-
serviceAttachment
hace referencia al proyecto de destino correcto y al nombre de la vinculación de servicio.
Causa: no coinciden el puerto configurado en TargetEndpoint y el ILB
Diagnóstico
- En el proyecto de destino, busca el puerto que expone la regla de reenvío mediante la consola de Cloud:
-
En la Google Cloud consola, ve a la página Private Service Connect .
- Haz clic en Servicios publicados.
- Haz clic en un servicio. Como se muestra en el siguiente ejemplo, se expone el puerto 80.
-
Resolución
Asegúrate de que el puerto 80 sea el mismo que el del TargetEndpoint
del proxy de API.
Para comprobarlo, ve al proxy de la API y verifica la URL TargetEndpoint
:
- Para usar la interfaz de usuario clásica de Apigee, haz lo siguiente:
- Inicia sesión en la interfaz de usuario de Apigee.
- Haga clic en Desarrollar > Proxies de API.
- Haz clic en un proxy.
- Haz clic en Desarrollar.
- En el panel XML, comprueba lo siguiente:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
- Usar la interfaz de usuario de Apigee en la Google Cloud consola:
-
En la Google Cloud consola, ve a la página Apigee.
- En el área Desarrollo de proxies, haz clic en Proxies de APIs.
- Haz clic en un proxy.
- Haz clic en Desarrollar.
- En el panel XML, comprueba lo siguiente:
<HTTPTargetConnection> <URL>http://7.0.4.2:80</URL> </HTTPTargetConnection>
-
Debe recoger información de diagnóstico
Si el problema persiste incluso después de seguir las instrucciones anteriores, recoge la siguiente información de diagnóstico y ponte en contacto con el equipo de Asistencia de Google Cloud:
- Organización de Apigee
- Entorno y proxy de API que presentan el problema
- Sesión de depuración descargada (proporcionará toda la información anterior)
- Se está usando un archivo adjunto de endpoint
- Vinculación de proyectos y servicios de destino