Ce tutoriel explique comment un développeur de services peut résoudre un problème de service Cloud Run à l'aide des outils de Google Cloud Observability pour la découverte et d'un workflow de développement local pour l'enquête.
Fournie en complément du guide de dépannage, cette étude de cas détaillée utilise un exemple de projet qui génère des erreurs d'exécution lors du déploiement et que vous devez dépanner de manière à trouver et résoudre le problème.
Objectifs
- Écrire, créer et déployer un service sur Cloud Run
- Exploiter Error Reporting et Cloud Logging pour identifier une erreur
- Récupérer l'image de conteneur à partir de Container Registry pour une analyse de la cause fondamentale
- Corriger le service de production, puis l'améliorer pour atténuer les problèmes futurs
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Activez l'API Cloud Run Admin
- Installez et initialisez gcloud CLI.
- Mettez à jour les composants :
gcloud components update
- Suivez les instructions pour installer Docker localement.
Rôles requis
Pour obtenir les autorisations nécessaires pour suivre le tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Éditeur Cloud Build (
roles/cloudbuild.builds.editor
) -
Administrateur Cloud Run (
roles/run.admin
) -
Lecteur Error Reporting (
roles/errorreporting.viewer
) -
Accesseur de vues de journaux (
roles/logging.viewAccessor
) -
Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin
) -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) -
Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer
) -
Administrateur de l'espace de stockage (
roles/storage.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurer les paramètres par défaut de gcloud
Pour configurer gcloud avec les valeurs par défaut pour votre service Cloud Run, procédez comme suit :
Définissez le projet par défaut :
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par le nom du projet que vous avez créé pour ce tutoriel.
Configurez gcloud pour la région choisie :
gcloud config set run/region REGION
Remplacez REGION par la région Cloud Run compatible de votre choix.
Emplacements Cloud Run
Cloud Run est régional, ce qui signifie que l'infrastructure qui exécute vos services Cloud Run est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.
Lors de la sélection de la région dans laquelle exécuter vos services Cloud Run, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité.
Vous pouvez généralement sélectionner la région la plus proche de vos utilisateurs, mais vous devez tenir compte de l'emplacement des autres produits Google Cloud utilisés par votre service Cloud Run.
L'utilisation conjointe de produits Google Cloud dans plusieurs emplacements peut avoir une incidence sur la latence et le coût de votre service.
Cloud Run est disponible dans les régions suivantes :
Soumis aux tarifs de niveau 1
asia-east1
(Taïwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlande) Faibles émissions de CO2europe-southwest1
(Madrid) Faibles émissions de CO2europe-west1
(Belgique) Faibles émissions de CO2europe-west4
(Pays-Bas) Faibles émissions de CO2europe-west8
(Milan)europe-west9
(Paris) Faibles émissions de CO2me-west1
(Tel Aviv)us-central1
(Iowa) Faibles émissions de CO2us-east1
(Caroline du Sud)us-east4
(Virginie du Nord)us-east5
(Columbus)us-south1
(Dallas) Faibles émissions de CO2us-west1
(Oregon) Faibles émissions de CO2
Soumis aux tarifs de niveau 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Séoul, Corée du Sud)asia-southeast1
(Singapour)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Inde)asia-south2
(Delhi, Inde)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsovie, Pologne)europe-west10
(Berlin) Faibles émissions de CO2.europe-west12
(Turin)europe-west2
(Londres, Royaume-Uni) Faibles émissions de CO2europe-west3
(Francfort, Allemagne) Faibles émissions de CO2europe-west6
(Zurich, Suisse) Faibles émissions de CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montréal) Faibles émissions de CO2northamerica-northeast2
(Toronto) Faibles émissions de CO2southamerica-east1
(São Paulo, Brésil) Faibles émissions de CO2southamerica-west1
(Santiago, Chili) Faibles émissions de CO2us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Si vous avez déjà créé un service Cloud Run, vous pouvez afficher la région dans le tableau de bord Cloud Run de la console Google Cloud.
Assembler le code
Créez un service greeter Cloud Run étape par étape. Nous vous rappelons que ce service crée une erreur d'exécution intentionnellement pour l'exercice de dépannage.
Créez un projet :
Node.js
Créez un projet Node.js en définissant le package de service, les dépendances initiales et certaines opérations courantes.Créez un répertoire
hello-service
:mkdir hello-service cd hello-service
Créez un projet Node.js en générant un fichier
package.json
:npm init --yes npm install --save express@4
Ouvrez le nouveau fichier
package.json
dans votre éditeur et configurez un scriptstart
pour exécuternode index.js
. Lorsque vous avez terminé, le fichier se présente comme suit :
Si vous continuez de faire évoluer ce service au-delà du présent tutoriel, pensez à renseigner la description et l'auteur, puis à évaluer la licence. Pour en savoir plus, consultez la documentation de package.json.
Python
Créez un répertoire
hello-service
:mkdir hello-service cd hello-service
Créez un fichier requirements.txt et copiez-y vos dépendances :
Go
Créez un répertoire
hello-service
:mkdir hello-service cd hello-service
Créez un projet Go en initialisant un nouveau module Go :
go mod init example.com/hello-service
Vous pouvez mettre à jour le nom si vous le souhaitez : cette opération est conseillée si le code est publié dans un dépôt de code accessible sur le Web.
Java
Créez un projet Maven :
mvn archetype:generate \ -DgroupId=com.example.cloudrun \ -DartifactId=hello-service \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false
Copiez les dépendances dans votre liste de dépendances
pom.xml
(entre les éléments<dependencies>
) :Copiez le paramètre de création dans votre fichier
pom.xml
(sous les éléments<dependencies>
) :
Créez un service HTTP pour gérer les requêtes entrantes :
Node.js
Python
Go
Java
Créez un fichier
Dockerfile
pour définir l'image de conteneur utilisée pour déployer le service :Node.js
Python
Go
Java
Cet exemple utilise Jib pour créer des images Docker à l'aide d'outils Java courants. Jib optimise les builds de conteneurs sans requérir de fichier Dockerfile ni d'installation Docker. Découvrez comment créer des conteneurs Java avec Jib.
Transmettre le code
La transmission du code se déroule en trois étapes : création d'une image de conteneur avec Cloud Build, importation de l'image de conteneur dans Container Registry, puis déploiement de cette image dans Cloud Run.
Pour transmettre votre code, procédez comme suit :
Créez votre conteneur et publiez-le dans Container Registry :
Node.js
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
où PROJECT_ID correspond à l’ID de votre projet Google Cloud. Vous pouvez vérifier l'ID de votre projet actuel avec
gcloud config get-value project
.En cas de réussite, un message SUCCESS apparaît contenant l'ID, l'heure de création et le nom de l'image. Celle-ci est stockée dans Container Registry et peut être réutilisée au besoin.
Python
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
où PROJECT_ID correspond à l’ID de votre projet Google Cloud. Vous pouvez vérifier l'ID de votre projet actuel avec
gcloud config get-value project
.En cas de réussite, un message SUCCESS apparaît contenant l'ID, l'heure de création et le nom de l'image. Celle-ci est stockée dans Container Registry et peut être réutilisée au besoin.
Go
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
où PROJECT_ID correspond à l’ID de votre projet Google Cloud. Vous pouvez vérifier l'ID de votre projet actuel avec
gcloud config get-value project
.En cas de réussite, un message SUCCESS apparaît contenant l'ID, l'heure de création et le nom de l'image. Celle-ci est stockée dans Container Registry et peut être réutilisée au besoin.
Java
- Utilisez l'assistant d'identification gcloud pour autoriser Docker à transférer du contenu vers votre registre de conteneurs.
gcloud auth configure-docker
- Utilisez le plug-in Maven Jib pour créer et transférer le conteneur dans Container Registry.
mvn compile jib:build -Dimage=gcr.io/PROJECT_ID/hello-service
où PROJECT_ID correspond à l’ID de votre projet Google Cloud. Vous pouvez vérifier l'ID de votre projet actuel avec
gcloud config get-value project
.En cas de réussite, un message BUILD SUCCESS apparaît. L'image est stockée dans Container Registry et peut être réutilisée si vous le souhaitez.
- Utilisez l'assistant d'identification gcloud pour autoriser Docker à transférer du contenu vers votre registre de conteneurs.
Exécutez la commande suivante pour déployer votre application :
gcloud run deploy hello-service --image gcr.io/PROJECT_ID/hello-service
Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
hello-service
correspond à la fois au nom de l'image de conteneur et au nom du service Cloud Run. Notez que l'image de conteneur est déployée sur le service et la région que vous avez précédemment configurés dans la section Configurer gcloud.Répondez
y
, "oui", à l'invite allow unauthenticated (autoriser sans authentification). Pour en savoir plus sur l'authentification basée sur IAM, consultez la page Gérer les accès.Patientez jusqu'à la fin du déploiement, soit environ 30 secondes. En cas de réussite, la ligne de commande affiche l'URL du service.
Essayez-le !
Essayez le service pour vérifier que vous l'avez bien déployé. Les requêtes doivent échouer avec une erreur HTTP 500 ou 503 (membres de la classe d'erreurs serveur 5xx). Le tutoriel vous explique comment résoudre cette erreur.
Une URL navigable est automatiquement attribuée au service.
Accédez à cette URL avec votre navigateur Web :
Ouvrez un navigateur Web.
Recherchez l'URL de service générée par la commande de déploiement précédente.
Si la commande de déploiement n'a pas fourni d'URL, une erreur s'est produite. Examinez le message d'erreur et agissez en conséquence : en l'absence de conseils exploitables, consultez le guide de dépannage et réessayez d'utiliser la commande de déploiement.
Accédez à cette URL en la copiant dans la barre d'adresse de votre navigateur, puis en appuyant sur ENTER.
Consultez l'erreur HTTP 500 ou HTTP 503.
Si vous recevez une erreur HTTP 403, vous avez peut-être refusé
allow unauthenticated invocations
à l'invite de déploiement. Accordez un accès non authentifié au service pour résoudre ce problème :gcloud run services add-iam-policy-binding hello-service \ --member="allUsers" \ --role="roles/run.invoker"
Pour en savoir plus, consultez la section Autoriser l'accès public (non authentifié).
Examiner le problème
Vérifiez si l'erreur HTTP 5xx rencontrée ci-dessus dans Essayez-le ! s'est produite en tant qu'erreur d'exécution de production. Ce tutoriel vous guide à travers un processus formel de gestion de cette erreur. Bien que les processus de résolution des erreurs de production varient considérablement, ce tutoriel présente une séquence particulière d'étapes pour montrer l'application d'outils et de techniques utiles.
Pour examiner ce problème, procédez comme suit :
- Rassemblez plus de détails sur l'erreur signalée afin d'effectuer une analyse approfondie et de définir une stratégie d'atténuation.
- Pour réduire les répercussions sur l'utilisateur, vous pouvez décider d'appliquer une correction ou un rollback à une version connue et opérationnelle.
- Reproduisez l'erreur pour vérifier que les informations correctes ont bien été collectées et que l'erreur n'est pas ponctuelle.
- Effectuez une analyse des causes fondamentales du bug pour trouver le code, la configuration ou le processus à l'origine de cette erreur.
Au début de l'enquête, vous avez une URL, un horodatage et un message "Erreur de serveur interne".
Collecter des informations supplémentaires
Rassemblez plus d'informations sur le problème pour comprendre ce qui s'est passé et déterminer la marche à suivre.
Utilisez les outils Google Cloud Observability disponibles pour collecter plus de détails :
Utilisez la console Error Reporting, qui fournit un tableau de bord avec des détails et un suivi récurrent des erreurs avec une trace de la pile reconnue.
Cliquez sur l'erreur pour afficher les détails des traces de pile, en notant les appels de fonction effectués juste avant l'erreur.
Utilisez Cloud Logging pour examiner la séquence d'opérations menant au problème, y compris les messages d'erreur qui ne sont pas inclus dans la console Error Reporting en raison de l'absence de trace de pile d'erreur reconnue :
Accéder à la console Cloud Logging
Sélectionnez Révision dans Cloud Run > hello-service dans la première boîte déroulante. Les entrées de journal générées par votre service seront alors filtrées.
Renseignez-vous sur l'affichage des journaux dans Cloud Run.
Procéder au rollback vers la version correcte
S'il s'agit d'un service établi, connu pour fonctionner, une révision précédente du service sera présente sur Cloud Run. Dans ce tutoriel, nous utilisons un nouveau service sans version précédente. Vous ne pouvez donc pas effectuer de rollback.
Toutefois, si vous disposez d'un service avec des versions précédentes à partir desquelles vous pouvez procéder à un rollback, consultez la section Afficher les détails d'une révision pour extraire le nom du conteneur et les détails de configuration nécessaires pour créer un déploiement opérationnel de votre service.
Reproduire l'erreur
En utilisant les détails que vous avez obtenus précédemment, vérifiez que le problème se produit régulièrement dans les conditions de test.
Envoyez la même requête HTTP en essayant à nouveau le service, et vérifiez si la même erreur et les mêmes détails sont signalés. L'affichage des détails de l'erreur peut prendre un certain temps.
Étant donné que l'exemple de service de ce tutoriel est en lecture seule et ne déclenche aucun effet secondaire compliqué, la reproduction des erreurs en production est sécurisée. Toutefois, pour de nombreux services réels, ce ne sera pas le cas : vous devrez peut-être reproduire les erreurs dans un environnement de test ou limiter cette étape à une enquête locale.
La reproduction de l'erreur permet d'établir le contexte pour la poursuite des travaux. Par exemple, si les développeurs ne peuvent pas reproduire l'erreur, une analyse plus approfondie peut nécessiter une instrumentation supplémentaire du service.
Effectuer une analyse des causes fondamentales
L'analyse des causes fondamentales est une étape importante d'un dépannage efficace pour vous permettre de résoudre le problème plutôt qu'un symptôme.
Auparavant, dans ce tutoriel, vous avez reproduit le problème sur Cloud Run, ce qui confirme que le problème se manifeste lorsque le service est hébergé sur Cloud Run. À présent, reproduisez le problème localement pour déterminer s'il résulte du code ou s'il apparaît uniquement dans l'hébergement de production.
Si vous n'avez pas utilisé l'interface de ligne de commande Docker en local avec Container Registry, authentifiez-la avec gcloud :
gcloud auth configure-docker
Pour découvrir d'autres approches, consultez la page Méthodes d'authentification de Container Registry.
Si le dernier nom d'image de conteneur utilisé n'est pas disponible, la description du service contient les informations de l'image de conteneur la plus récemment déployée :
gcloud run services describe hello-service
Recherchez le nom de l'image de conteneur dans l'objet
spec
. Une commande plus ciblée peut le récupérer directement :gcloud run services describe hello-service \ --format="value(spec.template.spec.containers.image)"
Cette commande indique un nom d'image de conteneur tel que
gcr.io/PROJECT_ID/hello-service
.Extrayez l'image de conteneur à partir de Container Registry vers votre environnement. Cette opération peut prendre plusieurs minutes lors du téléchargement de l'image de conteneur :
docker pull gcr.io/PROJECT_ID/hello-service
Les mises à jour ultérieures de l'image de conteneur qui réutilisent ce nom peuvent être récupérées avec la même commande. Si vous ignorez cette étape, la commande
docker run
ci-dessous extrait une image de conteneur si celle-ci n'est pas présente sur l'ordinateur local.Exécutez le service localement pour vérifier que le problème n'est pas propre à Cloud Run :
PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ gcr.io/PROJECT_ID/hello-service
Voici le détail des éléments de la commande ci-dessus :
- La variable d'environnement
PORT
permet au service de déterminer le port d'écoute au sein du conteneur. - La commande
run
démarre le conteneur, affichant par défaut la commande "entrypoint" définie dans le fichier Dockerfile ou une image de conteneur parent. - L'option
--rm
supprime l'instance de conteneur en cas de fermeture. - L'option
-e
attribue une valeur à une variable d'environnement.-e PORT=$PORT
propage la variablePORT
du système local dans le conteneur avec le même nom de variable. - L'option
-p
publie le conteneur en tant que service disponible sur localhost sur le port 9000. Les requêtes vers localhost:9000 seront acheminées vers le conteneur sur le port 8080. Cela signifie que le numéro de port de sortie utilisé ne correspondra pas au numéro de port permettant d'accéder au service. - L'argument final
gcr.io/PROJECT_ID/hello-service
est une image de conteneurtag
, un libellé lisible pour l'identifiant de hachage sha256 d'une image de conteneur. Si elle n'est pas disponible localement, Docker tente de récupérer l'image à partir d'un registre distant.
Dans votre navigateur, ouvrez http://localhost:9000. Vérifiez la sortie du terminal en cas de messages d'erreur qui correspondent à ceux de {ops_name}}.
Si le problème ne peut être reproduit localement, il peut être unique à l'environnement Cloud Run. Consultez le guide de dépannage de Cloud Run pour connaître les domaines spécifiques à examiner.
Dans ce cas, l'erreur est reproduite localement.
- La variable d'environnement
Maintenant que l'erreur est confirmée par deux fois comme étant persistante et causée par le code de service plutôt que par la plate-forme d'hébergement, il est temps d'examiner le code de plus près.
Pour les besoins de ce tutoriel, vous pouvez supposer que le code du conteneur et le code du système local sont identiques.
Revoyez la trace de pile du rapport d'erreurs et la référence croisée avec le code pour trouver les lignes spécifiques qui sont responsables du problème.
Node.js
Recherchez la source du message d'erreur dans le fichierindex.js
autour du numéro de ligne indiqué dans la trace de pile affichée dans les journaux :
Python
Recherchez la source du message d'erreur dans le fichiermain.py
autour du numéro de ligne indiqué dans la trace de pile affichée dans les journaux :
Go
Recherchez la source du message d'erreur dans le fichier main.go
autour du numéro de ligne indiqué dans la trace de pile affichée dans les journaux :
Java
Recherchez la source du message d'erreur dans le fichier App.java
autour du numéro de ligne indiqué dans la trace de pile affichée dans les journaux :
En examinant le code, on remarque que les actions suivantes sont effectuées alors que la variable d'environnement NAME
n'est pas définie :
- Une erreur est consignée dans Google Cloud Observability.
- Une réponse d'erreur HTTP est envoyée.
Le problème est causé par une variable manquante, mais la cause fondamentale est plus spécifique : la modification du code qui a créé une dépendance forte envers une variable d'environnement n'incluait pas les modifications liées aux scripts de déploiement et à la documentation concernant les exigences d'exécution.
Corriger la cause fondamentale
Maintenant que nous avons collecté le code et identifié la cause fondamentale potentielle, nous pouvons prendre des mesures pour la corriger.
Vérifiez que le service fonctionne localement avec l'environnement
NAME
disponible sur place :Exécutez le conteneur localement avec la variable d'environnement ajoutée :
PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ -e NAME="Local World!" \ gcr.io/PROJECT_ID/hello-service
Accédez à http://localhost:9000 dans votre navigateur.
"Hello Local World !" apparaît sur la page.
Modifiez l'environnement de service Cloud Run en cours d'exécution pour inclure cette variable :
Exécutez la commande de mise à jour des services pour ajouter une variable d'environnement :
gcloud run services update hello-service \ --set-env-vars NAME=Override
Patientez quelques secondes pendant que Cloud Run crée une révision basée sur la révision précédente avec la nouvelle variable d'environnement ajoutée.
Vérifiez que le problème de service est maintenant corrigé :
- Accédez à l'URL du service Cloud Run dans votre navigateur.
- "Hello Override !" apparaît sur la page.
- Vérifiez qu'aucune erreur ni aucun message inattendu n'apparaît dans Cloud Logging ou Error Reporting.
Accélérer les prochains dépannages
Dans cet exemple de problème de production, l'erreur était liée à la configuration opérationnelle. Des modifications sont apportées au code afin de minimiser l'impact de ce problème à l'avenir.
- Améliorez le journal d'erreurs pour inclure des détails plus spécifiques.
- Au lieu de renvoyer une erreur, demandez au service de revenir à une valeur par défaut sûre. Si l'utilisation d'une valeur par défaut implique une modification de la fonctionnalité normale, utilisez un message d'avertissement à des fins de surveillance.
Passons maintenant à la suppression d'une dépendance forte envers la variable d'environnement NAME
.
Supprimez le code de gestion
NAME
existant :Node.js
Python
Go
Java
Ajoutez du code définissant une valeur de remplacement :
Node.js
Python
Go
Java
Effectuez un test local en recréant et en exécutant le conteneur dans les cas de configuration concernés :
Node.js
docker build --tag gcr.io/PROJECT_ID/hello-service .
Python
docker build --tag gcr.io/PROJECT_ID/hello-service .
Go
docker build --tag gcr.io/PROJECT_ID/hello-service .
Java
mvn compile jib:build
Vérifiez que la variable d'environnement
NAME
fonctionne toujours :PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ -e NAME="Robust World" \ gcr.io/PROJECT_ID/hello-service
Vérifiez que le service fonctionne sans la variable
NAME
:PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ gcr.io/PROJECT_ID/hello-service
Si le service ne renvoie pas de résultat, vérifiez que vous n'avez pas supprimé de lignes supplémentaires lors de la suppression de code de la première étape, comme par exemple les lignes utilisées pour rédiger la réponse.
Déployez le code en consultant à nouveau la section Déployer votre code.
À chaque déploiement sur le service, une révision est créée et le trafic commence automatiquement à être diffusé une fois le déploiement prêt.
Pour effacer les variables d'environnement définies précédemment, exécutez la commande suivante :
gcloud run services update hello-service --clear-env-vars
Ajoutez la nouvelle fonctionnalité de valeur par défaut au champ d'application des tests automatisés pour le service.
Rechercher d'autres problèmes dans les journaux
D'autres problèmes peuvent survenir dans la visionneuse de journaux de ce service. Par exemple, un appel système non compatible apparaîtra dans les journaux comme une "limitation du bac à sable de conteneur".
Par exemple, les services Node.js génèrent parfois ce message de journal :
Container Sandbox Limitation: Unsupported syscall statx(0xffffff9c,0x3e1ba8e86d88,0x0,0xfff,0x3e1ba8e86970,0x3e1ba8e86a90). Please, refer to https://gvisor.dev/c/linux/amd64/statx for more information.
Dans ce cas, la non-compatibilité n'a aucune incidence sur l'exemple de service "hello-service".
Dépannage de Terraform
Pour le dépannage ou les questions liés à Terraform, consultez la page Dépannage des problèmes de validation des règles Terraform ou contactez l'assistance Terraform.
Effectuer un nettoyage
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.
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.
Pour supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Supprimer les ressources du tutoriel
Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel :
gcloud run services delete SERVICE-NAME
Où SERVICE-NAME est le nom de service que vous avez choisi.
Vous pouvez également supprimer des services Cloud Run à partir de Google Cloud Console.
Supprimez la configuration régionale gcloud par défaut que vous avez ajoutée lors de la configuration du tutoriel :
gcloud config unset run/region
Supprimez la configuration du projet :
gcloud config unset project
Supprimez les autres ressources Google Cloud créées dans ce tutoriel :
- Supprimez l'image de conteneur nommée
gcr.io/<var>PROJECT_ID</var>/hello-service
de Container Registry.
- Supprimez l'image de conteneur nommée
Étape suivante
- Découvrez comment utiliser Cloud Logging et Error Reporting pour mieux comprendre le comportement de production.
- Pour en savoir plus sur le dépannage de Cloud Run, consultez le guide de dépannage.
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.