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. Misalnya,
perintah
go run
.
Sebelum men-deploy aplikasi
Sebelum Anda dapat men-deploy aplikasi:
- Pemilik project Google Cloud harus mengaktifkan App Engine.
- Anda harus memastikan 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 akan membuat image container aplikasi Anda untuk dijalankan di lingkungan standar App Engine. Build dibuat di region aplikasi. Pelajari lebih lanjut di 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 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.
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
Persyaratan untuk men-deploy beberapa layanan
- 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
.
Melihat log build
Cloud Build melakukan streaming build dan men-deploy log yang dapat dilihat di bagian histori Cloud Build di Konsol Google Cloud. Untuk melihat build dalam region aplikasi, gunakan menu drop-down Region di bagian atas halaman untuk memilih region yang ingin Anda filter.
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.
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 image tidak dihapus secara otomatis, jadi agar tidak melampaui kuota penyimpanan, tidak masalah jika Anda menghapus image yang tidak diperlukan.
Untuk mengetahui informasi selengkapnya tentang cara mengelola image di Container Registry, lihat
dokumentasi Container Registry.
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:
Deploy versi baru Anda, tetapi cegah traffic 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.Saat Anda ingin mengirim traffic ke versi baru, gunakan konsol Google Clouduntuk 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 informasi selengkapnya tentang menargetkan layanan dan versi tertentu, lihat Cara Permintaan Dirutekan.
Menggunakan variabel lingkungan build
Anda juga dapat menetapkan variabel lingkungan build untuk runtime yang mendukung buildpack Google Cloud.
Variabel lingkungan build adalah key-value pair yang di-deploy bersama aplikasi yang
memungkinkan Anda meneruskan informasi konfigurasi
ke buildpack. Misalnya, Anda mungkin ingin menyesuaikan opsi compiler. Anda
dapat menambahkan atau menghapus variabel lingkungan build ini dengan mengonfigurasi
kolom build_env_variables
di file app.yaml
.
Menggunakan server pengembangan lokal
Anda dapat menggunakan dev_appserver
untuk menjalankan aplikasi secara lokal guna 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.
Karena Go 1.11 telah mencapai akhir dukungan, Anda tidak dapat lagi menggunakan
versi terbaru dev_appserver.py
untuk menjalankan aplikasi
secara lokal. Untuk terus menggunakan dev_appserver.py
, ikuti petunjuk dalam
Menggunakan server pengembangan lokal.
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 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
:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py/dev_appserver.py --application=PROJECT_ID app.yaml
Untuk mengubah port, sertakan opsi
--port
:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py/dev_appserver.py --application=PROJECT_ID app.yaml --port=9999
Ganti DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda mengekstrak versi
devapp_server.py
yang diarsipkan. Untuk informasi selengkapnya tentang mendownload dan menggunakan versidev_appserver.py
yang diarsipkan, lihat Menggunakan server pengembangan lokal.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 Cloud bergantung pada keberadaan variabel lingkungan GOOGLE_CLOUD_PROJECT
, yang seharusnya berupa 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 variabel lingkungan ini ditetapkan dengan benar selama pengembangan
lokal, lakukan inisialisasi dev_appserver
menggunakan
parameter --application=PROJECT_ID
seperti yang ditunjukkan pada contoh
sebelumnya.
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 diarahkan 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.