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.
Sebaiknya gunakan alat Python standar, seperti virtualenv
untuk membuat
lingkungan yang terisolasi dan pytest
untuk menjalankan pengujian unit dan pengujian integrasi, bukan
bergantung pada dev_appserver
, server pengembangan lokal yang disediakan dengan
Google Cloud SDK.
Misalnya, Anda biasanya dapat menjalankan aplikasi Flask dengan server pengembangan Flask menggunakan:
python main.py
Mulai aplikasi Django menggunakan:
python manage.py runserver
Untuk menyimulasikan lingkungan App Engine produksi, jalankan server Antarmuka Gateway Server Web (WSGI) lengkap secara lokal. Gunakan perintah yang sama
yang ditetapkan sebagai titik entri dalam file app.yaml
, misalnya:
gunicorn -b :$PORT main:app
Sebelum men-deploy aplikasi
Sebelum men-deploy aplikasi:
- Pemilik project Google Cloud harus menyiapkan project Google Cloud Anda untuk App Engine.
- Pastikan bahwa akun pengguna Anda menyertakan hak istimewa yang diperlukan.
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.
Setiap build dijalankan di region yang sama dengan project Google Cloud Anda. Untuk mengetahui informasi
selengkapnya, lihat Mengelola image build.
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 projectGoogle 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 projectGoogle 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 elemenservice
di setiap file konfigurasi. Secara default, mengecualikan definisi elemen ini dari file konfigurasi Anda akan men-deploy versi ke layanandefault
.
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 Region untuk memfilter berdasarkan region.
Mengelola image build
Setiap kali Anda men-deploy versi baru:
App Engine membuat image container menggunakan layanan Cloud Build.
Cloud Build mem-build image container di region aplikasi, dan berjalan di lingkungan standar App Engine.
App Engine menyimpan image container yang telah di-build di Artifact Registry. Anda dapat mendownload gambar ini untuk disimpan atau dijalankan di tempat lain.
Setelah deployment selesai, App Engine tidak lagi memerlukan image container. Image container tidak otomatis dihapus. Agar tidak melampaui kuota penyimpanan, Anda dapat menghapus image yang tidak diperlukan dengan aman. Namun, jika Anda mungkin memerlukan gambar tersebut di masa mendatang atau ingin menyimpan salinan gambar, Anda harus mengekspor salinan sebelum penghapusan. Untuk mengetahui informasi selengkapnya tentang cara mengelola image di Artifact Registry, lihat Mengelola image.
Abaikan file
Anda dapat menggunakan file .gcloudignore
untuk menentukan file dan direktori yang tidak akan
diupload ke App Engine saat men-deploy layanan Anda. Hal ini berguna untuk mengabaikan artefak build dan file lain yang tidak perlu diupload dengan deployment.
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 mengalihkan traffic
Sebelum mengonfigurasi versi baru untuk menerima traffic, Anda dapat mengujinyadi App Engine. Misalnya, untuk menguji versi baru layanan default
Anda:
Deploy versi baru Anda, tetapi cegah agar traffic tidak dirutekan secara otomatis ke versi baru
gcloud app deploy --no-promote
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.Jika Anda ingin mengirim traffic ke versi baru, gunakan Konsol Google Cloud untuk memigrasikan traffic:
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 server pengembangan lokal
Google Cloud CLI menyertakan server pengembangan lokal bernama dev_appserver
yang dapat Anda jalankan secara lokal untuk menyimulasikan aplikasi yang berjalan di App Engine produksi. Server pengembangan ini menyimulasikan sebagian lingkungan tempat aplikasi Anda berjalan, sehingga Anda dapat menguji aplikasi yang ditulis untuk runtime lingkungan standar apa pun.
Menjalankan server pengembangan lokal
Setelah membuat file konfigurasi app.yaml
untuk aplikasi, Anda dapat memulai server pengembangan lokal dengan perintah dev_appserver.py
guna menjalankan aplikasi Anda secara lokal.
Guna mendapatkan kredensial akses untuk akun pengguna Anda, jalankan:
gcloud auth login
Izinkan aplikasi lokal Anda untuk sementara menggunakan kredensial pengguna guna mengakses API:
gcloud auth application-default login
Untuk memulai server pengembangan lokal:
Dalam direktori yang berisi file konfigurasi
app.yaml
, jalankan perintahdev_appserver.py
serta tentukan project ID dan jalur ke fileapp.yaml
:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --application=PROJECT_ID app.yaml
Untuk mengubah port, sertakan opsi
--port
:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --application=PROJECT_ID app.yaml --port=9999
Untuk menguji aplikasi Python 3, jalankan
dev_appserver.py
dengan penafsir Python 3, Anda harus menentukan biner Python 3 dalam flag--runtime_python_path
, misalnya:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --runtime_python_path=/usr/bin/python3 --application=PROJECT_ID app.yaml --port=9999
Untuk mempelajari opsi perintah
dev_appserver.py
lebih lanjut, lihat Opsi server pengembangan lokal.Saat server pengembangan lokal dimulai, server tersebut akan menyiapkan lingkungan pengembangan yang telah menginstal dependensi yang ditemukan dalam file
requirements.txt
Anda.Server pengembangan lokal sekarang berjalan dan memproses permintaan. Buka http://localhost:8080/ di browser web Anda untuk melihat cara kerja aplikasi.
Jika Anda menentukan port kustom dengan opsi
--port
, jangan lupa untuk membuka browser ke port tersebut.Untuk menghentikan server lokal dari command line, tekan Control-C di keyboard.
Mendeteksi lingkungan runtime aplikasi
Untuk menentukan apakah kode Anda berjalan di produksi atau di server pengembangan lokal,
Anda dapat memeriksa variabel lingkungan GAE_ENV
:
if os.getenv('GAE_ENV', '').startswith('standard'): # Production in the standard environment else: # Local execution.
Menggunakan server pengembangan lokal dengan layanan Google Cloud
Anda dapat mengintegrasikan dev_appserver
dengan komponen Google Cloud lainnya.
Library klien cloud
Banyak library klien Google Cloud yang bergantung pada keberadaan variabel lingkungan GOOGLE_CLOUD_PROJECT
, yang akan menjadi project ID Google Cloud Anda. Anda dapat menemukan nilainya dengan menjalankan perintah gcloud config list project
atau melihat halaman project Anda di Konsol Google Cloud.
Untuk memastikan bahwa variabel lingkungan ini ditetapkan dengan benar selama pengembangan lokal, lakukan inisialisasi dev_appserver
menggunakan parameter --application=PROJECT_ID
seperti yang ditunjukkan pada contoh di atas.
Emulator Cloud
Anda dapat menguji aplikasi dengan emulator untuk Cloud Datastore, Cloud Bigtable, dan Cloud Pub/Sub.
Memuat ulang perubahan requirements.txt
dan app.yaml
secara otomatis
Server pengembangan lokal akan otomatis menginstal dependensi yang ditemukan dalam file requirements.txt
Anda. dev_appserver
juga memungkinkan Anda menguji fungsionalitas yang dikonfigurasi melalui app.yaml
. Misalnya, Anda dapat menguji kemampuan aplikasi untuk menampilkan file statis. Saat dev_appserver
berjalan, setiap perubahan yang dibuat pada requirements.txt
dan app.yaml
akan membuat aplikasi otomatis dimulai ulang untuk mencerminkan perubahan ini. Hal ini dapat mengakibatkan penundaan sementara karena dependensi didownload dan diinstal.
Perutean dan pengelolaan instance di server pengembangan
Menemukan alamat instance
Server pengembangan lokal membuat semua instance penskalaan manual saat startup. Instance untuk layanan penskalaan otomatis dan dasar dikelola secara dinamis. Server menetapkan port untuk setiap layanan, dan klien dapat bergantung pada server untuk melakukan load balancing dan memilih instance secara otomatis. Penetapan port untuk menangani setiap layanan akan muncul di aliran pesan log server.
Berikut adalah port untuk aplikasi yang menentukan tiga layanan:
INFO Starting module "default" running at: http://localhost:8084 INFO Starting module "service1" running at: http://localhost:8082 INFO Starting module "service2" running at: http://localhost:8083
Saat Anda menggunakan alamat layanan, misalnya http://localhost:8082/
, server akan membuat atau memilih instance layanan dan mengirimkan permintaan ke instance tersebut.
Server menetapkan port unik ke setiap instance layanan. Anda dapat menggunakan server admin untuk menemukan port ini. Ada port unik untuk server admin, yang muncul di log pesan:
INFO Starting admin server at: http://localhost:8000
Alamat ini akan mengarahkan Anda ke konsol server admin. Klik Instance untuk melihat status dinamis instance aplikasi Anda.
Entri terpisah akan muncul untuk setiap instance manual dan dasar. Nomor instance adalah link dengan alamat port unik untuk setiap instance. Klik link untuk mengirim permintaan langsung ke instance tersebut.
File dispatch
Jika aplikasi Anda menyertakan file dispatch.yaml
, aliran pesan log akan menyertakan
port dispatcher:
INFO Starting dispatcher running at: http://localhost:8080
Permintaan ke port ini dirutekan sesuai dengan aturan dalam file dispatch.
Server tidak mendukung aturan file dispatch.yaml
yang menyertakan
nama host, misalnya, url: "customer1.myapp.com/*"
. Aturan dengan pola jalur
relatif (url: "*/fun"
), benar-benar berfungsi, sehingga Anda dapat menggunakan URL seperti
http://localhost/fun/mobile
untuk menjangkau instance. Server melaporkan error dalam aliran log jika Anda mencoba memulai aplikasi dengan file dispatch.yaml
yang berisi aturan berbasis host.
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.
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.