Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Warum gibt ein erwarteter Verstoß keinen Fehler aus?
Wenn Sie Ihre Validierungslogik testen und feststellen, dass die Einschränkung keinen Fehler auslöst, obwohl ein Verstoß vorliegt, kann dies an einem oder mehreren der folgenden Gründe liegen:
Ihre Richtlinienbibliothek ist nicht korrekt eingerichtet. Prüfen Sie, ob Ihre Richtlinienbibliothek ein policies/constraints-Verzeichnis mit der Einschränkung enthält, von der Sie erwarten, dass sie den Verstoß auslöst.
Die Terraform-Ressource, die den Verstoß enthält, ist keine unterstützte Ressource. Der gcloud beta terraform vet kann nur auf Verstöße für Ressourcen prüfen, die für seine Version unterstützt werden. Führen Sie den Befehl mit --verbosity=debug noch einmal aus und suchen Sie nach einer Meldung wie unsupported resource:
google_resource_name. Sie können auch prüfen, ob Ihre Ressource in der Liste der unterstützten Ressourcen enthalten ist.
Ist Ihre Einschränkung auf die richtige Terraform-Ressource ausgerichtet?
Prüfen Sie das Feld kind der Einschränkung. Es sollte in etwa Folgendes enthalten: GCPAppengineLocationConstraintV1.
Suchen Sie im Verzeichnis policies/templates nach einer Richtlinie, die den gleichen Wert für spec.crd.spec.names.kind hat.
Suchen Sie im Feld rego nach einem Eintrag wie asset.asset_type ==
"appengine.googleapis.com/Application". Dies ist der CAI-Asset-Typ, für den die Einschränkung vorgesehen ist.
Warum erhalte ich die Fehlermeldung, dass kein Projekt definiert ist?
Für das Erstellen eines exakten CAI-Asset-Namens wird die Ressourcenherkunft verwendet. Wenn gcloud beta terraform vet die Herkunft für ein CAI-Asset nicht automatisch ermitteln kann, wird ein Fehler wie project: required field is not set zurückgegeben. Sie können ein Standardprojekt mit dem Flag --project angeben oder ein Projekt mit gcloud config festlegen.
Warum erhalte ich die Fehlermeldung getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden?
Führen Sie den Befehl mit --verbosity=debug aus und suchen Sie nach einer Nachricht wie Terraform
is using this identity:. Darauf sollte eine E-Mail-Adresse folgen, die das Konto ist, das für API-Anfragen verwendet wird.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-18 (UTC)."],[[["\u003cp\u003ePre-General Availability (Pre-GA) products and features are governed by the "Pre-GA Offerings Terms" in the General Service Terms.\u003c/p\u003e\n"],["\u003cp\u003ePre-GA offerings are provided "as is" with potentially limited support, as detailed in the launch stage descriptions.\u003c/p\u003e\n"],["\u003cp\u003eConstraint violations may not trigger errors if the policy library is incorrectly set up, the resource is unsupported, or the constraint targets the wrong resource type.\u003c/p\u003e\n"],["\u003cp\u003eThe error "project: required field is not set" indicates that the tool cannot determine the CAI Asset's ancestry and requires a project to be specified.\u003c/p\u003e\n"],["\u003cp\u003eA "permission denied" error when getting resource ancestry suggests an authentication issue or insufficient permissions for the specified identity.\u003c/p\u003e\n"]]],[],null,["# Troubleshoot gcloud beta terraform vet\n\n| **Preview**\n|\n|\n| This product or feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA products and features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nWhy is a violation I expected not throwing an error?\n----------------------------------------------------\n\nIf you test your validation logic and find that the constraint isn't throwing an\nerror when it should be, this might be a result of one or more of the following:\n\n- **Is your policy-library set up correctly?** Verify that your policy library contains a `policies/constraints` directory, which contains the constraint you are expecting to cause a violation.\n- **Is the Terraform resource that contains the violation a supported\n resource?** `gcloud beta terraform vet` can only check for violations for resources that are supported in its version. Re-run your command with `--verbosity=debug` and look for a message like: `unsupported resource:\n google_resource_name`. Or you can check whether your resource is in the list of [supported resources](/docs/cloud-asset-inventory/overview#supported_resource_types).\n- **Is your constraint targeting the correct Terraform resource?**\n\n 1. Check the `kind` field of the constraint. It should be something like: `GCPAppengineLocationConstraintV1`\n 2. Search the `policies/templates` directory for a policy that has the same value for `spec.crd.spec.names.kind`\n 3. In the `rego` field, look for something like: `asset.asset_type ==\n \"appengine.googleapis.com/Application\"`. This is the [CAI Asset Type](/asset-inventory/docs/supported-asset-types) that the constraint targets.\n 4. Make sure that the CAI Asset Type is in the list of [supported resources](/docs/cloud-asset-inventory/overview#supported_resource_types).\n\nWhy am I getting an error saying that no project is defined?\n------------------------------------------------------------\n\nResource Ancestry is used to build an accurate CAI Asset Name. If\n`gcloud beta terraform vet` can't automatically determine the ancestry for a CAI Asset,\nit will return an error saying: `project: required field is not set`. You can\nprovide a default project with the `--project` flag or by setting one using\n[`gcloud config`](/sdk/gcloud/reference/config).\n\nWhy am I getting an error saying `getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden`?\n----------------------------------------------------------------------------------------------------------------------------------------------------------\n\nRun the command with `--verbosity=debug` and look for a message like `Terraform\nis using this identity:`. It should be followed by an email address, which is\nthe account being used for API requests.\n\n- If there is no email address, then [make sure that your authentication is working properly](/sdk/gcloud/reference/auth).\n- If there is an email address, but it's not the service account that you wanted to impersonate, then [make sure that your service account impersonation is set up correctly](/sdk/gcloud/reference#--impersonate-service-account)\n- If the correct email address is showing, make sure that it has the following permissions on the project:\n - `getIamPolicy`\n - `resourcemanager.projects.get`"]]