Memecahkan masalah deployment

Jika Anda mengalami masalah saat men-deploy aplikasi menggunakan App Engine Admin API, bagian ini mencantumkan pesan error dan saran untuk memperbaiki setiap error.

Pemanggil tidak memiliki izin untuk mengakses project

Error berikut terjadi saat Anda men-deploy aplikasi:

User EMAIL_ADDRESS does not have permission to access project PROJECT_ID (or it may not exist): The caller does not have permission

Error ini terjadi jika akun yang Anda gunakan untuk men-deploy aplikasi tidak memiliki izin untuk men-deploy aplikasi untuk project yang sedang berjalan.

Untuk mengatasi masalah ini, berikan peran App Engine Deployer (roles/appengine.deployer) ke akun tersebut. Untuk melihat akun mana yang Anda gunakan untuk men-deploy, lakukan salah satu hal berikut:

  • Jika Anda menggunakan Google Cloud CLI untuk melakukan deployment, jalankan perintah gcloud auth list.
  • Jika Anda melakukan deployment dari IDE, lihat setelan untuk plugin Cloud Tools.

Gagal mengambil metadata dari registry

Error berikut terjadi saat Anda men-deploy aplikasi:

Failed to fetch metadata from the registry, with reason: generic::permission_denied

Error ini terjadi jika Anda menggunakan perintah gcloud app deploy dari akun layanan yang tidak memiliki peran Admin Penyimpanan (roles/storage.admin).

Untuk mengatasi masalah ini, berikan peran Admin Penyimpanan ke akun layanan:

  • Untuk melihat akun mana yang Anda gunakan, jalankan perintah gcloud auth list.
  • Untuk memahami alasan mengapa penetapan peran App Engine Deployer (roles/appengine.deployer) saja mungkin tidak memadai dalam beberapa kasus, lihat peran App Engine.

Akun layanan harus memiliki izin untuk gambar

Error berikut terjadi saat Anda men-deploy aplikasi:

The App Engine appspot and App Engine flexible environment service accounts must
have permissions on the image IMAGE_NAME

Error ini terjadi karena salah satu alasan berikut:

Gagal membuat Cloud Build

Error berikut terjadi saat Anda men-deploy aplikasi:

Failed to create cloud build: Permission denied

Error ini terjadi jika Anda menggunakan perintah gcloud app deploy dari akun yang tidak memiliki peran Cloud Build Editor (roles/cloudbuild.builds.editor).

Untuk mengatasi masalah ini, berikan peran Cloud Build Editor ke akun layanan yang digunakan untuk men-deploy aplikasi Anda.

Untuk melihat akun mana yang Anda gunakan, jalankan perintah gcloud auth list.

Terjadi error saat mengambil izin aplikasi

Error berikut terjadi saat Anda men-deploy aplikasi:

Permissions error fetching application apps/app_name. Please make sure you are using the correct project ID and that you have permission to view applications on the project

Jika Anda menjalankan Google Cloud CLI versi 328 atau yang lebih baru, error berikut akan terjadi saat Anda men-deploy aplikasi:

Permissions error fetching application apps/app_name. Please
make sure that you have permission to view applications on the project and that
SERVICE_ACCOUNT has the App Engine Deployer (roles/appengine.deployer) role.

Error ini terjadi jika akun yang Anda gunakan untuk men-deploy aplikasi tidak memiliki peran App Engine Deployer (roles/appengine.deployer).

Untuk mengatasi masalah ini, pastikan Anda telah memberikan peran App Engine Deployer ke akun layanan yang digunakan untuk men-deploy aplikasi Anda; berikan peran tersebut jika akun layanan tidak memilikinya. Untuk melihat akun mana yang digunakan untuk men-deploy aplikasi, lakukan salah satu langkah berikut:

  • Jika Anda menggunakan Google Cloud CLI untuk melakukan deployment, jalankan perintah gcloud auth list.
  • Jika Anda melakukan deployment dari IDE, lihat setelan untuk plugin Cloud Tools.

Deployment gagal untuk project baru

Anda mungkin melihat error berikut saat men-deploy aplikasi untuk pertama kalinya di project baru:

ERROR: (gcloud.app.deploy) Error Response: [13] Failed to create cloud build: com.google.net.rpc3.client.RpcClientException:..........invalid bucket "staging.PROJECT-ID.appspot.com"; service account PROJECT-ID@appspot.gserviceaccount.com does not have access to the bucket

Berbagai faktor dapat menyebabkan error ini, seperti izin tidak ada, dan perubahan pada kebijakan organisasi.

Untuk mengatasi masalah ini, pastikan Anda telah memberikan peran Storage Admin (roles/storage.admin) ke akun layanan default. Untuk memberikan peran Storage Admin, lihat Menyimpan log build di bucket yang dibuat pengguna

