Memecahkan masalah gcloud beta terraform vet

Mengapa pelanggaran yang saya duga tidak menampilkan error?

Jika Anda menguji logika validasi dan menemukan bahwa batasan tidak memunculkan error yang seharusnya muncul, hal ini mungkin disebabkan oleh salah satu atau beberapa hal berikut:

  • Apakah library kebijakan Anda disiapkan dengan benar? Pastikan library kebijakan Anda berisi direktori policies/constraints, yang berisi batasan yang diduga akan menyebabkan pelanggaran.
  • Apakah resource Terraform yang berisi pelanggaran merupakan resource yang didukung? gcloud beta terraform vet hanya dapat memeriksa pelanggaran untuk resource yang didukung dalam versinya. Jalankan kembali perintah Anda dengan --verbosity=debug dan cari pesan seperti: unsupported resource: google_resource_name. Atau, Anda dapat memeriksa apakah resource Anda ada dalam daftar resource yang didukung.
  • Apakah batasan Anda menargetkan resource Terraform yang benar?

    1. Periksa kolom kind batasan. Formatnya harusnya seperti ini: GCPAppengineLocationConstraintV1
    2. Telusuri direktori policies/templates untuk mencari kebijakan yang memiliki nilai yang sama untuk spec.crd.spec.names.kind
    3. Di kolom rego, cari: asset.asset_type == "appengine.googleapis.com/Application". Ini adalah Jenis Aset CAI yang ditargetkan batasan.
    4. Pastikan Jenis Aset CAI ada dalam daftar resource yang didukung.

Mengapa saya mendapatkan pesan error yang menyatakan bahwa tidak ada project yang ditentukan?

Ancestry resource digunakan untuk membuat Nama Aset CAI yang akurat. Jika gcloud beta terraform vet tidak dapat menentukan ancestry untuk Aset CAI secara otomatis, maka akan muncul error: project: required field is not set. Anda dapat menyediakan project default dengan flag --project atau dengan mengaturnya menggunakan gcloud config.

Mengapa saya menerima pesan error getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden?

Jalankan perintah dengan --verbosity=debug dan cari pesan seperti Terraform is using this identity:. Pesan ini harus diikuti dengan alamat email, yang merupakan akun yang digunakan untuk permintaan API.