Memecahkan masalah error deployment

Halaman ini menjelaskan:

  • Cara memeriksa detail dan log untuk deployment dan setiap revisi.

  • Strategi pemecahan masalah untuk error umum yang mungkin Anda lihat saat men-deploy konfigurasi Terraform.

Memeriksa detail dan log deployment

Anda dapat memeriksa detail dan log untuk deployment dan setiap revisi.

Memeriksa status deployment

Setiap deployment memiliki informasi tentang status saat ini, kode error, dan detail tentang penyebab kegagalan.

Untuk error apa pun, mulai dengan melihat status deployment.

Memeriksa status revisi

Jika deployment gagal dengan kode error REVISION_FAILED, Anda dapat melihat status revisi.

Pada output status revisi, lihat kolom stateDetail dan errorCode.

Status revisi menyertakan informasi yang sama seperti untuk deployment. Selain itu, ID build juga disertakan.

Memeriksa log Cloud Build

Lihat status revisi dan dapatkan ID build Cloud Build yang digunakan oleh revisi.

Gunakan ID build untuk memeriksa log Cloud Build. Lihat Melihat hasil build untuk mengetahui detail tentang memeriksa hasil build.

Error yang biasa terjadi

Bagian ini menjelaskan error umum yang mungkin Anda lihat saat men-deploy konfigurasi Terraform dengan Infra Manager.

Deployment gagal

Jika status deployment adalah FAILED, deployment telah mengalami error yang tidak terduga.

Lihat status deployment dan periksa kolom stateDetail dan errorCode untuk mengetahui informasi selengkapnya.

Jika deployment gagal dengan kode error REVISION_FAILED, Anda dapat memeriksa status revisi.

Error konfigurasi

Jika status deployment adalah FAILED, deployment mungkin gagal karena error konfigurasi dengan konfigurasi Terraform.

Jika error deployment terkait dengan konfigurasi Anda, kolom tfErrors dan errorLogs akan disertakan dalam output status deployment. Contoh error konfigurasi mencakup konfigurasi yang tidak valid atau izin yang tidak ada.

Lihat error dari Terraform. Dalam output status deployment:

  • tfErrors adalah ringkasan error yang dialami Terraform (dibatasi oleh Infra Manager hingga 10 error dalam daftar ini).
  • errorLogs mengarah ke objek Cloud Storage di bucket artefak Anda. Bucket ini berisi semua tfErrors dalam format JSON yang dipisahkan baris baru.

Setiap tfError memiliki alamat resource dan deskripsi error yang dapat dibaca manusia di kolom errorDescription. Jika resource gagal karena kode error HTTP yang ditampilkan dari Google Cloud API, kolom httpResponseCode juga akan diisi. Informasi kegagalan API tambahan akan dicatat di kolom error.

Akun layanan tidak memiliki izin untuk mengambil konfigurasi

Anda akan melihat error berikut:

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

Anda melihat error ini karena Infra Manager tidak memiliki izin untuk mendapatkan konfigurasi Terraform dari bucket Cloud Storage.

Untuk mengatasi masalah ini, berikan peran storage.objectViewer ke akun layanan. Untuk mengetahui detail tentang cara memberikan izin ke akun layanan, lihat Mengonfigurasi akun layanan.

Lokasi untuk mengambil konfigurasi salah

Anda akan melihat error berikut:

  `blueprint fetch failed: invalid path`

Anda melihat error ini saat lokasi yang tidak valid ditentukan untuk mengambil konfigurasi Terraform. Infra Manager menggunakan istilah blueprint untuk merujuk pada konfigurasi Terraform.

Untuk mengatasi error ini, verifikasi lokasi konfigurasi Terraform, dan pastikan lokasi diformat dengan benar dalam perintah Anda.

Izin salah untuk mengaktifkan resource

Error biasanya berada di bawah tfErrors dengan kode respons 403 untuk resource yang tidak dapat di-deploy.

Anda melihat error ini saat akun layanan tidak memiliki izin yang memadai untuk membuat, membaca, memperbarui, atau menghapus resource yang ditentukan dalam konfigurasi Terraform.

Untuk mengatasi error ini, lihat Memberikan izin IAM akun layanan.

Konfigurasi dengan backend

Anda akan melihat error berikut:

  `blueprint invalid: found backend config in file.tf`

Anda melihat error ini saat konfigurasi Terraform memiliki blok backend. Infrastructure Manager mengelola backend, sehingga blok backend tidak dapat ditentukan dalam konfigurasi Terraform.

Untuk mengatasi error ini, hapus blok backend dari konfigurasi.

Memvalidasi konfigurasi repositori Cloud Build

Jika Infra Manager tidak dapat mengakses repositori Git Anda (menggunakan repositori Git pribadi atau alur kerja otomatis Cloud Build), Anda mungkin perlu memvalidasi bahwa repositori Cloud Build telah dikonfigurasi dengan benar.

Untuk memvalidasi bahwa repositori Cloud Build telah dikonfigurasi untuk memberikan akses ke repositori pribadi, lihat Menghubungkan ke repositori GitHub.

Infra Manager menggunakan koneksi pertama tempat URL repositori Cloud Build cocok dengan konfigurasi Terraform (direferensikan di --git-source-repo), dan tempat koneksi tersebut dapat menghasilkan token hanya baca. Koneksi repositori divalidasi secara langsung oleh panggilan ke accessReadToken API di repositori Cloud Build yang dipilih.

Jalankan perintah ini menggunakan akun layanan Infra Manager untuk memverifikasi bahwa izinnya sudah benar:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

Langkah selanjutnya