Menguji dan men-deploy aplikasi Anda

ID region

REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.

Pelajari ID region lebih lanjut.

Pelajari cara menjalankan aplikasi secara lokal, men-deploy aplikasi, dan menguji aplikasi di App Engine.

Berjalan secara lokal

Untuk menguji fungsi aplikasi sebelum men-deploy, jalankan aplikasi Anda di lingkungan lokal dengan alat pengembangan yang biasa Anda gunakan.

Men-deploy aplikasi Anda

Deploy aplikasi Anda ke App Engine menggunakan perintah gcloud app deploy.

Deployment Anda secara otomatis akan dibangun ke dalam image container oleh layanan Cloud Build, lalu image tersebut di-deploy ke lingkungan fleksibel App Engine. Container ini menyertakan perubahan lokal yang telah Anda buat pada image runtime.

Untuk men-deploy aplikasi secara terprogram, gunakan Admin API.

Sebelum memulai

Sebelum Anda dapat men-deploy aplikasi:

Men-deploy layanan

Anda dapat men-deploy aplikasi ke App Engine dengan men-deploy versi layanan aplikasi Anda dan setiap file konfigurasinya.

  • Anda dapat men-deploy file konfigurasi lain dari layanan Anda dengan menargetkan dan men-deploy setiap file secara terpisah, misalnya:

    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • Untuk menentukan ID versi kustom, gunakan flag --version.

  • Untuk mencegah agar traffic tidak dirutekan secara otomatis ke versi baru, gunakan flag --no-promote.

  • Untuk men-deploy ke project Google Cloud tertentu, gunakan flag --project.

Misalnya, untuk men-deploy layanan yang ditentukan oleh file app.yaml ke project Google Cloud tertentu, tetapkan ID versi kustom pada project tersebut, dan cegah agar traffic tidak dirutekan ke versi baru:

gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote

Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat referensi gcloud app deploy.

Mengabaikan file

Anda dapat menggunakan file .gcloudignore untuk menentukan file dan direktori yang tidak boleh diupload ke Google Cloud saat men-deploy layanan Anda. Hal ini berguna untuk mengabaikan artefak build dan file lain yang tidak perlu diupload dengan deployment Anda.

Pelajari sintaksis file .gcloudignore lebih lanjut dalam referensi gcloud.

Membangun container secara manual untuk deployment

Untuk mem-build image container di luar Google Cloud, Anda harus mengupload image ke repositori image container terlebih dahulu sebelum dapat men-deploy image ke App Engine dengan perintah gcloud app deploy.

Misalnya, jika Anda mem-build image container secara lokal dengan Docker, Anda dapat mengirim image tersebut ke Google Container Registry, lalu menentukan URL image Anda di --image-url dengan perintah:

gcloud app deploy --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE

Menggunakan pipeline deployment berkelanjutan otomatis

Anda dapat menggunakan Cloud Build untuk mengotomatiskan deployment dalam pipeline deployment berkelanjutan. Untuk mengetahui informasi selengkapnya, lihat artikel Men-deploy artefak dan Mengotomatiskan Build menggunakan Pemicu Build dalam dokumentasi Cloud Build.

Image dasar Docker

Jika Anda ingin mem-build aplikasi runtime kustom, lihat Membuat file Docker.

Melihat aplikasi Anda

Setelah men-deploy aplikasi ke App Engine, Anda dapat menjalankan perintah berikut untuk meluncurkan browser dan melihatnya di https://PROJECT_ID.REGION_ID.r.appspot.com:

gcloud app browse

Menguji di App Engine

Sebelum mengonfigurasi versi baru untuk menerima traffic, Anda dapat mengujinyadi App Engine. Misalnya, untuk menguji versi baru layanan default Anda:

  1. Deploy versi baru dan sertakan flag --no-promote:

    gcloud app deploy --no-promote

  2. Akses versi baru Anda dengan membuka URL berikut:

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    Sekarang Anda dapat menguji versi baru di lingkungan runtime App Engine. Anda dapat men-debug aplikasi dengan melihat log-nya di Logs Explorer pada Konsol Google Cloud. Untuk informasi selengkapnya, lihat Menulis Log Aplikasi.

    Permintaan yang dikirim ke https://PROJECT_ID.REGION_ID.r.appspot.com akan tetap diarahkan ke versi yang sebelumnya dikonfigurasi untuk menerima traffic.

  3. Jika Anda ingin mengirim traffic ke versi baru, gunakan Konsol Google Cloud untuk memigrasikan traffic:

    Mengelola versi

    Pilih versi yang baru saja Anda deploy dan klik Migrasikan traffic.

