Conéctate a Cloud SQL para PostgreSQL desde Cloud Functions

Obtén información sobre cómo implementar una app de ejemplo en Cloud Functions que esté conectada a una instancia de PostgreSQL mediante la consola de Google Cloud y una aplicación cliente.

Si suponemos que completas todos los pasos de manera oportuna, los recursos creados en esta guía de inicio rápido suelen costar menos de un dólar (USD).

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita las API de Cloud necesarias para ejecutar una app de muestra de Cloud SQL en Cloud Functions.

    Consola

    Haz clic en Habilitar las API para habilitar las API necesarias en esta guía de inicio rápido.

    Habilita las API

    Esto habilita las siguientes API:

    • API de Cloud Functions
    • API de Cloud SQL Admin
    • API de Cloud Run Admin
    • API de Cloud Build
    • API de Artifact Registry
    • API de Eventarc
    • API de Compute Engine
    • API de Service Networking
    • API de Cloud Logging

    gcloud

    Haz clic en el siguiente botón para abrir Cloud Shell, que proporciona acceso de línea de comandos a tus recursos de Google Cloud directamente desde el navegador. Cloud Shell se puede usar para ejecutar los comandos de gcloud que se presentan en esta guía de inicio rápido.

    Abre Cloud Shell

    Ejecuta el siguiente comando de gcloud con Cloud Shell:

    gcloud services enable cloudfunctions.googleapis.com sqladmin.googleapis.com run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com eventarc.googleapis.com compute.googleapis.com servicenetworking.googleapis.com pubsub.googleapis.com logging.googleapis.com

    Este comando habilita las siguientes API:

    • API de Cloud Functions
    • API de Cloud SQL Admin
    • API de Cloud Run
    • API de Cloud Build
    • API de Artifact Registry
    • API de Eventarc
    • API de Compute Engine
    • API de Service Networking
    • API de Cloud Logging
  7. Agrega el rol de IAM Invocador de Cloud Functions a tu usuario.

    Agrega la función

Configura Cloud SQL

Crea una instancia de Cloud SQL

Crea una base de datos

Consola

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Seleccione quickstart-instance.
  3. En el menú de navegación de SQL, selecciona Bases de datos.
  4. Haga clic en Crear base de datos.
    1. En el campo Nombre de la base de datos del cuadro de diálogo Base de datos nueva, ingresa quickstart-db.
    2. Haz clic en Crear.

gcloud

Ejecuta el comando gcloud sql databases create para crear una base de datos.

gcloud sql databases create quickstart-db --instance=quickstart-instance

Crea un usuario

Consola

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Usuarios.
  4. Haz clic en Agregar cuenta de usuario.
  5. En la página Agrega una cuenta de usuario para quickstart-instance, agrega la siguiente información:
    • En el campo Nombre de usuario, ingresa quickstart-user.
    • En el campo Contraseña, especifica una contraseña para tu usuario de base de datos. Toma nota de esto para usarlo en un paso posterior de esta guía de inicio rápido.
  6. Haz clic en Agregar.

gcloud

Antes de ejecutar el siguiente comando, realiza los siguientes reemplazos:

  1. DB_PASS por una contraseña para el usuario de tu base de datos. Toma nota de esto para usarlo en un paso posterior de esta guía de inicio rápido.

Ejecuta el comando gcloud sql users create para crear el usuario.

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=DB_PASS

Los límites de extensión del nombre de usuario son los mismos en Cloud SQL y en PostgreSQL local.

Configura una cuenta de servicio de Cloud Functions

Configura la cuenta de servicio que usa Cloud Functions para que tenga la función de cliente de Cloud SQL con permisos para conectarse a Cloud SQL.

Consola

  1. En la consola de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. En la cuenta de servicio llamada Cuenta de servicio predeterminada de Compute Engine, haz clic en el ícono de lápiz.
  3. Haz clic en AGREGAR OTRA FUNCIÓN.
  4. Agrega la Función llamada Cliente de Cloud SQL.
  5. Haz clic en Guardar.

