En esta página se describe cómo usar Private Service Connect para conectarse a una instancia de Cloud SQL.
Puedes usar Private Service Connect para conectarte a una instancia principal de Cloud SQL o a cualquiera de sus réplicas de lectura desde varias redes de nube privada virtual (VPC) que pertenezcan a diferentes grupos, equipos, proyectos u organizaciones.
Antes de empezar
La compatibilidad con el uso de Private Service Connect con una instancia de Cloud SQL está disponible para las versiones 416.0.0 y posteriores de gcloud CLI
.
Funciones de usuario
En la siguiente tabla se proporciona información sobre los roles necesarios para usar Private Service Connect con una instancia de Cloud SQL:
Rol | Descripción |
---|---|
compute.networkAdmin |
Otorga control total sobre la red de VPC que inicia una conexión con una instancia de Cloud SQL. Puedes crear y gestionar direcciones IP, reglas de cortafuegos, políticas de conexión de servicios y puntos finales de Private Service Connect. Si usas Private Service Connect para conectarte a una instancia de Cloud SQL desde varias redes VPC, cada red tendrá su propio administrador. |
dns.admin |
Otorga control total sobre los recursos de Cloud DNS, incluidas las zonas y los registros DNS. |
cloudsql.admin |
Proporciona un control total de una instancia de Cloud SQL y controla la instancia durante su ciclo de vida. |
cloudsql.instanceUser |
Proporciona acceso a la instancia de Cloud SQL. Si te conectas a través del cliente del proxy de autenticación de Cloud SQL, debes tener el rol Cliente de Cloud SQL. Si te conectas directamente, no necesitas ningún rol ni permiso de gestión de identidades y accesos (IAM). |
Crear un endpoint de Private Service Connect
Los puntos finales de Private Service Connect son direcciones IP internas de una red de VPC de consumidor a las que pueden acceder directamente los clientes de esa red. Los clientes pueden usar estos endpoints para conectarse a instancias de Cloud SQL.
Puedes hacer que Cloud SQL cree un endpoint de Private Service Connect automáticamente en tu VPC o puedes crear el endpoint manualmente.
Crear el endpoint automáticamente
Para que Cloud SQL cree automáticamente el endpoint de Private Service Connect, haz lo siguiente:
Crea una política de conexión de servicio en tu red de VPC. Con esta política, puedes aprovisionar endpoints de Private Service Connect automáticamente.
Crea una instancia de Cloud SQL con Private Service Connect habilitado y configúrala para que cree endpoints de Private Service Connect automáticamente.
Obtén el endpoint de la instancia. De esta forma, puedes usar el endpoint para conectarte a la instancia.
Crear una política de conexión de servicio
Una política de conexión de servicio te permite autorizar una clase de servicio específica para que cree un punto final de Private Service Connect en tu red de VPC de consumidor. Puedes usar la política de conexión de servicio para permitir que Cloud SQL cree automáticamente endpoints de Private Service Connect.
Puedes crear una política de conexión de servicio mediante la Google Cloud consola, la CLI de gcloud o la API.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haga clic en la pestaña Políticas de conexión.
Haz clic en Crear política de conexión.
Introduce un Nombre para la política de conexión.
Para especificar la clase de servicio, haz lo siguiente:
- En Clase de servicio de origen, selecciona Servicios de Google.
- En el menú Clase de servicio, selecciona
google-cloud-sql
, ya que Cloud SQL es el servicio gestionado de la política de conexión.
En la sección Ámbito de los endpoints de destino, selecciona una red y una región a las que se aplique esta política.
En la sección Política, seleccione una o varias subredes en el menú Subredes. Las subredes se usan para asignar direcciones IP a los endpoints.
Opcional: Especifica un límite de conexión para la política. El límite determina cuántos endpoints se pueden crear mediante esta política de conexión. Si no especificas un límite de conexiones, no habrá ninguno.
Haz clic en Crear política.
gcloud
Para crear una política de conexión de servicio, usa el comando service-connection-policies create
.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --network=NETWORK \ --project=PROJECT_ID \ --region=REGION \ --service-class=SERVICE_CLASS \ --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \ --psc-connection-limit=LIMIT \ --description="DESCRIPTION" \ --producer-instance-location=PRODUCER_INSTANCE_LOCATION \ --allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL
Haz los cambios siguientes:
POLICY_NAME
: el nombre de tu política de conexión de servicio.NETWORK
: la red a la que se aplica esta política.PROJECT_ID
: el ID o el número del proyecto de la red VPC. En el caso de las redes de VPC compartida, debes implementar políticas de conexión de servicio en el proyecto host, ya que estas políticas no se admiten en los proyectos de servicio.REGION
: la región a la que se aplica esta política. Debe haber una política para cada región en la que quiera automatizar la conectividad de los servicios.SERVICE_CLASS
: identificador de recurso de la clase de servicio proporcionado por el productor. En Cloud SQL, la clase de servicio esgoogle-cloud-sql
.SUBNETS
: una o varias subredes de consumidor normales que se usan para asignar direcciones IP a los puntos finales de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y se eliminan instancias de servicio gestionado. Las subredes deben estar en la misma región que la política de conexión de servicio. Si varias políticas de conexión comparten la misma región, puedes reutilizar la misma subred en estas políticas. Puede introducir varias subredes en una lista separada por comas.LIMIT
: el número máximo de endpoints que puedes crear con esta política. Si no especificas ningún límite, no habrá ninguno.DESCRIPTION
: una descripción opcional de la política de conexión de servicios.PRODUCER_INSTANCE_LOCATION
: usa esta marca opcional para especificar si se debe autorizar una jerarquía personalizada de las ubicaciones de una instancia de Cloud SQL. Solo puedes asignar uno de los siguientes valores aPRODUCER_INSTANCE_LOCATION
:custom-resource-hierarchy-levels
: la instancia debe estar ubicada en uno de los proyectos, carpetas u organizaciones que proporciones como valor del parámetroallowed-google-producers-resource-hierarchy-level
.none
: la instancia está en el mismo proyecto que la política de conexión de servicio.
RESOURCE_HIERARCHY_LEVEL
: una lista de proyectos, carpetas u organizaciones en las que se encuentra la instancia. Esta lista tiene el formatoprojects/PROJECT_ID
,folders/FOLDER_ID
oorganizations/ORGANIZATION_ID
.
Por ejemplo, el siguiente comando crea una política de conexión de servicio para la clase de servicio
google-cloud-sql
que asigna direcciones IP de la subred managed-services
. Se pueden crear un máximo de 10 endpoints de Private Service Connect con esta política. Los endpoints deben crearse en proyectos que estén en la misma organización que la instancia de servicio gestionado. La instancia de Cloud SQL se encuentra en el proyecto myproject
.
gcloud network-connectivity service-connection-policies create cloud-sql-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-sql \ --subnets=managed-service-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-google-producers-resource-hierarchy-level=projects/myproject
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.REGION
: la región de tu política de conexión de servicio.POLICY_NAME
: el nombre de tu política de conexión de servicio.DESCRIPTION
: una descripción opcional de tu política de conexión de servicios.NETWORK
: la red de tu política de conexión de servicio.LIMIT
: el número máximo de endpoints que puedes crear con esta política. Si no especificas ningún límite, no habrá ninguno.SUBNETS
: una o varias subredes de consumidor normales que se usan para asignar direcciones IP a los puntos finales de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y se eliminan instancias de servicio gestionado. Las subredes deben estar en la misma región que la política de conexión de servicio. Si varias políticas de conexión comparten la misma región, puedes reutilizar la misma subred en estas políticas. Puedes introducir varias subredes en una lista separada por comas.SERVICE_CLASS
: identificador de recurso de la clase de servicio proporcionado por el productor.
Método HTTP y URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
Cuerpo JSON de la solicitud:
{ "description": "DESCRIPTION", "network": "projects/PROJECT_ID/global/networks/NETWORK", "pscConfig": { "limit": "LIMIT", "subnetworks": [ "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" ] }, "serviceClass": "SERVICE_CLASS" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata", "createTime": "2023-08-15T16:59:29.236110917Z", "target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Crear una instancia de Cloud SQL
Puedes crear una instancia con Private Service Connect habilitado para la instancia y configurar la instancia para que cree endpoints automáticamente mediante la CLI de gcloud o la API.
gcloud
Para crear una instancia con Private Service Connect habilitado, usa el comando gcloud sql instances create
:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- REGION_NAME: el nombre de la región de la instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona de la región seleccionada.ZONAL
: no ofrece ninguna función de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta Configurar una instancia para que tenga alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- DATABASE_VERSION: la versión de la base de datos de la instancia (por ejemplo,
POSTGRES_13
). - CONSUMER_NETWORK: la ruta a la red de VPC desde la que se deben crear los puntos finales de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. CONSUMER_PROJECT: proyecto en el que se crea el endpoint de Private Service Connect. Si utilizas una red de VPC compartida, puede ser el proyecto del host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear puntos finales de Private Service Connect manualmente en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia.
- REGION_NAME: el nombre de la región de la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona de la región seleccionada.ZONAL
: no ofrece ninguna función de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta Configurar una instancia para que tenga alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- CONSUMER_NETWORK: la red de VPC en la que quieres permitir la creación automática de endpoints de Private Service Connect.
- PARENT_PROJECT: el proyecto que contiene la red CONSUMER_NETWORK. Si no especificas otro proyecto en CONSUMER_PROJECT, los endpoints se crearán automáticamente en PARENT_PROJECT .
CONSUMER_PROJECT: opcional. Solo debes especificarlo si CONSUMER_NETWORK es una red de VPC compartida y quieres permitir la creación automática de puntos finales de Private Service Connect en un proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear puntos finales de Private Service Connect manualmente en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "POSTGRES_13", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": [ { "consumerProject":"CONSUMER_PROJECT", "consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK" } ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Recuperar el endpoint
Si obtienes la dirección IP interna, que es el endpoint de Private Service Connect de una instancia, puedes usar este endpoint para conectarte a la instancia.
gcloud
Para ver información sobre una instancia, incluida la dirección IP que es el punto final de Private Service Connect de la instancia, usa el comando gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL. Si esta instancia tiene habilitado Private Service Connect, los puntos finales de Private Service Connect de las redes de VPC pueden conectarse a ella.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
En la respuesta, anota el valor que aparece junto al campo pscConfig:pscAutoConnections:ipAddress
. Este valor es la dirección IP interna, que también es el endpoint de Private Service Connect de la instancia.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL. Si esta instancia tiene habilitado Private Service Connect, los puntos finales de Private Service Connect de las redes de VPC pueden conectarse a ella.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": { consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK", consumerNetworkStatus:"CONSUMER_NETWORK_STATUS", consumerProject:"CONSUMER_PROJECT", ipAddress:"IP_ADDRESS", status:"STATUS" }, "pscEnabled": true }, "ipv4Enabled": false }, }
En las instancias en las que Private Service Connect está habilitado, se incluyen los siguientes campos:
allowedConsumerProjects
: lista de los proyectos permitidos de la instancia. Puedes crear endpoints de Private Service Connect desde cualquier red de VPC de estos proyectos hasta la vinculación de servicio de la instancia.pscAutoConnections
: la red de VPC permitida, el estado de la política de conexión de servicio y el estado de la dirección IP que es el endpoint de la instancia.pscEnabled
: indica si una instancia tiene habilitado Private Service Connect.
Para ver cómo crear la solicitud de API REST subyacente de esta tarea, consulta la página instances:get.
Crear el endpoint manualmente
Para crear el endpoint de Private Service Connect manualmente, haz lo siguiente:
Crea una instancia de Cloud SQL con Private Service Connect habilitado para la instancia.
Obtén el URI de la vinculación de servicio. Esta URI se usa para crear el endpoint de Private Service Connect.
Reserva una dirección IP interna para el punto final de Private Service Connect y crea un punto final con esa dirección.
Crear una instancia de Cloud SQL
Puedes crear una instancia con Private Service Connect habilitado mediante la CLI de gcloud, Terraform o la API.
gcloud
Para crear una instancia con Private Service Connect habilitado, usa el comando gcloud sql instances create
:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- REGION_NAME: el nombre de la región de la instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad en la instancia. En este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona de la región seleccionada.ZONAL
: no ofrece ninguna función de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta Configurar una instancia para que tenga alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- DATABASE_VERSION: la versión de la base de datos de la instancia (por ejemplo,
POSTGRES_13
).
Terraform
Para crear una instancia con Private Service Connect habilitado, usa el recurso de Terraform google_sql_database_instance
.
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia.
- REGION_NAME: el nombre de la región de la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona de la región seleccionada.ZONAL
: no ofrece ninguna función de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta Configurar una instancia para que tenga alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "POSTGRES_13", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Obtener el adjunto de servicio
Después de crear una instancia de Cloud SQL con Private Service Connect habilitado, obtén el URI de la vinculación de servicio y úsalo para crear el endpoint de Private Service Connect.
gcloud
Para ver información de resumen sobre una instancia con Private Service Connect habilitado, como el campo pscServiceAttachmentLink
, que muestra el URI que apunta al archivo adjunto de servicio de la instancia, usa el comando gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL a la que se pueden conectar los endpoints de Private Service Connect en redes VPC.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
En el siguiente ejemplo se muestra un resultado de muestra de este comando:
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ ... pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" }
El campo pscServiceAttachmentLink
muestra el URI que apunta a la vinculación de servicio de la instancia.
Crear un endpoint de Private Service Connect
Puedes reservar una dirección IP interna para el endpoint de Private Service Connect y crear un endpoint con esa dirección. Para crear el endpoint, necesitas el URI de adjunto de servicio y los proyectos permitidos para la instancia.
gcloud
Para reservar una dirección IP interna para el punto final de Private Service Connect, usa el comando
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_URI \ --addresses=INTERNAL_IP_ADDRESS
Haz las siguientes sustituciones:
- ADDRESS_NAME: el nombre de la dirección IP interna.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto del endpoint.
- REGION_NAME: nombre de la región del endpoint.
- SUBNET_URI: el nombre de la subred de la dirección IP. El formato es
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME
. Si la subred está en una red de VPC compartida, te recomendamos que SUBNET_PROJECT_ID sea el proyecto host. - INTERNAL_IP_ADDRESS: la dirección IP que quieres reservar. Esta dirección IP debe estar dentro del intervalo de IP principal de la subred. La dirección IP puede ser una dirección RFC 1918 o una subred con intervalos que no sean RFC. Si no quieres especificar la dirección IP porque quieres que Google Cloud reserve una dirección IP disponible en la subred, omite esta marca.
Para verificar que la dirección IP está reservada, usa el comando
gcloud compute addresses list
:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
En la respuesta, comprueba que la dirección IP tenga el estado
RESERVED
.Para crear el endpoint de Private Service Connect y dirigirlo a la vinculación de servicio de Cloud SQL, usa el comando
gcloud compute forwarding-rules create
:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_URI \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
Haz las siguientes sustituciones:
- ENDPOINT_NAME: el nombre del endpoint
- NETWORK_URI: el URI de la red de VPC del endpoint. El formato es el siguiente:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
. Si quieres usar una red de VPC compartida, especifica el proyecto host como NETWORK_PROJECT_ID. - SERVICE_ATTACHMENT_URI: el URI del archivo adjunto de servicio