1. Introduction
Private Service Connect (PSC) est une fonctionnalité de mise en réseau de Google Cloud qui permet aux clients d'accéder à des services gérés en mode privé depuis leur réseau VPC. De même, il permet aux producteurs de services gérés d'héberger ces services dans leurs propres réseaux VPC séparés et de proposer une connexion privée à leurs clients.
Cloud Run est une plate-forme de calcul gérée qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google.
Cloud Run peut être utilisé en tant que service PSC de deux manières différentes.
- Via le PSC pour les API Google en appelant Cloud Run via l'URL run.app fournie par Cloud Run
- Via un service de producteur PSC personnalisé où Cloud Run est exposé via un rattachement de service via un équilibreur de charge d'application interne avec un NEG sans serveur.
Cet atelier de programmation explique comment configurer Cloud Run avec PSC pour ces deux scénarios.
Points abordés
- Déployer des applications de base sur Cloud Run
- Contrôles d'entrée et de sortie Cloud Run
- Déployer Cloud Run via un équilibreur de charge d'application interne avec un NEG sans serveur
- Configurer un service de producteur PSC via un rattachement de service
- Déployer des points de terminaison PSC
Prérequis
- Projet Google Cloud avec autorisations de propriétaire
2. Topologie de l'atelier de programmation
Dans cet atelier de programmation, vous allez déployer deux services Cloud Run qui seront accessibles via PSC : d'abord en tant que service publié personnalisé avec PSC, puis en tant que PSC pour les API Google. Vous allez créer deux VPC, un consumer-vpc et un producer-vpc. Vous allez d'abord déployer le service Cloud Run Hello World et le rendre accessible via un équilibreur de charge d'application interne régional et un NEG sans serveur dans le VPC du producteur. Vous vérifierez que le service fonctionne via l'équilibreur de charge via le producteur-client avant de configurer le service Cloud Run pour qu'il soit accessible en tant que service de production PSC via un rattachement de service.
Passons au VPC consommateur. Vous allez y déployer un point de terminaison PSC pointant vers le rattachement de service Cloud Run que nous avons configuré dans le VPC producteur. Vous allez ensuite vérifier que le service est accessible via PSC à partir d'un client consommateur dans le VPC consommateur. Vous allez ensuite créer un autre service Cloud Run qui appelle votre point de terminaison PSC. Enfin, vous allez déployer un point de terminaison PSC pour les API Google. Depuis le client consommateur, vous accédez à Cloud Run via l'URL fournie par Cloud Run, qui utilisera le PSC pour le point de terminaison des API Google.
3. Préparation
Configuration de l'environnement au rythme de chacun
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. Si vous n'avez 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 pourrez toujours le modifier.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois 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 de votre 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 $.
Démarrer Cloud Shell
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :
Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :
Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.
4. Avant de commencer
Activer les API
Dans Cloud Shell, assurez-vous que votre projet est configuré et configurez des variables.
gcloud auth login gcloud config list project gcloud config set project [YOUR-PROJECT-ID] export projectid=[YOUR-PROJECT-ID] export projectnum=[YOUR-PROJECT-NUM] export region=us-central1 export zone=us-central1-a echo $projectid echo $projectnum echo $region echo $zone
Activez tous les services nécessaires.
gcloud services enable compute.googleapis.com gcloud services enable run.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com gcloud services enable cloudbuild.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com
5. Créer un réseau VPC de producteur
Réseau VPC
Depuis Cloud Shell
gcloud compute networks create producer-vpc --subnet-mode custom
Créer des sous-réseaux
Depuis Cloud Shell
gcloud compute networks subnets create producer-subnet \ --network=producer-vpc \ --range=10.0.0.0/28 \ --region=$region gcloud compute networks subnets create lb-proxy-subnet \ --network=producer-vpc \ --range=10.100.100.0/24 \ --region=$region \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE gcloud compute networks subnets create psc-nat-subnet \ --network=producer-vpc \ --region=$region \ --range=10.100.101.0/24 \ --purpose=PRIVATE_SERVICE_CONNECT
Le sous-réseau PSC sera associé au rattachement de service PSC à des fins de traduction d'adresse réseau. Pour les cas d'utilisation en production, ce sous-réseau doit être dimensionné de manière appropriée pour prendre en charge le nombre de points de terminaison associés. Pour en savoir plus, consultez la documentation sur le dimensionnement des sous-réseaux NAT PSC.
Créer une stratégie de pare-feu réseau et des règles de pare-feu pour le producteur
Depuis Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global gcloud compute network-firewall-policies associations create \ --firewall-policy producer-vpc-policy \ --network producer-vpc \ --name network-producer-vpc \ --global-firewall-policy
Pour autoriser IAP à se connecter à vos instances de VM, créez une règle de pare-feu qui:
- S'applique à toutes les instances de VM que vous souhaitez rendre accessibles à l'aide d'IAP.
- Autorise le trafic entrant provenant de la plage d'adresses IP 35.235.240.0/20. Cette plage contient toutes les adresses IP qu'IAP utilise pour le transfert TCP.
Depuis Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \ --action ALLOW \ --firewall-policy producer-vpc-policy \ --description "SSH with IAP" \ --direction INGRESS \ --src-ip-ranges 35.235.240.0/20 \ --layer4-configs tcp:22 \ --global-firewall-policy
6. Créer un service Hello World Cloud Run
Suivez ces instructions pour écrire un exemple d'application en Python. Exécutez ces commandes dans Cloud Shell. Une fois que vous avez terminé l'étape 3 de la section "Écrire l'application exemple", revenez à cet atelier de programmation et suivez les instructions ci-dessous pour déployer l'application dans Cloud Run à partir de la source.
Avant de déployer votre service Cloud Run, assurez-vous que votre compte de service Compute par défaut dispose des autorisations appropriées en exécutant la commande suivante.
Depuis Cloud Shell
gcloud projects add-iam-policy-binding $projectid --member=serviceAccount:$projectnum-compute@developer.gserviceaccount.com --role=roles/run.builder
REMARQUE:Cet atelier de programmation suppose que la règle d'administration de partage restreint de domaine n'est pas activée dans votre organisation. Si cette règle est activée, vous devrez effectuer des étapes supplémentaires pour déployer Cloud Run avec authentification, configurer un écran de consentement OAuth et configurer IAP pour le backend de votre équilibreur de charge. Il est recommandé de suivre toutes ces étapes de configuration dans un environnement de production.
Depuis Cloud Shell
gcloud beta run deploy helloworld \ --source . \ --platform=managed \ --ingress=internal \ --allow-unauthenticated \ --no-default-url \ --region=$region
L'utilisation de l'indicateur --no-default-url
permet de déployer votre service Cloud Run sans l'URL run.app fournie. Nous n'utiliserons pas l'URL de ce service. Au moment de la publication de cet atelier de programmation, cette fonctionnalité est encore en version Preview.
Avant de continuer, revenez au répertoire principal de votre Cloud Shell.
Depuis Cloud Shell
cd ..
7. Exposer Hello World Cloud Run via un équilibreur de charge d'application interne
Réservez une adresse IP interne statique pour la règle de transfert de votre équilibreur de charge.
Dans Cloud Shell
gcloud compute addresses create cloudrun-ip \ --region=$region \ --subnet=producer-subnet gcloud compute addresses describe cloudrun-ip --region=$region
Exemple de résultat
address: 10.0.1.31 addressType: INTERNAL creationTimestamp: '2025-03-17T09:04:06.620-07:00' description: '' id: 'xxxx' kind: compute#address labelFingerprint: xxxx name: cloudrun-ip networkTier: PREMIUM purpose: GCE_ENDPOINT region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/addresses/cloudrun-ip status: RESERVED subnetwork: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/producer-subnet
Notez l'adresse IP que vous venez de créer.
Créer l'équilibreur de charge d'application interne régional
Dans Cloud Shell
gcloud compute network-endpoint-groups create cloudrun-producer-neg \ --region=$region \ --network-endpoint-type=serverless \ --cloud-run-service=helloworld gcloud compute backend-services create cloudrun-producer-bes \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --region=$region gcloud compute backend-services add-backend cloudrun-producer-bes \ --region=$region \ --network-endpoint-group=cloudrun-producer-neg \ --network-endpoint-group-region=$region gcloud compute url-maps create producer-urlmap \ --default-service=cloudrun-producer-bes \ --region=$region gcloud compute target-http-proxies create producer-http-proxy \ --url-map=producer-urlmap \ --region=$region
Dans Cloud Shell
gcloud compute forwarding-rules create cloudrun-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=producer-subnet \ --address=cloudrun-ip \ --target-http-proxy=producer-http-proxy \ --target-http-proxy-region=$region \ --region=$region \ --ports=80 \ --allow-global-access
8. Tester Hello World Cloud Run exposé via un équilibreur de charge
Créer une VM de test
Depuis Cloud Shell
gcloud compute instances create producer-client \ --zone=$zone \ --subnet=producer-subnet \ --no-address \ --scopes=cloud-platform
Dans Cloud Shell
gcloud compute ssh \ --zone "$zone" "producer-client" \ --tunnel-through-iap \ --project $projectid
Remplacez <loadbalancer-ip> par l'adresse IP que vous avez créée précédemment (par exemple, 10.0.0.2).
Tester Hello World
Dans producer-vm
curl <loadbalancer-ip>
Résultat attendu
Hello World!
Quittez la VM.
Dans producer-vm
exit
9. Créer un rattachement de service
Depuis Cloud Shell
gcloud compute service-attachments create cloudrun-attachment \ --region=$region \ --producer-forwarding-rule=cloudrun-fr \ --connection-preference=ACCEPT_MANUAL \ --consumer-accept-list=$projectid=5 \ --nat-subnets=psc-nat-subnet
Ensuite, récupérez et notez l'URI du rattachement de service pour configurer le point de terminaison PSC dans l'environnement client.
Dans Cloud Shell
gcloud compute service-attachments describe cloudrun-attachment --region=$region
Exemple de résultat attendu
connectionPreference: ACCEPT_MANUAL consumerAcceptLists: - connectionLimit: 5 projectIdOrNum: $projectid creationTimestamp: '2025-03-10T08:49:08.134-07:00' description: '' enableProxyProtocol: false fingerprint: -F0Kpe3Fi8o= id: '2679595584727463707' kind: compute#serviceAttachment name: cloudrun-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: 'xxxxx' low: 'xxxx' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$region/serviceAttachments/cloudrun-attachment targetService: https://www.googleapis.com/compute/v1/projects/$projectid/regions/$projectid/forwardingRules/cloudrun-fr
10. Créer un réseau VPC de consommateur
Réseau VPC
Depuis Cloud Shell
gcloud compute networks create consumer-vpc --subnet-mode custom
Créer un sous-réseau
Depuis Cloud Shell
gcloud compute networks subnets create consumer-subnet \ --network=consumer-vpc \ --range=10.0.0.0/24 \ --region=$region \ --enable-private-ip-google-access gcloud compute networks subnets create cloudrun-egress \ --network=consumer-vpc \ --range=10.0.1.0/24 \ --region=$region \ --enable-private-ip-google-access
Créer un Cloud NAT
Depuis Cloud Shell
gcloud compute routers create central-cr \ --network=consumer-vpc \ --region=$region gcloud compute routers nats create central-nat \ --router=central-cr \ --region=$region \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Créer une stratégie de pare-feu réseau grand public et des règles de pare-feu
Nous allons créer une autre stratégie de pare-feu réseau pour le consumer-vpc.
Depuis Cloud Shell
gcloud compute network-firewall-policies create consumer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy consumer-vpc-policy --network consumer-vpc --name network-consumer-vpc --global-firewall-policy gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy consumer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
11. Créer un point de terminaison PSC pour le service Cloud Run Hello World
À ce stade, nous allons créer un point de terminaison PSC et le connecter au service Cloud Run que vous avez exposé via le rattachement de service. Vous utiliserez l'URI de l'attachement de service que vous avez noté précédemment dans cette section. Assurez-vous que le format de l'URI dans la commande gcloud correspond à votre URI.
Créer un point de terminaison PSC
Depuis Cloud Shell
gcloud compute addresses create cloudrun-service-ip --region=$region --subnet=consumer-subnet --ip-version=IPV4 gcloud compute forwarding-rules create cloudrun-ep --region=$region --network=consumer-vpc --address=cloudrun-service-ip --target-service-attachment=projects/$projectid/regions/$region/serviceAttachments/cloudrun-attachment
Obtenez l'adresse IP du point de terminaison PSC que vous venez de créer. Vous utiliserez cette adresse IP à l'étape suivante pour tester le point de terminaison.
Depuis Cloud Shell
gcloud compute addresses list --filter="name=cloudrun-service-ip"
Exemple de résultat attendu
NAME: cloudrun-service-ip ADDRESS/RANGE: 10.0.0.2 TYPE: INTERNAL PURPOSE: GCE_ENDPOINT NETWORK: REGION: us-central1 SUBNET: consumer-subnet STATUS: IN_USE
12. Créer une VM client consommateur et tester la connectivité au point de terminaison
Créer une VM client grand public
Depuis Cloud Shell
gcloud compute instances create consumer-client \ --zone=$zone \ --subnet=consumer-subnet \ --no-address \ --metadata startup-script='#! /bin/bash sudo apt-get update sudo apt-get install dnsutils -y'
Tester la connectivité
Depuis Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Remplacez <cloudrun-service-ip> par l'adresse IP réelle.
À partir de la VM client grand public
curl <cloudrun-service-ip>
Résultat attendu
Hello World!
À partir de la VM client grand public
exit
13. Créer un service Cloud Run en boucle
Nous allons ensuite créer un service Cloud Run qui effectuera un rappel privé dans le VPC client pour appeler le service HelloWorld Cloud Run précédent que nous avons exposé via PSC.
Suivez les instructions de la section "Écrire l'exemple d'application" ici pour écrire une application de boucle en PHP. Au lieu de helloworld-php, nommez votre répertoire cloudrun-loop. Exécutez ces commandes dans Cloud Shell. À l'étape 2, utilisez le code PHP ci-dessous dans votre fichier index.php. Revenez à l'atelier de programmation lorsque vous êtes prêt à déployer votre application sur Cloud Run. Ne suivez pas les instructions de la documentation pour cette étape.
Utilisez ce code pour votre fichier index.php. Remplacez <cloudrun-service-ip> par l'adresse IP de votre point de terminaison PSC que vous avez testée à l'étape précédente.
Depuis Cloud Shell
<?php if(!function_exists('curl_init')) { die('cURL not available!'); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://<cloudrun-service-ip>/'); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($curl); if ($output === FALSE) { echo 'An error has occurred: ' . curl_error($curl) . PHP_EOL; } else { echo $output; } ?>
Nous spécifions un réseau et un sous-réseau dans ce déploiement Cloud Run, car le trafic Cloud Run doit sortir du VPC pour accéder au point de terminaison PSC. Nous demandons à Cloud Run d'utiliser le sous-réseau cloudrun-egress pour la sortie VPC directe. Nous redirigons tout le trafic vers le VPC via le sous-réseau de sortie VPC directe.
Depuis Cloud Shell
gcloud run deploy cloudrun-loop \ --source . \ --platform=managed \ --ingress=internal \ --allow-unauthenticated \ --vpc-egress=all-traffic \ --network=consumer-vpc \ --subnet=cloudrun-egress \ --region=$region
Une fois le déploiement du service Cloud Run terminé, une URL de service au format https://cloudrun-loop-<projectnum>.<region>.run.app est fournie. Notez cette URL et testez-la à l'étape suivante.
14. Tester la connectivité à CloudRun-Loop via l'URL Cloud Run
Depuis Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Remplacez <Cloud-Run-ServiceURL> par l'URL du service que vous avez notée à l'étape précédente.
À partir de la VM client grand public
curl <Cloud-Run-ServiceURL>
Résultat attendu
Hello World!
Ce résultat montre que notre service CloudRun-Loop appelle correctement le VPC client pour appeler notre point de terminaison PSC connecté à notre service Cloud Run Hello World. Cependant, à ce stade, notre VM client-consommateur sort sur Internet via notre Cloud NAT pour appeler notre URL Cloud Run publique. Nous pouvons exécuter une requête dig sur l'URL pour montrer qu'elle se résout en une adresse IP publique.
À partir de la VM client grand public
dig <Cloud-Run-ServiceURL>
Exemple de résultat
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> https://cloudrun-loop-<projectnum>.<region>.run.app ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1938 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;https://cloudrun-loop-<projectnum>.<region>.run.app. IN A ;; ANSWER SECTION: https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.38.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.36.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.32.53 https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 216.239.34.53 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Tue Mar 11 19:05:36 UTC 2025 ;; MSG SIZE rcvd: 147
Nous pouvons créer un PSC pour le point de terminaison des API Google afin de définir cette résolution sur "privé" et d'empêcher le trafic d'accéder à l'Internet public.
À partir de la VM client grand public
exit
15. Créer un PSC pour le point de terminaison des API Google
Ce point de terminaison PSC est différent de celui que nous avons créé précédemment. PSC pour les API Google pointe vers un groupe d'API Google (toutes les API ou les API compatibles avec VPC-SC). L'adresse IP ne provient pas d'un sous-réseau régional, mais est créée en tant qu'adresse IP /32 unique, globale et ne pouvant pas chevaucher les sous-réseaux VPC existants, les sous-réseaux VPC appairés ni les routes hybrides.
Depuis Cloud Shell
export pscgoogip=100.100.100.100 echo $pscgoogip gcloud compute addresses create psc-goog-ep-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=$pscgoogip \ --network=consumer-vpc
Depuis Cloud Shell
gcloud compute forwarding-rules create psc4googapi \ --global \ --network=consumer-vpc \ --address=psc-goog-ep-ip \ --target-google-apis-bundle=all-apis
16. Créer une zone privée Cloud DNS pour run.app
Lorsqu'un point de terminaison PSC pour les API Google est créé, une zone DNS privée Cloud Run est créée pour toutes les API appartenant au domaine googleapis.com. Comme Cloud Run utilise run.app, nous devons créer une autre zone privée pour mapper run.app sur notre PSC pour le point de terminaison des API Google.
Depuis Cloud Shell
gcloud dns managed-zones create "cloudrun" \ --dns-name=run.app \ --description="run.app psc resolution" \ --visibility=private \ --networks=consumer-vpc gcloud dns record-sets transaction start \ --zone="cloudrun" gcloud dns record-sets transaction add $pscgoogip \ --name=*.run.app \ --ttl=300 \ --type=A \ --zone="cloudrun" gcloud dns record-sets transaction execute \ --zone="cloudrun"
17. Tester la résolution DNS privée
Nous allons nous reconnecter à notre VM client-consommateur et exécuter à nouveau dig. Nous devrions maintenant voir que notre URL Cloud Run est résolue en tant que point de terminaison PSC pour les API Google.
Depuis Cloud Shell
gcloud compute ssh \ --zone "$zone" "consumer-client" \ --tunnel-through-iap \ --project $projectid
Nous allons d'abord vider le cache DNS. Remplacez <Cloud-Run-ServiceURL> par l'URL du service que vous avez notée précédemment.
À partir de la VM client grand public
sudo resolvectl flush-caches curl <CloudRun-Loop-ServiceURL>
La commande curl devrait toujours fonctionner comme précédemment.
À partir de la VM client grand public
curl <CloudRun-Loop-ServiceURL>
Résultat attendu
Hello World!
À partir de la VM client grand public
dig <CloudRun-Loop-ServiceURL>
La requête dig devrait indiquer que notre service Cloud Run Loop est désormais résolu en tant que point de terminaison de PSC pour les API Google.
Exemple de résultat
; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> https://cloudrun-loop-<projectnum>.<region>.run.app ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30179 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;https://cloudrun-loop-<projectnum>.<region>.run.app. IN A ;; ANSWER SECTION: https://cloudrun-loop-<projectnum>.<region>.run.app. 300 IN A 100.100.100.100 ;; Query time: 8 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Tue Mar 11 20:04:05 UTC 2025 ;; MSG SIZE rcvd: 99
OPÉRATION RÉUSSIE !
18. Procédure de nettoyage
Quitter l'instance de VM
exit
Depuis Cloud Shell
gcloud dns record-sets delete *.run.app --zone="cloudrun" --type=A -q gcloud dns managed-zones delete "cloudrun" -q gcloud compute instances delete consumer-client --zone=$zone --project=$projectid -q gcloud compute forwarding-rules delete psc4googapi --global -q gcloud compute addresses delete psc-goog-ep-ip --global -q gcloud run services delete cloudrun-loop --region=$region -q gcloud artifacts docker images delete $region-docker.pkg.dev/$projectid/cloud-run-source-deploy/cloudrun-loop -q gcloud compute forwarding-rules delete cloudrun-ep --region=$region -q gcloud compute addresses delete cloudrun-service-ip --region=$region -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute routers nats delete central-nat --router=central-cr --region=$region -q gcloud compute routers delete central-cr --region=$region -q gcloud compute networks subnets delete consumer-subnet --region $region -q
Il est possible que l'exécution des deux commandes suivantes échoue avec des erreurs "ressource utilisée". Selon les documentations Cloud Run, il peut s'écouler une à deux heures avant que Cloud Run libère les ressources de sous-réseau après la suppression du service Cloud Run. Si la suppression échoue, ignorez ces deux commandes et passez à la section suivante. Revenez ensuite dans cette section pour supprimer l'élément.
Depuis Cloud Shell
gcloud compute networks subnets delete cloudrun-egress --region $region -q gcloud compute networks delete consumer-vpc -q
Depuis Cloud Shell
gcloud compute service-attachments delete cloudrun-attachment --region=$region -q gcloud compute instances delete producer-client --zone=$zone --project=$projectid -q gcloud compute forwarding-rules delete cloudrun-fr --region=$region -q gcloud compute target-http-proxies delete producer-http-proxy --region=$region -q gcloud compute url-maps delete producer-urlmap --region=$region -q gcloud compute backend-services delete cloudrun-producer-bes --region=$region -q gcloud compute network-endpoint-groups delete cloudrun-producer-neg --region=$region -q gcloud compute addresses delete cloudrun-ip --region=$region -q gcloud run services delete helloworld --region=$region -q gcloud artifacts docker images delete $region-docker.pkg.dev/$projectid/cloud-run-source-deploy/helloworld -q gcloud artifacts repositories delete cloud-run-source-deploy --location=$region -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute networks subnets delete lb-proxy-subnet --region $region -q gcloud compute networks subnets delete psc-nat-subnet --region $region -q gcloud compute networks subnets delete producer-subnet --region $region -q gcloud compute networks delete producer-vpc -q
19. Félicitations !
Bravo ! Vous avez terminé cet atelier de programmation.
Points abordés
- Déployer des applications de base sur Cloud Run
- Contrôles d'entrée et de sortie Cloud Run
- Déployer Cloud Run via un équilibreur de charge d'application interne avec un NEG sans serveur
- Configurer un service de producteur PSC via un rattachement de service
- Déployer des points de terminaison PSC