Conectarse desde Cloud Run

En esta guía de inicio rápido se explica cómo desplegar una aplicación de ejemplo en un servicio de Cloud Run mediante la consola Google Cloud y una aplicación cliente. Esta aplicación de ejemplo conecta Cloud Run con AlloyDB para PostgreSQL.

Código de aplicación de ejemplo

El código de la aplicación de ejemplo de esta guía de inicio rápido se encuentra en el directorio examples/go del repositorio de GitHub GoogleCloudPlatform/alloydb-auth-proxy.

La aplicación está escrita en el lenguaje de programación Go y sirve como herramienta para recoger votos. La lógica principal se encuentra en el archivo main.go, que inicia un servidor web y gestiona las solicitudes de los usuarios.

La conexión de la base de datos se configura mediante variables de entorno, que se definen al crear el servicio de Cloud Run. Estas variables indican a la aplicación cómo conectarse a tu instancia de AlloyDB, incluido el nombre de la base de datos, el usuario, la contraseña y la dirección IP de la instancia. El código usa estas variables para establecer una conexión segura con tu base de datos de AlloyDB.

Repositorio del código

El repositorio alloydb-auth-proxy contiene el proxy de autenticación de AlloyDB, una herramienta que te ayuda a conectarte de forma segura a tus instancias de AlloyDB. El repositorio también incluye bibliotecas y ejemplos relacionados, como la aplicación Go que se usa en esta guía de inicio rápido.

