1. Descripción general
En este lab, crearás una base de datos de AlloyDB con trabajo de Cloud Run. Configurarás el acceso privado a los servicios y el acceso a VPC sin servidores para habilitar la conectividad entre el trabajo de Cloud Run y la base de datos de AlloyDB con IP privada.
Qué aprenderás
En este lab, aprenderás a realizar las siguientes tareas:
- Configurar el clúster y la instancia de AlloyDB
- Implementar el trabajo de Cloud Run para crear la base de datos de AlloyDB
2. Configuración y requisitos
Configuración del proyecto de Cloud
- Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.



- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla en cualquier momento.
- El ID del proyecto debe ser único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID del proyecto (suele identificarse como
PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. Como alternativa, puedes probar con uno propio y ver si está disponible. No se puede cambiar después de este paso y permanecerá durante la duración del proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no debería costar mucho, tal vez nada. Para cerrar los recursos y evitar que se te facture más allá de este instructivo, puedes borrar los recursos que creaste o borrar todo el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.
Configuración del entorno
Para activar Cloud Shell, haz clic en el ícono a la derecha de la barra de búsqueda.

Para habilitar las APIs de servicio, copia y pega el siguiente comando en la terminal y presiona Intro:
gcloud services enable \
alloydb.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
vpcaccess.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
--quiet
Establece las variables de entorno:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector
3. Configura y crea el clúster de AlloyDB
Establece los permisos necesarios para la configuración. Esto permitirá que el trabajo de Cloud Run se conecte a la base de datos de AlloyDB.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Configura el acceso privado a los servicios
El acceso privado a los servicios se implementa como una conexión de intercambio de tráfico de VPC entre tu red de VPC y la red de VPC de Google Cloud subyacente en la que residen tus recursos de AlloyDB (clústeres e instancias). La conexión privada permite que los recursos de tu red de VPC se comuniquen con los recursos de AlloyDB a los que acceden de forma exclusiva mediante direcciones IP internas. Los recursos de tu red de VPC no necesitan acceso a Internet ni direcciones IP externas para llegar a los recursos de AlloyDB.
Para crear una configuración de acceso privado a los servicios en una red de VPC que reside en el mismo proyecto de Cloud que AlloyDB, debes realizar dos operaciones:
Crea un rango de direcciones IP asignado en la red de VPC.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
Crea una conexión privada entre la red de VPC y la red de VPC de Google Cloud subyacente. Este paso tarda aproximadamente 2 minutos.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
Crea un clúster de AlloyDB.
gcloud beta alloydb clusters create $CLUSTER \
--password=$DB_PASSWORD \
--network=default \
--region=$REGION \
--project=$PROJECT_NAME
gcloud beta alloydb clusters describe $CLUSTER --region=$REGION
Crea una instancia de AlloyDB. Este paso tarda aproximadamente 10 minutos.
gcloud beta alloydb instances create $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--instance-type=PRIMARY \
--cpu-count=2 \
--project=$PROJECT_NAME
gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region $REGION
Revisa el clúster creado en la consola de Cloud.

Guarda la dirección IP de la base de datos en una variable.""
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
4. Explora el código del trabajo de Cloud Run
Existen varias formas de crear una base de datos de AlloyDB. Una es crear una VM de Compute Engine, instalar un cliente psql y, luego, conectarte a la instancia para crear una base de datos. Puedes obtener más información sobre este enfoque aquí.
En este lab, crearás una base de datos de AlloyDB nueva con el trabajo de Cloud Run.
Revisa los siguientes archivos:
- Dockerfile: Instala las dependencias necesarias(postgresql-client).
- script.sh: Usa utilidades de línea de comandos para crear una base de datos.
En Cloud Shell, crea una carpeta nueva:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
Crea un archivo nuevo Dockerfile:
cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF
Crea un archivo nuevo script.sh con el siguiente contenido:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
Cambia el permiso en script.sh:
chmod +x script.sh
5. Implementa el trabajo de Cloud Run
Configura el acceso a VPC sin servidores. Esto permite que el trabajo de Cloud Run se comunique con el clúster de AlloyDB mediante una IP interna o privada. Este paso tarda aproximadamente 2 minutos.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
Crea un repositorio de Artifact Registry para almacenar imágenes de contenedor.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
Compila y publica la imagen de contenedor en Artifact Registry.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
Implementa el trabajo de Cloud Run.
gcloud beta run jobs create db-job \
--image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
--set-env-vars DB_HOST=$DB_HOST \
--set-env-vars PGUSER=$DB_USER \
--set-env-vars PGPASSWORD=$DB_PASSWORD \
--set-env-vars PGDB=$DB_DATABASE \
--vpc-connector $VPC_CONNECTOR \
--region $REGION
Revisa las marcas que se usaron para crear el trabajo:
--vpc-connector : El trabajo de Cloud Run usará el conector de VPC para llegar a la dirección IP privada de AlloyDB.
Revisa el trabajo creado en la consola de Cloud.

Ejecuta el trabajo de Cloud Run para crear la base de datos test.
gcloud beta run jobs execute db-job --region $REGION
Revisa los registros del trabajo de Cloud Run en la consola de Cloud.

6. ¡Felicitaciones!
¡Felicitaciones! Completaste el codelab.
Temas abordados:
- Cómo crear un clúster y una instancia de AlloyDB
- Cómo crear una base de datos de AlloyDB con el trabajo de Cloud Run
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.