Ce guide vous aide à comprendre et à déployer la solution de base de connaissances sur l'IA générative. Cette solution montre comment créer un pipeline de systèmes de questions-réponses extractives (EQA) afin de produire du contenu pour une base de connaissances interne.
Un pipeline EQA traite des documents, en extrait des paires de questions-réponses et vous fournit des informations structurées permettant d'affiner un grand modèle de langage (LLM) pour votre propre modèle. Par exemple, vous pouvez importer un document contenant de nombreuses questions fréquentes (FAQ), ajuster un LLM à l'aide de ces questions fréquentes, puis utiliser le modèle entraîné pour aider les agents du service client à trouver des informations lorsqu'ils résolvent des demandes.
Ce document s'adresse aux développeurs qui ont une certaine expérience des LLM. Nous partons du principe que vous connaissez les concepts de base du cloud.
Objectifs
Ce guide de solution vous aide à effectuer les opérations suivantes :
- Déployer une application qui extrait des paires de questions-réponses à partir de vos documents.
- Déployer un pipeline qui déclenche votre application lors de l'importation d'un document.
- Entraîner un modèle d'IA à base de prompts, à l'aide de la sortie de votre application.
Architecture
Cette solution déploie une application de base de connaissances sur l'IA générative. Le schéma suivant montre l'architecture de l'infrastructure de l'application :
Processus de requête
Les étapes suivantes détaillent le flux de traitement des requêtes de l'application. Les étapes du flux sont numérotées comme indiqué dans le schéma de l'architecture précédente.
Pour démarrer l'application de base de connaissances générée par l'IA générative, vous allez importer un document directement dans un bucket Cloud Storage, via la console Google Cloud ou gcloud CLI.
L'importation du document déclenche une fonction Cloud Run. Cette fonction exécute le processus de système de questions-réponses extractives.
La fonction utilise la reconnaissance optique de caractères (ROC) de Document AI pour extraire tout le texte du document.
La fonction indexe le document dans Vector Search. L'index Vector Search fournit du contexte permettant au LLM d'extraire des paires de questions/réponses uniquement en fonction du contenu extrait directement des documents importés.
La fonction utilise Vertex AI pour extraire et générer des questions et des réponses à partir du document.
La fonction stocke les paires questions-réponses extraites dans Firestore.
Un ensemble de données de réglage JSONL est généré à partir de la base de données Firestore et stocké dans Cloud Storage.
Après avoir vérifié manuellement que vous êtes satisfait de l'ensemble de données, vous pouvez lancer un job de réglage sur Vertex AI.
Une fois le job de réglage terminé, le modèle réglé est déployé sur un point de terminaison. Une fois déployé sur un point de terminaison, vous pouvez envoyer des requêtes au modèle réglé dans un notebook Colab, puis le comparer au modèle de fondation.
Produits utilisés
Cette section décrit les produits utilisés par la solution.
Si vous connaissez le langage de configuration de Terraform, vous pouvez modifier certains paramètres des services.
Composant | Description du produit | Objectif de cette solution |
---|---|---|
Cloud Storage | Un service adapté aux entreprises, qui fournit un stockage d'objets économique et sans limite pour tout type de données. | Stocke les documents PDF, le texte extrait, l'ensemble de données de réglage et le modèle réglé. |
Eventarc | Un service qui gère le flux des changements d'état (événements) entre les microservices découplés, en acheminant les événements vers différentes destinations tout en gérant la diffusion, la sécurité, les autorisations, l'observabilité et la gestion des erreurs. | Recherche de nouveaux documents dans le bucket Cloud Storage et déclenche un événement dans les fonctions Cloud Run. |
Fonctions Cloud Run | Un service de calcul sans serveur léger qui vous permet de créer des fonctions autonomes à usage unique qui répondent aux événements Google Cloud sans avoir à gérer de serveur ni d'environnement d'exécution. | Orchestre les étapes de traitement des documents. |
Document AI | Une plate-forme de compréhension de documents qui convertit les données non structurées, issues des documents, en données structurées. Celles-ci vous permettent d'automatiser les tâches fastidieuses, d'améliorer l'extraction de données et d'obtenir des insights plus détaillés. | Extrait le texte des documents. |
Vertex AI | Une plate-forme de machine learning qui vous permet d'entraîner, de tester, de régler et de déployer des LLM et des applications d'IA générative. | Génère des questions et des réponses à partir des documents. |
Vector Search | Un service qui vous permet d'utiliser l'infrastructure qui est à la base des produits Google, tels que la recherche Google, YouTube et Play. | Vous permet de rechercher des embeddings afin d'identifier des entités sémantiquement similaires ou des entités associées. |
Firestore | Un système de fichiers entièrement géré et à faible latence pour les VM et les clusters, offrant une haute disponibilité et un débit élevé. | Stocke les questions et les réponses générées. |
Coût
Pour obtenir une estimation du coût des ressources Google Cloud utilisées par la solution de base de connaissances générée par l'IA générative, consultez l'estimation précalculée dans le Simulateur de coût Google Cloud.
Utilisez l'estimation comme point de départ pour calculer le coût de votre déploiement. Vous pouvez modifier l'estimation afin qu'elle reflète les modifications de configuration que vous prévoyez d'apporter aux ressources utilisées dans la solution.
L'estimation précalculée est basée sur des hypothèses pour certains facteurs, y compris les suivants :
- Emplacements Google Cloud où les ressources sont déployées.
La durée d'utilisation des ressources.
La quantité de données stockées dans Cloud Storage.
Le nombre d'appels de l'application de base de connaissances.
Les ressources de calcul utilisées pour le réglage du modèle.
Avant de commencer
Pour déployer cette solution, vous devez d'abord disposer d'un projet Google Cloud et de certaines autorisations IAM.
Créer ou choisir un projet Google Cloud
Lors du déploiement de la solution, vous devez choisir le projet Google Cloud dans lequel les ressources vont être déployées. Vous pouvez créer un projet ou utiliser un projet existant pour le déploiement.
Si vous souhaitez créer un projet, faites-le avant de commencer le déploiement. L'utilisation d'un nouveau projet permet d'éviter les conflits avec les ressources précédemment provisionnées, telles que les ressources utilisées pour les charges de travail de production.
Pour créer un projet, procédez comme suit :
-
In the Google Cloud console, go to the project selector page.
-
Click Create project.
-
Name your project. Make a note of your generated project ID.
-
Edit the other fields as needed.
-
Click Create.
Obtenir les autorisations IAM requises
Pour démarrer le processus de déploiement, vous devez disposer des autorisations IAM (Identity and Access Management) répertoriées dans le tableau suivant.
Si vous avez créé un projet pour cette solution, vous disposez du rôle de base roles/owner
dans ce projet et de toutes les autorisations nécessaires. Si vous ne disposez pas du rôle roles/owner
, demandez à votre administrateur de vous accorder ces autorisations (ou des rôles qui les incluent).
Autorisation IAM requise | Rôle prédéfini incluant les autorisations requises |
---|---|
|
Administrateur Service Usage ( roles/serviceusage.serviceUsageAdmin ) |
|
Administrateur de compte de service ( roles/iam.serviceAccountAdmin ) |
|
Administrateur de projet IAM ( roles/resourcemanager.projectIamAdmin ) |
config.deployments.create config.deployments.list |
Administrateur Cloud Infrastructure Manager ( roles/config.admin ) |
iam.serviceAccount.actAs |
Utilisateur du compte de service ( roles/iam.serviceAccountUser ) |
À propos des autorisations temporaires du compte de service
Si vous démarrez le processus de déploiement via la console, Google crée un compte de service pour déployer la solution en votre nom (et pour supprimer le déploiement ultérieurement si vous le souhaitez). Certaines autorisations IAM sont attribuées temporairement à ce compte de service. En d'autres termes, les autorisations sont révoquées automatiquement une fois les opérations de déploiement et de suppression de la solution terminées. Nous vous recommandons de supprimer le compte de service après avoir supprimé le déploiement, comme décrit plus loin dans ce guide.
Afficher les rôles attribués au compte de service
Ces rôles sont listés ici si un administrateur de votre projet ou de votre organisation Google Cloud a besoin de ces informations.
roles/aiplatform.user
roles/artifactregistry.admin
roles/documentai.editor
roles/firebase.admin
roles/iam.serviceAccountUser
roles/serviceusage.serviceUsageAdmin
roles/iam.serviceAccountAdmin
roles/resourcemanager.projectIamAdmin
roles/config.agent
Déployer la solution
Pour vous aider à déployer cette solution avec un minimum d'efforts, une configuration Terraform est fournie dans GitHub. La configuration Terraform définit toutes les ressources Google Cloud requises pour la solution.
Vous pouvez déployer la solution en utilisant l'une des méthodes suivantes :
Via la console : utilisez cette méthode si vous souhaitez essayer la solution avec la configuration par défaut et voir comment elle fonctionne. Cloud Build déploie toutes les ressources requises pour la solution. Lorsque vous n'avez plus besoin de la solution déployée, vous pouvez la supprimer via la console. Toutes les ressources que vous créez après le déploiement de la solution devront peut-être être supprimées séparément.
Pour utiliser cette méthode de déploiement, suivez les instructions de la section Déployer via la console.
À l'aide de la CLI Terraform : utilisez cette méthode si vous souhaitez personnaliser la solution, ou automatiser le provisionnement et la gestion des ressources à l'aide de l'approche Infrastructure as Code (IaC). Téléchargez la configuration Terraform depuis GitHub, personnalisez éventuellement le code si nécessaire et déployez la solution à l'aide de la CLI Terraform. Après avoir déployé la solution, vous pouvez continuer à la gérer à l'aide de Terraform.
Pour utiliser cette méthode de déploiement, suivez les instructions de la section Déployer à l'aide de la CLI Terraform.
Déployer via la console
Pour déployer la solution préconfigurée, suivez la procédure suivante.
Dans le catalogue des solutions de démarrage rapide Google Cloud, accédez à la solution Base de connaissances générée par l'IA générative.
Accéder à la solution "Base de connaissances générée par l'IA générative"
Examinez les informations fournies sur la page, telles que l'estimation du coût de la solution et le temps de déploiement estimé.
Lorsque vous êtes prêt à déployer la solution, cliquez sur Déployer.
Un volet de configuration détaillé s'affiche.
Effectuez les étapes décrites dans le volet de configuration.
Notez le nom que vous saisissez pour le déploiement. Ce nom sera requis ultérieurement lorsque vous supprimerez le déploiement.
Lorsque vous cliquez sur Déployer, la page Déploiements de solutions s'affiche. Le champ État de cette page indique En cours de déploiement.
Attendez que la solution soit déployée.
Si le déploiement échoue, le champ État indique Échec. Vous pouvez utiliser le journal Cloud Build pour diagnostiquer les erreurs. Pour en savoir plus, consultez la section Erreurs lors du déploiement via la console.
Une fois le déploiement terminé, le champ État indique Déployé.
Pour afficher les ressources Google Cloud déployées et leur configuration, effectuez une visite guidée interactive dans la console.
Pour connaître les étapes suivantes, consultez la section Utiliser la solution.
Lorsque vous n'avez plus besoin de la solution, vous pouvez supprimer le déploiement pour éviter de continuer à payer des frais pour les ressources Google Cloud. Pour en savoir plus, consultez la section Supprimer le déploiement.
Déployer via la CLI Terraform
Cette section explique comment personnaliser la solution, ou automatiser son provisionnement et sa gestion à l'aide de la CLI Terraform. Les solutions que vous déployez à l'aide de la CLI Terraform ne s'affichent pas sur la page Déploiements de solutions de la console Google Cloud.
Configurer le client Terraform
Vous pouvez exécuter Terraform dans Cloud Shell ou sur votre hôte local. Ce guide explique comment exécuter Terraform dans Cloud Shell, où Terraform est préinstallé et configuré pour s'authentifier auprès de Google Cloud.
Le code Terraform de cette solution est disponible dans un dépôt GitHub.
Clonez le dépôt GitHub dans Cloud Shell.
Une invite s'affiche pour confirmer le téléchargement du dépôt GitHub dans Cloud Shell.
Cliquez sur Confirmer.
Cloud Shell est lancé dans un onglet de navigateur distinct, et le code Terraform est téléchargé dans le répertoire
$HOME/cloudshell_open
de votre environnement Cloud Shell.Dans Cloud Shell, vérifiez si le répertoire de travail actuel est
$HOME/cloudshell_open/terraform-genai-knowledge-base/
. Il s'agit du répertoire qui contient les fichiers de configuration Terraform pour la solution. Si vous devez accéder à ce répertoire, exécutez la commande suivante :cd $HOME/cloudshell_open/terraform-genai-knowledge-base/
Initialisez Terraform à l'aide de la commande suivante :
terraform init
Attendez que le message suivant s'affiche :
Terraform has been successfully initialized!
Configurer les variables Terraform
Le code Terraform que vous avez téléchargé comprend des variables que vous pouvez utiliser pour personnaliser le déploiement en fonction de vos besoins. Par exemple, vous pouvez spécifier le projet Google Cloud et la région dans laquelle vous souhaitez déployer la solution.
Assurez-vous que le répertoire de travail actuel est
$HOME/cloudshell_open/terraform-genai-knowledge-base/
. Si ce n'est pas le cas, accédez à ce répertoire :Dans le même répertoire, créez un fichier texte nommé
terraform.tfvars
.Dans le fichier
terraform.tfvars
, copiez l'extrait de code suivant et définissez les valeurs des variables requises.- Suivez les instructions fournies en tant que commentaires dans l'extrait de code.
- Cet extrait de code n'inclut que les variables pour lesquelles vous devez définir des valeurs. La configuration Terraform inclut d'autres variables ayant des valeurs par défaut. Pour examiner toutes les variables et les valeurs par défaut, consultez le fichier
variables.tf
disponible dans le répertoire$HOME/cloudshell_open/terraform-genai-knowledge-base/
. - Assurez-vous que chaque valeur que vous définissez dans le fichier
terraform.tfvars
correspond au type de la variable, comme déclaré dans le fichiervariables.tf
. Par exemple, si le type défini pour une variable dans le fichiervariables.tf
estbool
, vous devez spécifiertrue
oufalse
comme valeur de cette variable dans le fichierterraform.tfvars
.
# This is an example of the terraform.tfvars file. # The values in this file must match the variable types declared in variables.tf. # The values in this file override any defaults in variables.tf. # ID of the project in which you want to deploy the solution project_id = "PROJECT_ID"
Valider et examiner la configuration Terraform
Assurez-vous que le répertoire de travail actuel est
$HOME/cloudshell_open/terraform-genai-knowledge-base/
. Si ce n'est pas le cas, accédez à ce répertoire :Vérifiez que la configuration ne comporte aucune erreur :
terraform validate
Si la commande renvoie une erreur, apportez les corrections nécessaires dans la configuration, puis exécutez à nouveau la commande
terraform validate
. Répétez cette étape jusqu'à ce que la commande renvoie le message suivant :Success! The configuration is valid.
Examinez les ressources définies dans la configuration :
terraform plan
Si vous n'avez pas créé le fichier
terraform.tfvars
comme décrit précédemment, Terraform vous invite à saisir des valeurs pour les variables qui n'ont pas de valeurs par défaut. Saisissez les valeurs requises.Le résultat de la commande
terraform plan
est une liste des ressources provisionnées par Terraform lorsque vous appliquez la configuration.Si vous souhaitez apporter des modifications, modifiez la configuration, puis exécutez à nouveau les commandes
terraform validate
etterraform plan
.
Provisionner les ressources
Lorsqu'aucune autre modification n'est nécessaire dans la configuration, déployez les ressources.
Assurez-vous que le répertoire de travail actuel est
$HOME/cloudshell_open/terraform-genai-knowledge-base/
. Si ce n'est pas le cas, accédez à ce répertoire :Appliquez la configuration Terraform :
terraform apply
Si vous n'avez pas créé le fichier
terraform.tfvars
comme décrit précédemment, Terraform vous invite à saisir des valeurs pour les variables qui n'ont pas de valeurs par défaut. Saisissez les valeurs requises.Terraform affiche la liste des ressources qui seront créées.
Lorsque vous êtes invité à effectuer les actions, saisissez
yes
.Terraform affiche les messages indiquant la progression du déploiement.
Si le déploiement ne peut pas être terminé, Terraform affiche les erreurs à l'origine de l'échec. Consultez les messages d'erreur et mettez à jour la configuration pour corriger les erreurs, puis exécutez à nouveau la commande
terraform apply
. Pour obtenir de l'aide concernant la résolution des erreurs Terraform, consultez la section Erreurs lors du déploiement de la solution à l'aide de la CLI Terraform.Une fois toutes les ressources créées, Terraform affiche le message suivant :
Apply complete!
Pour afficher les ressources Google Cloud déployées et leur configuration, effectuez une visite guidée interactive dans la console.
Vous pouvez maintenant utiliser la solution et voir comment elle fonctionne.
Lorsque vous n'avez plus besoin de la solution, vous pouvez supprimer le déploiement pour éviter de continuer à payer des frais pour les ressources Google Cloud. Pour en savoir plus, consultez la section Supprimer le déploiement.
Utiliser la solution
Une fois la solution déployée, vous pouvez importer un document afin d'indexer son contenu et de poser des questions à son sujet. De plus, un fichier d'ensemble de données de réglage de lignes JSON (JSONL) est généré, que vous pouvez utiliser pour ajuster un LLM via des prompts.
Importer un document et interroger le modèle
Commencez à utiliser cette solution en important un document, puis posez au LLM préentraîné des questions sur ce document.
Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée.
Cette opération prend environ 10 minutes.Régler le LLM
Après avoir importé des documents pour la solution, vous pouvez utiliser Vertex AI pour régler un LLM avec vos paires de questions/réponses. Le réglage du LLM n'est pas un processus automatisé. Avant de régler le LLM, inspectez vos données et assurez-vous qu'elles sont valides et précises. Une fois que vous êtes satisfait des données, vous pouvez lancer manuellement un job de réglage et lancer le LLM à partir de Model Registry.
Le fichier de réglage JSONL contient du contenu extrait de vos paires questions-réponses. Chaque ligne du fichier correspond à une entrée JSON avec les champs input_text
et output_text
. Le champ input_text
stocke le contenu de chaque question, le contenu de chaque réponse correspondante étant stocké dans le champ output_text
.
Par exemple, le fichier JSONL suivant contient la question "Combien de personnes vivent à Pékin", ainsi que la réponse correspondante :
{"input_text": "CONTEXT: With over 21 million residents, Beijing is the
world's most populous national capital city and is China's second largest
city after Shanghai. QUESTION: How many people live in Beijing?,
"output_text": "21 million people"}
Pour obtenir des instructions détaillées sur le réglage de votre modèle directement dans la console Google Cloud, cliquez sur Visite guidée.
Ce tutoriel prend environ 10 minutes, mais le réglage du modèle peut nécessiter une heure, voire plus.Supprimer le déploiement
Lorsque vous n'avez plus besoin de la solution, supprimez le déploiement. Lorsque vous supprimez le déploiement, les ressources que vous avez créées ne vous sont plus facturées.
Avant la suppression
Avant de supprimer cette solution, supprimez le déploiement de l'index Vector Search :
Accédez à la page Vector Search.
Cliquez sur
knowledge-base-index
.Sous Index déployés, cliquez sur more_vert Plus.
Cliquez sur Annuler le déploiement.
Vous n'avez pas besoin d'attendre la fin du processus de suppression de l'index.
Supprimer via la console
Suivez cette procédure si vous avez déployé la solution via la console.
Dans la console Google Cloud, accédez à la page Déploiements de solutions.
Sélectionnez le projet contenant le déploiement que vous souhaitez supprimer.
Recherchez le déploiement que vous souhaitez supprimer.
Sur la ligne correspondant au déploiement, cliquez sur
Actions, puis sélectionnez Supprimer.Vous devrez peut-être faire défiler l'écran pour voir l'option Actions sur la ligne.
Saisissez le nom du déploiement, puis cliquez sur Confirmer.
Le champ État indique Suppression.
Si la suppression échoue, consultez les conseils de dépannage de la section Erreur lors de la suppression d'un déploiement.
Lorsque vous n'avez plus besoin du projet Google Cloud que vous avez utilisé pour la solution, vous pouvez le supprimer. Pour en savoir plus, consultez la section Facultatif : supprimer le projet.
Suppression à l'aide de la CLI Terraform
Suivez cette procédure si vous avez déployé la solution à l'aide de la CLI Terraform.
Dans Cloud Shell, assurez-vous que le répertoire de travail actuel est
$HOME/cloudshell_open/terraform-genai-knowledge-base/
. Si ce n'est pas le cas, accédez à ce répertoire :Supprimez les ressources provisionnées par Terraform :
terraform destroy
Terraform affiche la liste des ressources qui seront supprimées.
Lorsque vous êtes invité à effectuer les actions, saisissez
yes
.Terraform affiche des messages de progression. Une fois toutes les ressources supprimées, Terraform affiche le message suivant :
Destroy complete!
Si la suppression échoue, consultez les conseils de dépannage de la section Erreur lors de la suppression d'un déploiement.
Lorsque vous n'avez plus besoin du projet Google Cloud que vous avez utilisé pour la solution, vous pouvez le supprimer. Pour en savoir plus, consultez la section Facultatif : supprimer le projet.
Supprimer le modèle réglé
Vous devez supprimer manuellement le modèle réglé.
Pour supprimer le modèle réglé, consultez la section Supprimer un modèle de Vertex AI Model Registry.
(Facultatif) Supprimez le projet.
Si vous avez déployé la solution dans un nouveau projet Google Cloud dont vous n'avez plus besoin, supprimez-le en procédant comme suit :
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Lorsque vous y êtes invité, saisissez l'ID du projet, puis cliquez sur Arrêter.
Si vous décidez de conserver le projet, supprimez le compte de service créé pour cette solution, comme décrit dans la section suivante.
Facultatif : supprimer le compte de service
Si vous avez supprimé le projet que vous avez utilisé pour la solution, ignorez cette section.
Comme mentionné précédemment dans ce guide, lorsque vous avez déployé la solution, un compte de service a été créé en votre nom. Certaines autorisations IAM ont été accordées temporairement au compte de service. Autrement dit, les autorisations ont été révoquées automatiquement après la fin des opérations de déploiement et de suppression de la solution, mais le compte de service n'est pas supprimé. Nous vous recommandons de supprimer ce compte de service.
Si vous avez déployé la solution via la console Google Cloud, accédez à la page Déploiements de solutions. (Si vous êtes déjà sur cette page, actualisez le navigateur.) Un processus est déclenché en arrière-plan pour supprimer le compte de service. Aucune autre action n'est nécessaire.
Si vous avez déployé la solution à l'aide de la CLI Terraform, procédez comme suit :
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez le projet que vous avez utilisé pour la solution.
Sélectionnez le compte de service que vous souhaitez supprimer.
L'ID d'adresse e-mail du compte de service créé pour la solution est au format suivant :
goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
L'ID d'adresse e-mail contient les valeurs suivantes :
- DEPLOYMENT_NAME : nom du déploiement.
- NNN : nombre aléatoire à trois chiffres.
- PROJECT_ID : ID du projet dans lequel vous avez déployé la solution.
Cliquez sur Supprimer.
Résoudre les erreurs
Les actions à effectuer pour diagnostiquer et résoudre les erreurs dépendent de la méthode de déploiement et de la complexité de l'erreur.
Erreurs lors du déploiement via la console
Si le déploiement échoue lorsque vous utilisez la console, procédez comme suit :
Accédez à la page Déploiements de solutions.
Si le déploiement a échoué, le champ État indique Échec.
Afficher les détails des erreurs à l'origine de l'échec :
Sur la ligne correspondant au déploiement, cliquez sur
Actions.Vous devrez peut-être faire défiler l'écran pour voir l'option Actions sur la ligne.
Sélectionnez Afficher les journaux Cloud Build.
Consultez le journal Cloud Build et prenez les mesures appropriées pour résoudre le problème à l'origine de l'échec.
Erreurs lors du déploiement à l'aide de la CLI Terraform
Si le déploiement échoue lors de l'utilisation de Terraform, le résultat de la commande terraform
apply
inclut des messages d'erreur que vous pouvez consulter pour diagnostiquer le problème.
Les exemples des sections suivantes présentent des erreurs de déploiement que vous pouvez rencontrer lorsque vous utilisez Terraform.
Erreur API non activée.
Si vous créez un projet, puis tentez immédiatement de déployer la solution dans le nouveau projet, le déploiement peut échouer avec l'erreur suivante :
Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.
Si cette erreur se produit, attendez quelques minutes, puis exécutez à nouveau la commande terraform apply
.
Erreur "Impossible d'attribuer l'adresse demandée"
Lorsque vous exécutez la commande terraform apply
, une erreur cannot assign requested address
peut se produire avec un message semblable à celui-ci :
Error: Error creating service account:
Post "https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts:
dial tcp [2001:db8:ffff:ffff::5f]:443:
connect: cannot assign requested address
Si cette erreur se produit, exécutez à nouveau la commande terraform apply
.
Erreur de configuration
Si vous modifiez des arguments de ressources dans votre fichier main.tf
à l'aide de valeurs non compatibles, une erreur semblable à ce qui suit se produit :
Error: Error creating Instance: googleapi: Error 400: Provided Redis version is
not supported: REDIS_5_X
│ com.google.apps.framework.request.StatusException:
<eye3 title='INVALID_ARGUMENT'/>
generic::INVALID_ARGUMENT: Provided Redis version is not supported: REDIS_5_X
Details:
│ [>
│ {
│ "@type": "type.googleapis.com/google.rpc.BadRequest",
│ "fieldViolations": [
│ {
│ "description": "Invalid value: REDIS_5_X",
│ "field": "instance.redis_version"
│ }
│ ]
│ }
│ ]
│
│ with google_redis_instance.main,
│ on main.tf line 96, in resource "google_redis_instance" "main":
│ 96: resource "google_redis_instance" "main" {
Dans ce cas, l'objectif était d'utiliser la version 5 de Redis, mais la valeur spécifiée pour l'argument instance.redis_version
(REDIS_5_X
) dans le fichier main.tf
n'est pas valide.
La valeur correcte est REDIS_5_0
, comme indiqué dans la documentation de l'API REST Memorystore.
Erreur lors de la suppression d'un déploiement
Dans certains cas, les tentatives de suppression d'un déploiement peuvent échouer :
- Après avoir déployé une solution via la console, si vous modifiez une ressource provisionnée par la solution et que vous essayez de supprimer le déploiement, la suppression peut échouer. Le champ État de la page Déploiements de solutions indique Échec. Le journal Cloud Build affiche la cause de l'erreur.
- Après avoir déployé une solution à l'aide de la CLI Terraform, si vous modifiez une ressource à l'aide d'une interface autre que Terraform (par exemple, la console), et que vous essayez de supprimer le déploiement, la suppression peut échouer. Les messages dans le résultat de la commande
terraform destroy
indiquent la cause de l'erreur.
Examinez les journaux et les messages d'erreur, identifiez et supprimez les ressources à l'origine de l'erreur, puis essayez à nouveau de supprimer le déploiement.
Si un déploiement effectué à partir de la console n'est pas supprimé et si vous ne pouvez pas diagnostiquer l'erreur à l'aide du journal Cloud Build, vous pouvez supprimer le déploiement à l'aide de la CLI Terraform, comme décrit dans la section suivante.
Supprimer un déploiement effectué à partir de la console à l'aide de la CLI Terraform
Cette section explique comment supprimer un déploiement effectué à partir de la console si des erreurs se produisent lorsque vous essayez de le supprimer via la console. Dans cette approche, vous téléchargez la configuration Terraform du déploiement que vous souhaitez supprimer, puis vous supprimez le déploiement à l'aide de la CLI Terraform.
Identifiez la région dans laquelle le code Terraform, les journaux et d'autres données du déploiement sont stockés. Cette région peut être différente de celle que vous avez sélectionnée lors du déploiement de la solution.
Dans la console Google Cloud, accédez à la page Déploiements de solutions.
Sélectionnez le projet contenant le déploiement que vous souhaitez supprimer.
Dans la liste des déploiements, identifiez la ligne correspondant au déploiement que vous souhaitez supprimer.
Cliquez sur
Afficher tout le contenu de la ligne.Dans la colonne Emplacement, notez le deuxième emplacement, comme indiqué dans l'exemple suivant :
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Créez des variables d'environnement pour l'ID de projet, la région et le nom du déploiement que vous souhaitez supprimer :
export REGION="REGION" export PROJECT_ID="PROJECT_ID" export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
Dans ces commandes, remplacez les éléments suivants :
- REGION : emplacement que vous avez noté précédemment dans cette procédure.
- PROJECT_ID : ID du projet dans lequel vous avez déployé la solution.
- DEPLOYMENT_NAME : nom du déploiement que vous souhaitez supprimer.
Obtenez l'ID de la dernière révision du déploiement que vous souhaitez supprimer :
export REVISION_ID=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .latestRevision -r) echo $REVISION_ID
Le résultat ressemble à ce qui suit :
projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
Obtenez l'emplacement Cloud Storage de la configuration Terraform pour le déploiement :
export CONTENT_PATH=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \ | jq .applyResults.content -r) echo $CONTENT_PATH
Voici un exemple de résultat de cette commande :
gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
Téléchargez la configuration Terraform de Cloud Storage vers Cloud Shell :
gcloud storage cp $CONTENT_PATH $HOME --recursive cd $HOME/content/
Attendez que le message
Operation completed
s'affiche, comme illustré dans l'exemple suivant :Operation completed over 45 objects/268.5 KiB
Initialisez Terraform :
terraform init
Attendez que le message suivant s'affiche :
Terraform has been successfully initialized!
Supprimez les ressources déployées :
terraform destroy
Terraform affiche la liste des ressources qui seront supprimées.
Si des avertissements concernant des variables non déclarées s'affichent, ignorez-les.
Lorsque vous êtes invité à effectuer les actions, saisissez
yes
.Terraform affiche des messages de progression. Une fois toutes les ressources supprimées, Terraform affiche le message suivant :
Destroy complete!
Supprimez l'artefact de déploiement :
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
Attendez quelques secondes, puis vérifiez que l'artefact de déploiement a été supprimé :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .error.message
Si le résultat indique
null
, attendez quelques secondes, puis exécutez à nouveau la commande.Une fois l'artefact de déploiement supprimé, un message s'affiche comme illustré dans l'exemple suivant :
Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
Envoyer des commentaires
Les solutions pour un démarrage rapide sont fournies uniquement à titre d'information et ne constituent pas des produits officiellement compatibles. Google est susceptible de modifier ou supprimer des solutions sans préavis.
Pour résoudre les erreurs, consultez les journaux Cloud Build et la sortie Terraform.
Pour envoyer vos commentaires, procédez comme suit :
- Pour obtenir de la documentation, des tutoriels intégrés à la console ou la solution, utilisez le bouton Envoyer des commentaires.
- Pour obtenir le code Terraform non modifié, créez des problèmes dans le dépôt GitHub. Les problèmes GitHub sont examinés de la manière la plus optimale possible et ne sont pas destinés aux questions d'utilisation générales.
- Pour les problèmes liés aux produits utilisés dans la solution, prenez contact avec Cloud Customer Care.
Étapes suivantes
- En savoir plus sur l'IA générative sur Vertex AI.