No necesitas todo el proyecto alloydb-auth-proxy para conectarte a AlloyDB desde Cloud Run. El comando cloudshell_open clona todo el repositorio para tu comodidad, pero los únicos archivos que se usan para compilar el contenedor de esta guía de inicio rápido se encuentran en el directorio examples/go.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Habilita las APIs de Cloud necesarias para ejecutar una aplicación de ejemplo de AlloyDB para PostgreSQL en Cloud Run.

    Habilitar las APIs

    1. En el paso Confirm project (Confirmar proyecto), haz clic en Next (Siguiente) para confirmar el nombre del proyecto en el que vas a hacer cambios.

    2. En el paso Habilitar APIs, haz clic en Habilitar para habilitar lo siguiente:

      • API de AlloyDB
      • API Admin de Cloud Run
      • API de Compute Engine
      • API de Cloud Build
      • API de Container Registry
      • API Service Networking
      • API Cloud Resource Manager
  7. Asegúrate de tener un clúster de AlloyDB y una instancia principal. Para obtener más información, consulta Crear un clúster y su instancia principal.
  8. Conectarse a la instancia y crear una base de datos

    1. Si no estás en la página Descripción general del clúster que acabas de crear, ve a la página Clústeres de la consola de Google Cloud .

      Ir a Clústeres

    2. Para ver la página Resumen del clúster, haz clic en el nombre del clúster my-cluster.

    3. En el menú de navegación, haz clic en AlloyDB Studio.

    4. En la lista Base de datos de la página Iniciar sesión en AlloyDB Studio, selecciona postgres.

    5. En la lista desplegable Usuario, selecciona postgres.

    6. En el campo Password (Contraseña), introduce la contraseña que creaste en Crear un clúster y su instancia principal.

    7. Haz clic en Autenticar. En el panel Explorador se muestra una lista de los objetos de la base de datos.

    8. En la pestaña Editor 1, crea una base de datos:

      CREATE DATABASE quickstart_db;
      
    9. Haz clic en Ejecutar. Espera a que aparezca el mensaje Statement executed successfully en el panel Resultados.

    Buscar el ID de un proyecto

    1. Ve a la página Panel de control de la Google Cloud consola.

      Ir al panel de control

    2. Busca el ID del proyecto en la tarjeta Información del proyecto.

    3. Anota el ID de tu proyecto. Lo necesitarás para el siguiente paso de esta guía de inicio rápido.

    Rellenar Artifact Registry con una imagen de la aplicación de ejemplo

    1. En la Google Cloud consola, abre Cloud Shell.

      Abrir Cloud Shell

    2. En Cloud Shell Editor, usa el siguiente comando para clonar el repositorio con el código de la aplicación de ejemplo de GitHub:

      cloudshell_open --repo_url \
      "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \
      --dir \
      "examples/go" \
      --force_new_clone
    3. Crea un repositorio en Artifact Registry para las imágenes de Docker:

      gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_ID

      Sustituye PROJECT_ID por el ID de tu proyecto.

    4. En el cuadro de diálogo Autorizar Cloud Shell, haz clic en Autorizar. Esta petición no aparece si ya has completado este paso.

    5. Para compilar un contenedor Docker y publicarlo en Artifact Registry, usa el siguiente comando:

       gcloud builds submit --tag  us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_ID

      Sustituye PROJECT_ID por el ID de tu proyecto.

      El código de la aplicación de ejemplo de esta guía de inicio rápido se encuentra en el directorio examples/go del repositorio de GitHub GoogleCloudPlatform/alloydb-auth-proxy. El comando cloudshell_open del paso anterior clona automáticamente este repositorio y abre el directorio correcto.

    Buscar la dirección IP de la nueva instancia

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

      Ir a Clústeres

    2. Busca la fila de la tabla cuyo Nombre de recurso sea my-primary.

    3. Anota la dirección IP privada de esa fila. Lo necesitarás para el siguiente paso de esta guía de inicio rápido.

      El formato de ejemplo de la dirección IP es 172.19.209.2:5432.

    Crear un servicio para Cloud Run

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

      Ir a Cloud Run

    2. En la pestaña Servicios, haz clic en Implementar contenedor.

    3. En la página Crear servicio, selecciona la opción Desplegar una revisión desde una imagen de contenedor que ya existe.

    4. En el campo URL de imagen del contenedor, haz clic en Seleccionar.

    5. En el panel Seleccionar imagen de contenedor, sigue estos pasos:

      1. Selecciona la pestaña Registro de artefactos.
      2. Despliega us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.
      3. Despliega run-sql.
      4. Selecciona la imagen más reciente.
      5. Haz clic en Seleccionar.
    6. En el campo Nombre del servicio, introduce quickstart-service.

    7. Comprueba que us-central1 (Iowa) esté seleccionada de forma predeterminada en la lista Región.

    8. En la sección Autenticación, selecciona Permitir acceso público.

    9. En la sección Asignación y precios de la CPU, asegúrate de que esté seleccionada la opción La CPU solo se asigna durante el procesamiento de solicitudes.

    10. Despliega la sección Contenedores, volúmenes, redes y seguridad.

    11. En la pestaña Contenedor(es), selecciona la pestaña Variables y secretos y sigue estos pasos:

      1. En la sección Variables de entorno, haga clic en Añadir variable.

      2. Introduce lo siguiente en los campos Name y Value:

        • DB_NAME: quickstart_db
        • DB_USER: postgres
        • DB_PASS: la contraseña que introdujiste al crear el clúster.
        • DB_PORT: 5432
        • INSTANCE_HOST: la dirección IP de la instancia principal de tu clúster, que has encontrado en Buscar la dirección IP de la nueva instancia. No incluyas el número de puerto. Por ejemplo, usa 172.19.209.2 en lugar de 172.19.209.2:5432.
    12. Cambie de la pestaña Contenedores a la pestaña Redes y siga estos pasos:

      1. Marca la casilla Conectar a una VPC para el tráfico saliente.

      2. Selecciona la opción Enviar tráfico directamente a una VPC.

      3. En la lista desplegable Red, elige el valor default.

      4. En la lista desplegable Subred, comprueba que esté seleccionado el valor default.

    13. Haz clic en Crear para crear el servicio de Cloud Run.

      Una vez que se haya desplegado el servicio de Cloud Run, en la página quickstart-service se mostrará la URL de la aplicación de ejemplo en el campo URL.

      La aplicación usa AlloyDB como almacén de datos.

    Ver la aplicación de ejemplo

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

      Ir a Cloud Run

    2. En la página quickstart-service, haz clic en Copiar al portapapeles para copiar la URL de la aplicación.

    3. En una nueva pestaña del navegador, pega la URL de la aplicación copiada y haz clic en Intro.

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

    Limpiar el clúster

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

      Ir a Clústeres

    2. Junto al clúster my-cluster que quieras eliminar, haz clic en Acciones y, a continuación, en Eliminar.

    3. En el cuadro de diálogo Eliminar clúster que aparece, escribe my-cluster en el campo my-cluster para confirmar que quieres eliminarlo.

    4. Haz clic en Eliminar.

    Limpiar el servicio

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

      Ir a Cloud Run

    2. Seleccione la casilla situada junto al nombre del servicio quickstart-service.

    3. En la parte superior de la página Cloud Run, haz clic en Eliminar.

    4. En el cuadro de diálogo Eliminar quickstart-service que aparece, haz clic en Eliminar para confirmar.

    Siguientes pasos