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.

Sebelum men-deploy aplikasi

Sebelum Anda dapat men-deploy aplikasi:

Men-deploy aplikasi Anda

Deploy aplikasi Anda ke App Engine menggunakan perintah gcloud app deploy. Selama deployment, layanan Cloud Build membangun image container aplikasi Anda untuk dijalankan di lingkungan standar App Engine. Setiap build dijalankan di region yang sama dengan project Google Cloud Anda. Pelajari Mengelola image build lebih lanjut.

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

Men-deploy layanan

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

Untuk men-deploy versi layanan aplikasi Anda, jalankan perintah berikut dari direktori tempat file app.yaml layanan Anda berada:

gcloud app deploy

Jika Anda tidak menentukan file dengan perintah tersebut, hanya file app.yaml yang akan di-deploy di direktori Anda saat ini. Secara default, perintah deploy menghasilkan ID unik untuk versi yang Anda deploy, men-deploy versi tersebut ke project Google Cloud yang Anda konfigurasikan untuk digunakan Google Cloud CLI, dan merutekan semua traffic ke versi baru.

Anda dapat mengubah perilaku default perintah dengan menargetkan file tertentu atau menyertakan parameter tambahan:

  • Untuk men-deploy file konfigurasi lain dari layanan Anda, Anda harus menargetkan dan men-deploy setiap file secara terpisah. Contoh:
    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 lihat referensi gcloud app deploy.

Men-deploy beberapa layanan

Gunakan perintah deployment yang sama untuk men-deploy atau memperbarui beberapa layanan yang membentuk aplikasi Anda.

Sebelum memulai:

  • Pertama-tama, Anda harus men-deploy versi aplikasi ke layanan default sebelum dapat membuat dan men-deploy layanan berikutnya.
  • ID setiap layanan Anda harus ditentukan dalam file konfigurasi app.yaml yang sesuai. Untuk menentukan ID layanan, sertakan definisi elemen service di setiap file konfigurasi. Secara default, mengecualikan definisi elemen ini dari file konfigurasi Anda akan men-deploy versi ke layanan default.

Untuk men-deploy beberapa layanan, deploy file app.yaml setiap layanan secara terpisah. Anda dapat menentukan beberapa file dengan satu perintah gcloud app deploy:

gcloud app deploy service1/app.yaml service2/app.yaml

Melihat log build

Cloud Build melakukan streaming build dan men-deploy log yang dapat dilihat di bagian Histori build Cloud Build di Konsol Google Cloud. Untuk melihat build di region aplikasi, gunakan menu drop-down Region di bagian atas halaman guna memilih akan memfilter berdasarkan region mana.

Mengelola image build

Setiap kali Anda men-deploy versi baru, image container akan dibuat menggunakan layanan Cloud Build. Image container tersebut dibangun di region aplikasi, lalu dijalankan di lingkungan standar App Engine.

Image container yang telah dibangun disimpan dalam folder app-engine-tmp/app di Container Registry. Anda dapat mendownload gambar ini untuk disimpan atau dijalankan di tempat lain. Setelah deployment selesai, App Engine tidak lagi memerlukan image container. Perlu diperhatikan bahwa file ini tidak otomatis dihapus. Jadi, untuk menghindari mencapai kuota penyimpanan, Anda dapat menghapus gambar apa pun yang tidak diperlukan dengan aman. Namun, jika Anda mungkin memerlukan gambar pada masa mendatang atau ingin menyimpan salinan gambar, Anda harus mengekspor salinannya sebelum penghapusan. Untuk mengetahui informasi selengkapnya tentang cara mengelola image di Container Registry, lihat dokumentasi Container Registry.

Mengabaikan file

Anda dapat menggunakan file .gcloudignore untuk menentukan file dan direktori yang tidak akan diupload ke App Engine saat men-deploy layanan Anda. Ini berguna jika Anda ingin mengabaikan artefak build dan file lain yang tidak perlu diupload dengan deployment.

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 mengalihkan traffic

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

  1. Deploy versi baru Anda, tetapi cegah agar traffic tidak dirutekan secara otomatis ke versi baru

    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. Untuk informasi selengkapnya, lihat Menulis Log Aplikasi.

    App Engine merutekan permintaan yang dikirim ke https://PROJECT_ID.REGION_ID.r.appspot.com 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.

Untuk melihat detail trace di Cloud Trace, Anda dapat mengikuti Menemukan dan menjelajahi trace. Di Penjelajah Trace, Anda dapat menggunakan filter untuk memfilter berdasarkan layanan dan versi App Engine tertentu.