Anda dapat menggunakan proses yang sama untuk menguji versi baru layanan lain dengan mengganti default di URL dengan nama layanan Anda:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Untuk mengetahui informasi selengkapnya tentang cara menargetkan layanan dan versi tertentu, lihat Cara permintaan dirutekan.

Menggunakan variabel lingkungan build

Anda dapat menetapkan variabel lingkungan build untuk runtime yang mendukung buildpack.

Variabel lingkungan build adalah key-value pair yang dapat Anda tentukan untuk mengonfigurasi buildpack yang digunakan untuk men-deploy aplikasi. Misalnya, Anda mungkin ingin menentukan opsi compiler.

Sebelum memulai:

  • Kunci harus diawali dengan huruf ASCII besar, dan dapat menyertakan huruf ASCII besar, angka, dan garis bawah.
  • Sebaiknya jangan membuat variabel dengan imbuhan kunci GOOGLE_*.
  • Kunci berikut dicadangkan untuk penggunaan Google:
    • GOOGLE_RUNTIME
    • GOOGLE_RUNTIME_VERSION
    • GOOGLE_ENTRYPOINT
    • GOOGLE_DEVMODE
  • Anda dapat menggunakan kunci apa pun yang didukung oleh buildpack.

Untuk menggunakan variabel lingkungan dengan buildpack, tentukan kolom build_env_variables dalam file app.yaml Anda.

Pelajari buildpack lebih lanjut.

Menggunakan Cloud Trace

Cloud Trace berguna untuk memahami cara permintaan diterapkan ke aplikasi Anda. Anda dapat memeriksa informasi latensi yang mendetail untuk sebuah permintaan atau melihat latensi agregat di seluruh aplikasi.

Anda dapat melihat detail trace. Di Trace explorer, Anda dapat memfilter berdasarkan layanan dan versi App Engine tertentu.

Pemecahan masalah

Berikut adalah pesan error umum yang mungkin Anda temui saat men-deploy aplikasi:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Jika project Google Cloud tidak menyertakan aplikasi App Engine yang diperlukan , perintah gcloud app deploy bisa gagal saat mencoba menjalankan perintah gcloud app create. Hanya akun dengan peran Pemilik yang memiliki izin yang diperlukan untuk membuat aplikasi App Engine.
502 Bad Gateway
Project Google Cloud dapat gagal dimulai jika app.yaml salah dikonfigurasi. Periksa log aplikasi untuk melihat pesan error yang lebih mendetail.
[13] An internal error occurred while creating a Cloud Storage bucket.

App Engine membuat bucket multi-regional Cloud Storage default atas nama Anda di region yang sama tempat App Engine membuat aplikasi Anda. Bucket ini diperlukan untuk menyimpan konten aplikasi Anda. Error akan ditampilkan saat bucket ini tidak dapat dibuat, seperti dalam skenario berikut:

[13] An internal error occurred.

Error ini dapat terjadi jika Anda men-deploy layanan dengan konfigurasi jaringan yang menggunakan penyiapan VPC Bersama. Coba langkah berikut untuk mengatasinya:

  1. Pastikan konfigurasi app.yaml Anda valid.
  2. Pastikan lingkungan fleksibel App Engine Anda memenuhi semua persyaratan untuk penyiapan VPC Bersama. Lihat Menggunakan lingkungan fleksibel App Engine di jaringan VPC Bersama.
  3. Pastikan Anda telah memiliki akun layanan yang dikonfigurasi di project Anda. Jika tidak, Anda harus memulihkan akun. Region subnet dalam project host VPC Bersama harus cocok dengan lokasi tempat lingkungan App Engine Anda dibuat.

Jika masalah berlanjut, deploy ulang layanan Anda menggunakan Google Cloud SDK. Pastikan untuk menambahkan flag --verbosity=debug. Hubungi Dukungan Google Cloud dan berikan output perintahnya.

IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.

Jika deployment gagal dengan pesan error ini, jaringan yang dikonfigurasi untuk layanan App Engine tidak memiliki alamat yang tersisa untuk dialokasikan ke instance layanan baru. Untuk mengatasi masalah ini, perluas rentang VPC di subnet yang dikonfigurasi untuk layanan lingkungan fleksibel App Engine Anda.