Conectarse desde Cloud Run
En esta guía de inicio rápido, se explica el proceso para implementar una aplicación de ejemplo 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 de 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
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- 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.
Roles obligatorios
Para obtener los permisos que necesitas para conectarte desde Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Administrador de la red de Compute (
roles/compute.networkAdmin) -
Administrador de AlloyDB (
roles/alloydb.admin) -
Administrador de Artifact Registry (
roles/artifactregistry.admin) -
Administrador de Cloud Run (
roles/run.admin) -
Administrador de almacenamiento (
roles/storage.admin) -
Editor de Cloud Build (
roles/cloudbuild.builds.editor) -
Administrador de Container Analysis (
roles/containeranalysis.admin) -
Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator) -
Escritor de métricas de Monitoring (
roles/monitoring.metricWriter) -
Dev Ops (
roles/iam.devOps)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Conéctate a tu instancia y crea una base de datos
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 .
Para mostrar la página Descripción general del clúster, haz clic en el nombre del clúster
my-cluster.En el menú de navegación, haz clic en AlloyDB Studio.
En la lista Base de datos de la página Accede a AlloyDB Studio, selecciona
postgres.En la lista desplegable Usuario, selecciona
postgres.En el campo Contraseña, ingresa la contraseña que creaste en Crea un clúster y su instancia principal.
Haz clic en Autenticar. En el panel Explorador, se muestra una lista de los objetos de tu base de datos.
En la pestaña Editor 1, crea una base de datos:
CREATE DATABASE quickstart_db;Haz clic en Ejecutar. Espera a que aparezca el mensaje
Statement executed successfullyen el panel Resultados.
Encuentra el ID del proyecto
Ve a la página Panel en la consola de Google Cloud .
Busca el ID del proyecto en la tarjeta Project info.
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 muestra
En la consola de Google Cloud , abre Cloud Shell.
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_cloneCrea 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_IDReemplaza
PROJECT_IDpor el ID de tu proyecto.En el diálogo Autorizar Cloud Shell, haz clic en Autorizar. Este mensaje no aparece si ya realizaste este paso.
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_IDReemplaza
PROJECT_IDpor 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/godel repositorio de GitHubGoogleCloudPlatform/alloydb-auth-proxy. El comandocloudshell_opendel paso anterior clona automáticamente este repositorio y abre el directorio correcto por ti.
Busca la dirección IP de tu instancia nueva
En la consola de Google Cloud , ve a la página Clústeres.
Busca en la tabla la fila cuyo Nombre del recurso sea
my-primary.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
En la consola de Google Cloud , ve a la página Cloud Run.
En la pestaña Servicios, haz clic en Implementar contenedor.
En la página Crear servicio, selecciona la opción Implementar una revisión desde una imagen de contenedor existente.
En el campo URL de la imagen del contenedor, haz clic en Seleccionar.
En el panel Selecciona una imagen de contenedor, completa los siguientes pasos:
- Selecciona la pestaña Artifact Registry.
- Expande
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - Expande
run-sql. - Selecciona la imagen más reciente.
- Haz clic en Seleccionar.
En el campo Nombre del servicio, ingresa
quickstart-service.Asegúrate de que
us-central1 (Iowa)esté seleccionado de forma predeterminada en la lista Región.En la sección Autenticación, selecciona Permitir acceso público.
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.
Expande la sección Contenedores, volúmenes, Herramientas de redes y seguridad.
En la pestaña Contenedores, selecciona la pestaña Variables y secretos y completa los siguientes pasos:
En la sección Variables de entorno, haz clic en Agregar variable.
Ingresa lo siguiente en los campos
NameyValue:DB_NAME:quickstart_dbDB_USER:postgresDB_PASS: Es la contraseña que ingresaste cuando creaste el clúster.DB_PORT:5432INSTANCE_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, establece172.19.209.2y no172.19.209.2:5432.
Cambia de la pestaña Contenedores a la pestaña Herramientas de redes y completa los siguientes pasos:
Selecciona la casilla de verificación Conéctate a una VPC para el tráfico saliente.
Selecciona la opción Enviar tráfico directamente a una VPC.
En la lista desplegable Red, elige el valor
default.En la lista desplegable Subred, asegúrate de que esté seleccionado el valor
default.
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
En la consola de Google Cloud , ve a la página Cloud Run.
En la página quickstart-service, haz clic en content_copy Copiar al portapapeles para copiar la URL de la aplicación.
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
En la consola de Google Cloud , ve a la página Clústeres.
Junto al clúster
my-clusterque deseas borrar, haz clic en more_vert Acciones y, luego, en delete Borrar.En el cuadro de diálogo Borrar clúster que aparece, escribe
my-clusteren el campo my-cluster para confirmar que deseas borrarlo.Haz clic en Borrar.
Limpia el servicio
En la consola de Google Cloud , ve a la página Cloud Run.
Selecciona la casilla de verificación junto al nombre del servicio
quickstart-service.Haz clic en delete Borrar en la parte superior de la página de Cloud Run.
En el cuadro de diálogo Borrar quickstart-service que aparece, haz clic en Borrar para confirmar.