Halaman ini menjelaskan cara men-deploy aplikasi ke App Engine menggunakan Cloud Build. Jika Anda baru menggunakan Cloud Build, baca panduan memulai dan ringkasan konfigurasi build terlebih dahulu.
App Engine adalah platform serverless yang terkelola sepenuhnya untuk mengembangkan dan menghosting aplikasi web dalam skala besar. Untuk mengetahui informasi selengkapnya tentang App Engine, baca dokumentasi App Engine.
Sebelum memulai
Aktifkan App Engine API:
Siapkan kode sumber aplikasi Anda. Kode sumber Anda harus disimpan di repositori seperti GitHub atau Bitbucket.
Untuk menjalankan perintah
gclouddi halaman ini, instal Google Cloud CLI.
Izin Identity and Access Management yang diperlukan
-
Di konsol Google Cloud , buka halaman settings Cloud Build Permissions:
Untuk akun layanan Cloud Build yang ditentukan atau akun layanan Cloud Build default, tetapkan status peran berikut ke Diaktifkan:
- Admin App Engine (
roles/appengine.appAdmin) | Mengizinkan Cloud Build men-deploy versi baru ke App Engine.- Di panel Tetapkan Peran Pengguna Akun Layanan, pilih akun layanan yang akan ditiru identitasnya, lalu klik Beri Izin.
- Admin Penyimpanan (
roles/storage.admin) | Memungkinkan membaca dan menulis dari Cloud Storage. - Penulis Artifact Registry (
roles/artifactregistry.writer) | Mengizinkan penarikan image dari dan penulisan ke Artifact Registry. - Penulis Log (
roles/logging.logWriter) | Mengizinkan entri log ditulis ke Cloud Logging. - Cloud Build Editor (
roles/cloudbuild.builds.editor) | Mengizinkan akun layanan Anda menjalankan build.
- Admin App Engine (
Mengonfigurasi deployment
Cloud Build memungkinkan Anda menggunakan image container yang tersedia secara publik untuk menjalankan tugas. Anda dapat melakukannya dengan menentukan image dalam build step
di file konfigurasi Cloud Build.
App Engine menyediakan perintah gcloud app deploy, yang mem-build image dengan
kode sumber Anda dan men-deploy image tersebut di App Engine. Anda dapat menggunakan image cloud-sdk
sebagai langkah build dalam file konfigurasi untuk memanggil perintah gcloud dalam image.
Argumen yang diteruskan ke langkah build ini diteruskan langsung ke gcloud CLI,
sehingga Anda dapat menjalankan perintah gcloud apa pun dalam image ini.
Untuk men-deploy aplikasi ke App Engine, ikuti langkah-langkah berikut:
Buat file konfigurasi Cloud Build bernama
cloudbuild.yamlataucloudbuild.json.Di file konfigurasi:
- Tambahkan kolom
nameuntuk menentukan langkah buildcloud-sdk. - Tambahkan kolom
entrypointuntuk menggunakan alatbashsaatcloud-sdkdipanggil. Di kolom
args, panggil perintahgcloud app deploydan tetapkantimeoutuntuk App Engine yang akan digunakan saat memanggil Cloud Build. Hal ini diperlukan karena langkah-langkah build dan build Cloud Build memiliki waktu tunggu default 10 menit dan deployment App Engine dapat memerlukan waktu lebih lama untuk diselesaikan. Menentukan waktu tunggu yang lebih lama akan memastikan bahwa build tidak mengalami waktu tunggu habis jikagcloud app deploymemerlukan waktu lebih dari 10 menit untuk selesai.Error waktu tunggu saat menggunakan lingkungan standar App Engine: Anda hanya dapat mengonfigurasi waktu tunggu seperti yang dijelaskan di sini saat menggunakan lingkungan fleksibel App Engine. Lingkungan standar App Engine tidak mengizinkan konfigurasi waktu tunggu build. Jika Anda menggunakan Cloud Build untuk men-deploy di lingkungan standar App Engine, dan build Anda gagal dengan error waktu tunggu, pertimbangkan untuk menggunakan lingkungan fleksibel App Engine atau Cloud Run, sebagai pengganti lingkungan standar App Engine.
Tambahkan nilai build
timeoutlebih dari 10 menit.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }- Tambahkan kolom
Mulai build, dengan
SOURCE_DIRECTORYadalah jalur atau URL ke kode sumber danREGIONadalah salah satu region build yang didukung untuk memulai build:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Deployment berkelanjutan
Anda dapat mengotomatiskan deployment software ke App Engine dengan membuat pemicu Cloud Build. Anda dapat mengonfigurasi pemicu untuk mem-build dan men-deploy image setiap kali Anda mengupdate kode sumber.
Untuk mengotomatiskan deployment ke App Engine:
Di repositori Anda, tambahkan file konfigurasi dengan langkah-langkah untuk memanggil perintah
gcloud app deploy:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }Buat pemicu build dengan file konfigurasi yang dibuat pada langkah sebelumnya:
Buka halaman Pemicu di konsol Google Cloud :
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Klik Create trigger.
Di halaman Buat pemicu, masukkan setelan berikut:
Masukkan nama untuk pemicu Anda.
Pilih peristiwa repositori untuk memulai pemicu Anda.
Pilih repositori yang berisi kode sumber dan file konfigurasi build Anda.
Tentukan ekspresi reguler untuk nama cabang atau tag yang akan memulai pemicu.
Konfigurasi: Pilih file konfigurasi build yang Anda buat sebelumnya.
Klik Buat untuk menyimpan pemicu build Anda.
Setiap kali Anda mengirim kode baru ke repositori, Anda akan otomatis memulai build dan men-deploy di App Engine.
Untuk mengetahui informasi selengkapnya tentang cara membuat pemicu Cloud Build, lihat Membuat dan mengelola pemicu build.
Langkah berikutnya
- Pelajari cara men-deploy di Cloud Run
- Pelajari cara melakukan deployment biru-hijau di Compute Engine
- Pelajari cara men-deploy di GKE
- Pelajari cara men-deploy fungsi di Cloud Run
- Pelajari cara men-deploy di Firebase
- Pelajari cara memecahkan masalah error build.