Résoudre les problèmes liés à gcloud beta terraform vet

Pourquoi un problème de non-respect auquel je m'attendais ne génère-t-il pas d'erreur ?

Si vous testez votre logique de validation et constatez que la contrainte ne génère pas d'erreur alors qu'elle le devrait, cela peut être dû à un ou plusieurs des éléments suivants :

  • Votre bibliothèque de règles est-elle correctement configurée ? Vérifiez que votre bibliothèque de règles contient un répertoire policies/constraints dans lequel se trouve la contrainte devant générer un cas de non-respect.
  • La ressource Terraform qui contient le problème de non-respect est-elle une ressource acceptée ? gcloud beta terraform vet ne peut vérifier les non-respects que pour les ressources compatibles avec sa version. Exécutez à nouveau la commande avec --verbosity=debug et vérifiez si la sortie contient un message tel que celui-ci : unsupported resource: google_resource_name. Vous pouvez également vérifier si votre ressource figure dans la liste des ressources compatibles.
  • Votre contrainte cible-t-elle la ressource Terraform appropriée ?

    1. Vérifiez le champ kind de la contrainte. Il doit ressembler à ceci : GCPAppengineLocationConstraintV1
    2. Dans le répertoire policies/templates, recherchez une règle possédant une valeur identique à spec.crd.spec.names.kind.
    3. Dans le champ rego, recherchez une valeur semblable à celle-ci : asset.asset_type == "appengine.googleapis.com/Application". Il s'agit du type d'élément CAI ciblé par la contrainte.
    4. Assurez-vous que le type d'élément CAI figure dans la liste des ressources compatibles.

Pourquoi une erreur indique-t-elle qu'aucun projet n'est défini ?

L'ancêtre d'une ressource permet de créer un nom d'élément CAI précis. Si gcloud beta terraform vet ne parvient pas à déterminer automatiquement l'ancêtre d'un élément CAI, il renvoie une erreur indiquant : project: required field is not set. Vous pouvez spécifier un projet par défaut avec l'option --project ou en définir un à l'aide de gcloud config.

Pourquoi une erreur s'affiche-t-elle indiquant getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden ?

Exécutez la commande avec --verbosity=debug et recherchez un message tel que Terraform is using this identity:. Il doit être suivi d'une adresse e-mail, qui est le compte utilisé pour les requêtes API.