Conectividad con servicios alojados en un entorno sin servidores
En esta página, se describe cómo puedes configurar Integration Connectors para conectarte a servicios alojados en entornos sin servidores, como Cloud Run en Google Cloud.
En la siguiente imagen, se muestra la configuración de conectividad de red privada de Integration Connectors a un servicio alojado en el entorno de Cloud Run en Google Cloud:
En esta página, se supone que estás familiarizado con los siguientes conceptos:
- Adjuntos de extremos
- Zonas administradas
- Private Service Connect (PSC)
- Balanceador de cargas de Google Cloud
Consideraciones
Cuando crees un archivo adjunto de servicio de PSC, ten en cuenta los siguientes puntos clave:
- El adjunto de servicio de PSC y el balanceador de cargas se crean en subredes diferentes. dentro de la misma VPC. Específicamente, el adjunto de servicio siempre se crea en una subred NAT.
- El tráfico del balanceador de cargas y del sondeo de verificación de estado debe enviarse al mismo puerto.
- Configurar las reglas de firewall para facilitar el flujo de tráfico
Reglas de entrada
El tráfico de la subred del archivo adjunto del servicio de PSC debe llegar a tu servicio de backend.
Reglas de salida
El tráfico de salida está habilitado de forma predeterminada en un proyecto de Google Cloud, a menos que se configuren reglas de denegación específicas.
- Todos tus componentes de Google Cloud, como el adjunto de servicio de PSC y el balanceador de cargas, deben estar en la misma región.
Crea un adjunto de servicio de PSC
Para establecer la conectividad privada de Integration Connectors, tu servicio debe exponerse a Integration Connectors mediante un adjunto de servicio de PSC. Un archivo adjunto de servicio siempre usa un balanceador de cargas. Por lo tanto, si tu servicio no está detrás de un balanceador de cargas, debes configurar uno.
- Crear un balanceador de cargas. Si ya tienes un balanceador de cargas, omite este paso.
Sigue las instrucciones que se indican en Configura un balanceador de cargas de aplicaciones interno regional con Cloud Run para crear un balanceador de cargas de aplicaciones con un NEG sin servidores como backend.
- Crea el adjunto de servicio
- Crea una subred para la NAT de PSC. El siguiente comando crea una subred con el nombre
psc-nat-subnet1
y el propósitoPRIVATE_SERVICE_CONNECT
.gcloud compute networks subnets create psc-nat-subnet1 \ --network=VPC_NETWORK --range=SUBNET_RANGE_1 \ --purpose=PRIVATE_SERVICE_CONNECT
- Crea una regla de firewall para permitir el tráfico de la NAT de PSC al balanceador de cargas.
gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \ --direction=INGRESS --network=VPC_NETWORK \ --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
- Crea un adjunto de servicio con aprobación explícita.
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1
En este comando, LIMIT es el límite de conexión del proyecto. El límite de conexiones es la cantidad de usuarios Extremos de PSC que se pueden conectar a este servicio. Para obtener SERVICE_DIRECTORY_PROJECT_ID, sigue estos pasos:
-
Puedes crear el archivo adjunto de servicio de PSC de modo que acepte solicitudes solo de los proyectos de Google Cloud especificados. Sin embargo, para hacerlo, necesitarás el ID del proyecto del directorio de servicios asociado a tu proyecto de Google Cloud. Para obtener el ID del proyecto del directorio de servicios, puedes usar la API de List Connections, como se muestra a continuación ejemplo.
Sintaxis
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Reemplaza lo siguiente:
- CONNECTORS_PROJECT_ID: El ID de tu proyecto de Google Cloud en el que creaste la conexión.
Ejemplo
En este ejemplo, se obtiene el ID del proyecto del directorio de servicios para el proyecto
connectors-test
de Google Cloud.curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
Si ejecutas este comando en la terminal, se mostrará un resultado similar al siguiente:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
En el resultado de muestra, para el proyecto
connectors-test
de Google Cloud, el ID del proyecto del directorio de servicios esabcdefghijk-tp
.
-
- Crea una subred para la NAT de PSC. El siguiente comando crea una subred con el nombre
Crea un adjunto de extremo para consumir el adjunto de servicio de PSC
Adjunto de extremo como dirección IPSi necesitas instrucciones para crear un adjunto de extremo como una dirección IP, consulta Crea un adjunto de extremo como una dirección IP.
Adjunto de extremo como nombre de hostEn algunos casos, como los backends habilitados con TLS, el destino requiere que uses de host en lugar de IP privadas para realizar la validación de TLS. En los casos en que un dominio Se usa un DNS en lugar de una dirección IP para el destino del host, además de crear un extremo como una dirección IP, también debes configurar zonas administradas. Si deseas obtener instrucciones para crear un archivo adjunto de extremo como nombre de host, consulta Crea un archivo adjunto de extremo como nombre de host.
Más adelante, cuando configures tu conexión para usar el adjunto de extremo, podrás seleccionarlo.
Configura una conexión para usar el adjunto de extremo
Ahora que creaste un adjunto de extremo, úsalo en tu conexión. Cuando crees una conexión nueva o actualices una existente, en la sección Destinos, selecciona Adjunto de extremo como Tipo de destino y selecciona el archivo adjunto de extremo que creaste en la lista Adjunto de extremo.
Si creaste una zona administrada, selecciona Dirección de host como Tipo de destino y usa el registro A que creaste cuando creaste la zona administrada.
Sugerencias para solucionar problemas
Sigue los lineamientos que se indican en esta sección para evitar problemas comunes:
- Para verificar que el archivo adjunto del extremo esté configurado correctamente y que se haya establecido la conexión de PSC, verifica el estado de la conexión. Para obtener más información, consulta Cómo verificar la conexión del archivo adjunto del extremo.
- Si quieres obtener información para solucionar problemas relacionados con el balanceador de cargas, consulta Cómo solucionar problemas relacionados con balanceadores de cargas de aplicaciones internos.
- Prueba de conectividad de Google Cloud se puede usar para identificar brechas en tu configuración de red. Para obtener más información, consulta Crea y ejecuta pruebas de conectividad.