Conectarse desde Cloud Run

En esta guía de inicio rápido, se explica el proceso para implementar una aplicación de muestra en un servicio de Cloud Run con la consola Google Cloud y una aplicación cliente. Esta aplicación de ejemplo conecta Cloud Run a AlloyDB para PostgreSQL.

Código de la aplicación de ejemplo

El código de la aplicación de muestra para 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 recopilar votos. La lógica principal se encuentra en el archivo main.go, que inicia un servidor web y controla las solicitudes del usuario.

La conexión a la base de datos se configura con variables de entorno, que se configuran cuando se crea el servicio de Cloud Run. Estas variables le indican a la aplicación cómo conectarse a tu instancia de AlloyDB, incluidos 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 de 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 en 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 comenzar

  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 API de Cloud necesarias para ejecutar una aplicación de ejemplo de AlloyDB para PostgreSQL en Cloud Run.

    Habilita las APIs

    1. En el paso Confirmar proyecto, haz clic en Siguiente para confirmar el nombre del proyecto en el que realizarás cambios.

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

      • API de AlloyDB
      • API de Cloud Run Admin
      • API de Compute Engine
      • API de Cloud Build
      • API de Container Registry
      • API de Service Networking
      • API de Cloud Resource Manager
  7. Asegúrate de tener un clúster y una instancia principal de AlloyDB. Para obtener más información, consulta Crea un clúster y su instancia principal.
  8. Conéctate a tu instancia y crea 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 en la consola de Google Cloud .

      Ir a los clústeres

    2. Para mostrar la página Descripción general 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 Accede a AlloyDB Studio, selecciona postgres.

    5. En la lista desplegable Usuario, selecciona postgres.

    6. En el campo Contraseña, ingresa la contraseña que creaste en Crea un clúster y su instancia principal.

    7. Haz clic en Autenticar. En el panel Explorador, se muestra una lista de los objetos de tu 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.

    Encuentra el ID del proyecto

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

      Ir al panel

    2. Busca el ID del proyecto en la tarjeta Project info.

    3. Toma nota del ID de tu proyecto. La necesitarás para el siguiente paso de esta guía de inicio rápido.

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

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

      Abra Cloud Shell

    2. En el editor de Cloud Shell, usa el siguiente comando para clonar el repositorio con el código de la aplicación de ejemplo desde 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

      Reemplaza PROJECT_ID por el ID de tu proyecto.

    4. En el diálogo Autorizar Cloud Shell, haz clic en Autorizar. Este mensaje no aparece si ya realizaste este paso.

    5. Para compilar un contenedor de 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

      Reemplaza PROJECT_ID por el ID de tu proyecto.

      El código de la aplicación de muestra para 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 por ti.

    Busca la dirección IP de tu instancia nueva

    1. En la consola de Google Cloud , ve a la página Clústeres.

      Ir a los clústeres

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

    3. Anota la dirección IP privada de esa fila. La 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.

    Crea un servicio para Cloud Run

    1. En la consola de Google Cloud , 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 Implementar una revisión desde una imagen de contenedor existente.

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

    5. En el panel Selecciona una imagen de contenedor, completa los siguientes pasos:

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

    7. Asegúrate de que us-central1 (Iowa) esté seleccionado en la lista Región de forma predeterminada.

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

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

    10. Expande la sección Contenedores, volúmenes, Herramientas de redes y seguridad.

    11. En la pestaña Contenedores, selecciona la pestaña Variables y secretos y completa los siguientes pasos:

      1. En la sección Variables de entorno, haz clic en Agregar variable.

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

        • DB_NAME: quickstart_db
        • DB_USER: postgres
        • DB_PASS: Es la contraseña que ingresaste cuando creaste el clúster.
        • DB_PORT: 5432
        • INSTANCE_HOST: La dirección IP de la instancia principal de tu clúster, que encontraste en Cómo encontrar la dirección IP de tu instancia nueva No incluyas el número de puerto; por ejemplo, establece 172.19.209.2 y no 172.19.209.2:5432.
    12. Cambia de la pestaña Contenedores a la pestaña Redes y completa los siguientes pasos:

      1. Selecciona la casilla de verificación Conéctate 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, asegúrate de que esté seleccionado el valor default.

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

      Después de implementar el servicio de Cloud Run, la página quickstart-service muestra la URL de la aplicación de ejemplo en el campo URL.

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

    Consulta la aplicación de ejemplo

    1. En la consola de Google Cloud , 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 que copiaste y haz clic en Intro.

    Realiza una 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.

    Limpia el clúster

    1. En la consola de Google Cloud , ve a la página Clústeres.

      Ir a los clústeres

    2. Junto al clúster my-cluster que deseas borrar, haz clic en Acciones y, luego, en Borrar.

    3. En el cuadro de diálogo Borrar clúster que aparece, escribe my-cluster en el campo my-cluster para confirmar que deseas borrarlo.

    4. Haz clic en Borrar.

    Limpia el servicio

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

      Ir a Cloud Run

    2. Selecciona la casilla de verificación junto al nombre del servicio quickstart-service.

    3. Haz clic en Borrar en la parte superior de la página de Cloud Run.

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

    ¿Qué sigue?