1. Présentation
Dans cet atelier, vous allez créer une base de données AlloyDB avec un job Cloud Run. Vous allez configurer l'accès aux services privés et l'accès au VPC sans serveur pour permettre la connectivité entre le job Cloud Run et la base de données AlloyDB à l'aide d'une adresse IP privée.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Configurer un cluster et une instance AlloyDB
- Déployer un job Cloud Run pour créer une base de données AlloyDB
2. Préparation
Configuration du projet Cloud
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)



- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pouvez le modifier à tout moment.
- L'ID du projet doit être unique sur l'ensemble des projets Google Cloud et doit être immuable (vous ne pouvez pas le modifier une fois que vous l'avez défini). La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID du projet (généralement identifié par
PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300$.
Configuration de l'environnement
Activez Cloud Shell en cliquant sur l'icône à droite de la barre de recherche.

Pour activer les API de service, copiez et collez la commande ci-dessous dans le terminal, puis appuyez sur Entrée :
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
Définissez les variables d'environnement :
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. Configurer et créer un cluster AlloyDB
Définissez les autorisations requises pour la configuration. Cela permettra au job Cloud Run de se connecter à la base de données AlloyDB.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Configurer l'accès aux services privés
L'accès aux services privés est implémenté sous la forme d'une connexion d'appairage VPC entre votre réseau VPC et le réseau VPC Google Cloud sous-jacent où résident vos ressources AlloyDB (clusters et instances). La connexion privée permet aux ressources de votre réseau VPC de communiquer avec les ressources AlloyDB auxquelles elles accèdent exclusivement à l'aide d'adresses IP internes. Les ressources de votre réseau VPC n'ont pas besoin d'accéder à Internet ni de disposer d'adresses IP externes pour atteindre les ressources AlloyDB.
Pour créer une configuration d'accès aux services privés dans un réseau VPC qui réside dans le même projet Cloud qu'AlloyDB, vous devez effectuer deux opérations :
Créez une plage d'adresses IP allouée dans le réseau VPC.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
Créez une connexion privée entre le réseau VPC et le réseau VPC Google Cloud sous-jacent. Cette étape prend environ deux minutes.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
Créez 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
Créez une instance AlloyDB. Cette étape prend environ 10 minutes.
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
Examinez le cluster créé dans la console Cloud.

Enregistrez l'adresse IP de la base de données dans une 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. Explorer le code Cloud Run Jobs
Il existe plusieurs façons de créer une base de données AlloyDB. La première consiste à créer une VM Compute Engine, à installer un client psql, puis à vous connecter à l'instance pour créer une base de données. Pour en savoir plus sur cette approche, cliquez ici.
Dans cet atelier, vous allez créer une base de données AlloyDB à l'aide d'un job Cloud Run.
Examinez les fichiers ci-dessous :
- Dockerfile : installe les dépendances requises(postgresql-client)
- script.sh : utilise des utilitaires de ligne de commande pour créer une base de données
Dans Cloud Shell, créez un dossier :
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
Créez un fichier 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
Créez un fichier script.sh avec le contenu ci-dessous :
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
Modifiez les autorisations sur script.sh :
chmod +x script.sh
5. Déployer un job Cloud Run
Configurez l'accès au VPC sans serveur. Cela permet à Cloud Run Job de communiquer avec le cluster AlloyDB à l'aide d'une adresse IP interne/privée. Cette étape prend environ deux minutes.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
Créez un dépôt Artifact Registry pour stocker les images de conteneurs.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
Créez et publiez l'image de conteneur dans Artifact Registry.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
Déployez le 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
Examinez les indicateurs utilisés pour créer le job :
--vpc-connector : le job Cloud Run utilisera le connecteur VPC pour accéder à l'adresse IP privée AlloyDB.
Examinez le job créé dans la console Cloud.

Exécutez le job Cloud Run pour créer la base de données test.
gcloud beta run jobs execute db-job --region $REGION
Examinez les journaux des jobs Cloud Run dans la console Cloud.

6. Félicitations !
Félicitations, vous avez terminé cet atelier de programmation.
Points abordés
- Créer un cluster et une instance AlloyDB
- Créer une base de données AlloyDB à l'aide d'un job Cloud Run
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.