Jika Anda telah memberikan peran Storage Admin, beserta peran lain yang diperlukan berdasarkan error izin yang berbeda yang Anda alami selama deployment, dan masih tidak dapat men-deploy aplikasi, hal ini mungkin karena perubahan kebijakan organisasi berikut:

  • Mulai Mei 2024, Google Cloud akan menerapkan kebijakan organisasi aman secara default untuk semua resource organisasi. Kebijakan ini mencegah App Engine memberikan peran Editor ke akun layanan default App Engine secara default.

  • Mulai Juni 2024, Cloud Build telah mengubah perilaku default untuk cara Cloud Build menggunakan akun layanan di project baru. Perubahan ini dijelaskan dalam Perubahan Akun Layanan Cloud Build. Akibat perubahan ini, project baru yang men-deploy versi untuk pertama kalinya mungkin menggunakan akun layanan App Engine default dengan izin yang tidak memadai untuk men-deploy versi.

Untuk menyelesaikan masalah ini, lakukan tindakan berikut:

Waktu tunggu hingga infrastruktur aplikasi responsif telah habis

Error berikut terjadi saat Anda men-deploy aplikasi:

Timed out waiting for the app infrastructure to become healthy

Berbagai faktor dapat menyebabkan error ini, seperti izin tidak ada, error kode, CPU atau memori tidak memadai, atau health check yang gagal. Error hanya terjadi di lingkungan fleksibel App Engine.

Untuk mengatasi masalah ini, abaikan kemungkinan penyebab berikut:

  1. Pastikan Anda telah memberikan peran Editor (roles/editor) ke akun layanan App Engine default.
  2. Pastikan Anda telah memberikan peran berikut ke akun layanan yang Anda gunakan untuk menjalankan aplikasi (biasanya akun layanan default, app-id@appspot.gserviceaccount.com):

  3. Berikan peran jika akun layanan tidak memilikinya.

  4. Jika Anda melakukan deployment dalam konfigurasi VPC Bersama dan meneruskan instance_tag di app.yaml, lihat bagian ini untuk memperbaiki masalah.

Error izin saat men-deploy layanan dengan Konektor Akses VPC Serverless

Error berikut terjadi saat Anda men-deploy aplikasi:

Please ensure you have [compute.globalOperations.get] on the service project

Error ini terjadi saat pengguna atau akun layanan yang mencoba men-deploy aplikasi dengan Konektor VPC Serverless tidak memiliki izin yang diperlukan.

Untuk mengatasi masalah ini, pastikan pengguna atau akun layanan yang melakukan deployment memiliki peran Serverless VPC Access User dan Compute Viewer IAM.

Terjadi error nilai tidak valid saat men-deploy dalam konfigurasi VPC Bersama

Error berikut muncul di Cloud Logging untuk instance Flex VM saat Anda men-deploy aplikasi:

Invalid value for field 'resource.tags.items[1]': 'aef-instance'. Duplicate
tags are not allowed: aef-instance on compute.instances.insert

Error ini disebabkan oleh masalah yang sedang sering terjadi di mana pengaturan instance_tag mengakibatkan error saat membuat instance.

Untuk mengatasi masalah ini, hapus kolom instance_tag dari file app.yaml, lalu deploy ulang.

Error saat men-deploy aplikasi dengan maksimal tiga instance atau kurang

Aplikasi yang di-deploy dengan max_instances disetel ke tiga atau kurang mungkin akan mengalami error atau periode nonaktif yang tidak terduga. Untuk mengatasi masalah ini, tentukan setidaknya empat instance maksimum di file app.yaml Anda, lalu deploy ulang.

Terjadi error saat melebihi batas pada instance maksimum

Error berikut terjadi saat Anda men-deploy aplikasi:

You may not have more than 'xx' total max instances in your project.

Ada batas jumlah maksimum instance yang dapat Anda buat per project. Permintaan untuk membuat instance tambahan akan gagal jika Anda melebihi batas ini.

Untuk mengatasi masalah ini, tetapkan nilai max_instances di file app.yaml pada nilai kurang dari batas ini atau hapus beberapa layanan atau versi agar jumlahnya max_instances sesuai batas.

Build selama deployment gagal tanpa adanya error di log

Error berikut terjadi saat Anda men-deploy aplikasi:

ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/cloud-build/builds/BUILD_ID?project=PROJECT_NUMBER Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details

Merujuk pada link dalam pesan error akan menunjukkan bahwa semua langkah build berhasil. Namun, aplikasi gagal dibangun.

Masalah ini terjadi jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) atau telah menyiapkan kebijakan retensi data untuk bucket staging.PROJECT_ID.appspot.com.

Untuk mengatasi masalah ini, ubah setelan berikut untuk bucket staging.PROJECT_ID.appspot.com Anda:

Build selama deployment gagal saat dijalankan dengan NODE_ENV=development

Error ini mungkin terjadi saat Anda men-deploy aplikasi Node.js. Secara default, runtime Node.js akan mengeksekusi npm run build jika skrip build terdeteksi di file package.json.

Hal ini dapat menyebabkan perilaku yang tidak terduga, seperti build yang berjalan lama, atau error kehabisan memori.

Tentukan NODE_ENV=development di file app.yaml Anda untuk memastikan eksekusi memiliki semua dependensi yang diperlukan.

Meskipun terjadi error, Anda dapat memaksa produksi dengan menentukan NODE_ENV: 'production' di bawah build-env-variables dalam file app.yaml Anda:

  build_env_variables:
    NODE_ENV: 'production'

Untuk mengetahui informasi selengkapnya, lihat Menjalankan langkah-langkah build kustom selama deployment.