1. Panoramica
In questo lab creerai un database AlloyDB con il job Cloud Run. Configurerai l'accesso privato ai servizi e l'accesso VPC serverless per abilitare la connettività tra Cloud Run Job e il database AlloyDB utilizzando l'IP privato.
Cosa imparerai a fare
In questo lab imparerai a:
- Configura il cluster e l'istanza AlloyDB
- Esegui il deployment del job Cloud Run per creare il database AlloyDB
2. Configurazione e requisiti
Configurazione del progetto Cloud
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.



- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi aggiornarlo in qualsiasi momento.
- L'ID progetto deve essere univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, devi fare riferimento all'ID progetto (in genere è identificato come
PROJECT_ID). Se non ti piace l'ID generato, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimarrà per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. L'esecuzione di questo codelab non dovrebbe costare molto, se non nulla. Per arrestare le risorse in modo da non incorrere in costi di fatturazione al termine di questo tutorial, puoi eliminare le risorse che hai creato o l'intero progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.
Configurazione dell'ambiente
Attiva Cloud Shell facendo clic sull'icona a destra della barra di ricerca.

Per abilitare le API di servizio, copia e incolla il comando riportato di seguito nel terminale e premi Invio:
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
Imposta le variabili di ambiente:
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 e crea il cluster AlloyDB
Imposta le autorizzazioni richieste per la configurazione. In questo modo, il job Cloud Run potrà connettersi al database AlloyDB.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Configura l'accesso privato ai servizi
L'accesso privato ai servizi viene implementato come connessione di peering VPC tra la tua rete VPC e la rete VPC di Google Cloud sottostante in cui si trovano le tue risorse AlloyDB (cluster e istanze). La connessione privata consente alle risorse nella rete VPC di comunicare con le risorse AlloyDB a cui accedono esclusivamente utilizzando indirizzi IP interni. Le risorse nella tua rete VPC non hanno bisogno dell'accesso a internet o di indirizzi IP esterni per raggiungere le risorse AlloyDB.
Per creare una configurazione di accesso privato ai servizi in una rete VPC che si trova nello stesso progetto Cloud di AlloyDB, esegui due operazioni:
Crea un intervallo di indirizzi IP allocato nella rete 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 connessione privata tra la rete VPC e la rete VPC Google Cloud sottostante. Questo passaggio richiede circa 2 minuti.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
Crea un cluster 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 un'istanza AlloyDB. Questo passaggio richiede circa 10 minuti.
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
Esamina il cluster creato nella console Google Cloud.

Salva l'indirizzo IP del database in una variabile.""
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. Esplora il codice del job Cloud Run
Esistono diversi modi per creare un database AlloyDB. Un modo è creare una VM Compute Engine, installare un client psql e poi connettersi all'istanza per creare un database. Puoi scoprire di più su questo approccio qui.
In questo lab, creerai un nuovo database AlloyDB utilizzando Cloud Run Job.
Esamina i file di seguito:
- Dockerfile: installa le dipendenze richieste(postgresql-client)
- script.sh: utilizza le utilità della riga di comando per creare un database
In Cloud Shell, crea una nuova cartella:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
Crea nuovo file 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 nuovo file script.sh con i seguenti contenuti:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
Modifica l'autorizzazione per script.sh:
chmod +x script.sh
5. Esegui il deployment del job Cloud Run
Configura l'accesso VPC serverless. In questo modo, Cloud Run Job può comunicare con il cluster AlloyDB utilizzando un IP interno/privato. Questo passaggio richiede circa 2 minuti.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
Crea un repository Artifact Registry per archiviare le immagini container.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
Crea e pubblica l'immagine container in Artifact Registry.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
Esegui il deployment del job 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
Esamina i flag utilizzati per creare il job:
--vpc-connector - Cloud Run Job utilizzerà il connettore VPC per raggiungere l'indirizzo IP privato di AlloyDB.
Esamina il job creato nella console Cloud.

Esegui il job Cloud Run per creare il database test.
gcloud beta run jobs execute db-job --region $REGION
Esamina i log di Cloud Run Job nella console Cloud.

6. Complimenti!
Congratulazioni, hai completato il codelab.
Argomenti trattati:
- Come creare un cluster e un'istanza AlloyDB
- Come creare il database AlloyDB utilizzando il job Cloud Run
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.