Menguji dan men-deploy aplikasi

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.

Menjalankan secara lokal

Untuk menguji 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.

Layanan Cloud Build akan otomatis mem-build deployment Anda ke dalam image container dan men-deploy image tersebut 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 layanan tersebut, dan cegah agar traffic tidak dirutekan ke versi baru:

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

Untuk informasi selengkapnya, lihat referensi gcloud app deploy.

Anda dapat menetapkan properti untuk gcloud CLI serta membuat dan mengelola konfigurasi SDK sehingga Anda tidak perlu menentukan flag seperti --project setiap kali melakukan deployment.

Abaikan 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:

  1. Upload image Anda ke repositori Artifact Registry. Untuk informasi selengkapnya, lihat Mengirim dan mengambil image.
  2. Deploy 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 Artifact Registry dan menentukan URL image Anda di flag --image-url perintah:

gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

Ganti:

  • LOCATION dengan lokasi repositori tempat gambar disimpan.

  • PROJECT-ID dengan project ID Google Cloud Anda.

  • REPOSITORY dengan nama repositori tempat gambar disimpan.

  • IMAGE dengan nama image container Anda.

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 ke App Engine dan Membuat dan mengelola pemicu build dalam dokumentasi Cloud Build.

Image dasar Docker

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

Melihat permohonan 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 melalui 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.

Memecahkan 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:

Misalnya, jika aplikasi App Engine Anda dibuat di region europe-west, meskipun region tersebut dipetakan ke lokasi europe-west1, Anda harus mengubah batasan untuk mengizinkan resource di in:eu-locations, yang mencakup semua region EU. Hal ini diperlukan karena bucket yang dibuat App Engine bersifat multi-regional. Jika aplikasi App Engine Anda dibuat di region US, Anda harus mengizinkan in:us-locations, dan jika aplikasi Anda dibuat di region ASIA, Anda harus mengizinkan in:asia-locations.

[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.