gcloud

  1. Ejecuta el siguiente comando de gcloud para obtener una lista de las cuentas de servicio del proyecto:
    gcloud iam service-accounts list
  2. Copia el CORREO ELECTRÓNICO de la cuenta de servicio de Compute Engine.
  3. Ejecuta el siguiente comando para agregar la función de cliente de Cloud SQL a la cuenta de servicio de Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

Cree una función

  1. En la consola de Google Cloud, ve a la página Cloud Functions.

    Ir a Cloud Functions

  2. Haga clic en Crear función.
  3. En Entorno, selecciona 2ª gen..
  4. En el campo Nombre de la función, ingresa quickstart-function.
  5. En la sección Autenticación, selecciona Permitir invocaciones no autenticadas.
  6. Haga clic en Siguiente.
  7. En el menú Entorno de ejecución, selecciona uno de los siguientes idiomas:
  8. Idioma Número de versión
    Go 1.20
    Java 17
    Node.js 18
    Python 3.10
  9. En el menú Código fuente, verifica que esté seleccionado el Editor directo. En este paso, usarás la función predeterminada proporcionada en el editor.

Implementa la función

  1. En la parte inferior de la página de Cloud Functions, haz clic en Implementar. La consola de Google Cloud te redirecciona a la página de detalles de la función.
  2. Cuando se complete la implementación de la función, haz clic en el vínculo URL para ver un navegador web que muestra el mensaje Hello, World!.

Implementa la app de muestra de Cloud SQL como una función

Configuras y, luego, implementas la app de muestra de Cloud SQL como una función en Cloud Functions. Primero, usa Cloud Shell para configurar y compilar la app de muestra. Luego, usa Cloud Functions para implementar la app de muestra.

Existen dos formas de configurar, compilar y, luego, implementar la aplicación según si creaste una instancia de Cloud SQL para PostgreSQL con una IP pública o una IP privada.

Configura una app de ejemplo de Cloud SQL

Implementa la app de ejemplo

Los pasos para implementar la muestra en Cloud Functions dependen del tipo de dirección IP que asignaste a tu instancia de Cloud SQL.

Limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Selecciona la instancia quickstart-instance para abrir la página de detalles de la instancia.
  3. En la barra de íconos en la parte superior de la página, haz clic en Borrar.
  4. En el cuadro de diálogo Borrar instancia, escribe quickstart-instance y, luego, haz clic en Borrar.
  5. En la consola de Google Cloud, ve a la página Cloud Functions.

    Ir a Cloud Functions

  6. Selecciona la casilla de verificación junto al nombre del servicio quickstart-function.
  7. Haz clic en Borrar en la parte superior de la página de Cloud Functions.

Pasos opcionales de limpieza

Si no usas la función de cliente de Cloud SQL que asignaste a la cuenta de servicio de Compute Engine, puedes quitarla.

  1. En la consola de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. Haz clic en el ícono de edición (que tiene forma de lápiz) en la cuenta de IAM llamada Cuenta de servicio predeterminada de Compute Engine.
  3. Borra la función cliente de Cloud SQL.
  4. Haz clic en Guardar.

Si no usas las API que se habilitaron como parte de esta guía de inicio rápido, puedes inhabilitarlas.

  • API que se habilitaron en esta guía de inicio rápido:
    • API de Compute Engine
    • API de Cloud SQL Admin
    • API de Cloud Run
    • API de Container Registry
    • API de Cloud Build
  1. En la consola de Google Cloud, ve a la página API.

    Ir a las API

  2. Selecciona la API que quieras inhabilitar y, luego, haz clic en el botón Inhabilitar API.

¿Qué sigue?

En función de tus necesidades, puedes obtener más información para crear instancias de Cloud SQL.

También puedes obtener información sobre cómo crear usuarios de PostgreSQL y bases de datos para tu instancia de Cloud SQL.

Si deseas obtener más información sobre los precios, consulta Precios de Cloud SQL para PostgreSQL.

Conoce más sobre:

  • La configuración de la instancia de Cloud SQL con una dirección IP pública
  • La configuración de la instancia de Cloud SQL con una dirección IP privada

Además, puedes obtener información sobre la conexión a una instancia de Cloud SQL desde otras aplicaciones de Google Cloud: