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.
Gunakan dokumen berikut untuk memahami cara membuat struktur layanan dan resource terkait aplikasi Anda untuk App Engine.
Struktur direktori
Setiap versi layanan App Engine Anda ditentukan di file konfigurasi
app.yaml
. Untuk aplikasi sederhana, persyaratan minimum deployment adalah menentukan file app.yaml
. File app.yaml
bertindak sebagai deployment
descriptor dan menentukan setelan jenis
dan runtime penskalaan, pengendali, dan
resource lainnya untuk versi
layanan tertentu. Jika men-deploy beberapa versi layanan, Anda dapat membuat beberapa file YAML di direktori yang sama untuk merepresentasikan konfigurasi setiap versi.
Untuk setiap layanan, Anda dapat membuat direktori terpisah di root aplikasi saat Anda melakukan pengembangan secara lokal. Jika menghosting aplikasi di luar sistem kontrol versi (VCS), misalnya GitHub, Anda juga dapat menyusun struktur aplikasi agar menggunakan direktori terpisah dalam repositori, atau menggunakan repositori terpisah untuk setiap layanan. Setiap direktori atau repositori harus mewakili satu layanan dan berisi file app.yaml
layanan tersebut beserta kode sumber yang terkait.
Anda memiliki opsi untuk menentukan nama unik untuk setiap file app.yaml
layanan Anda. Misalnya, Anda dapat memberi nama file konfigurasi dengan nama layanan, atau menggunakan nama unik untuk mewakili setiap versi layanan tertentu tersebut, seperti service1.yaml
atau app.standard.yaml
.
File konfigurasi opsional lainnya harus
berada di direktori root atau repositori
layanan default
aplikasi Anda. File konfigurasi
opsional ini menerapkan setelan seluruh aplikasi yang tidak spesifik untuk
layanan tertentu, termasuk file dispatch.yaml
,
index.yaml
, dan cron.yaml
.
Contoh
Contoh berikut menunjukkan tampilan aplikasi dengan tiga layanan
jika Anda mengembangkan aplikasi secara lokal. dispatch.yaml
opsional telah
ditambahkan ke aplikasi tersebut di direktori root. Di root juga terdapat tiga
direktori untuk setiap layanan aplikasi. Subdirektori untuk service1
menyertakan file sumber dan konfigurasi untuk layanan tersebut. Demikian pula, service2
dan service3
berada di direktori terpisah yang berisi file setiap layanan, meskipun service3
mencakup dua versi file konfigurasi YAML:
Untuk satu
aplikasi layanan, aplikasi tersebut hanya akan menyertakan
layanan default
dan semua file bisa berada di direktori
yang sama, pada root aplikasi tersebut. Dalam contoh berikut, kemungkinan struktur dari satu aplikasi layanan
didemonstrasikan dan mencakup file konfigurasi dispatch.yaml
opsional dan dua file konfigurasi yang merepresentasikan versi berbeda dari layanan tersebut,
service1.yaml
dan service2.yaml
:
Pertimbangan desain untuk waktu beroperasi instance
Kegagalan hardware atau software yang menyebabkan penghentian awal atau seringnya pemulaian ulang instance dapat terjadi tanpa peringatan dan dapat memerlukan waktu yang cukup lama untuk menyelesaikannya. Aplikasi Anda harus dapat menangani kegagalan tersebut.
Berikut beberapa strategi bagus untuk menghindari periode nonaktif karena instance dimulai ulang:
- Kurangi jumlah waktu yang diperlukan untuk memulai ulang atau memulai instance baru.
- Untuk komputasi yang berjalan lama, buat checkpoint secara berkala agar Anda dapat melanjutkan dari kondisi tersebut.
- Aplikasi Anda harus dalam kondisi "stateless" sehingga tidak ada yang disimpan pada instance.
- Gunakan antrean untuk menjalankan eksekusi tugas asinkron.
- Jika Anda mengonfigurasi instance ke penskalaan manual:
- Gunakan load balancing di berbagai instance.
- Konfigurasikan lebih banyak instance dari yang diperlukan untuk menangani traffic normal.
- Menulis logika penggantian yang menggunakan hasil yang disimpan dalam cache saat instance penskalaan manual tidak tersedia.
Pelajari instance selengkapnya di Cara Instance Dikelola.
Layanan default
Setiap aplikasi App Engine menyertakan layanan default
. Anda harus men-deploy versi awal aplikasi Anda ke layanan default
sebelum dapat membuat dan men-deploy layanan tambahan ke aplikasi Anda.
Layanan default dapat ditentukan secara opsional
dalam app.yaml
dengan setelan
service: default
.
Permintaan yang dikirim ke aplikasi Anda menggunakan project Google Cloud akan dikirim ke layanan default
, misalnya, https://PROJECT_ID.REGION_ID.r.appspot.com
. Untuk mempelajari lebih lanjut cara menargetkan layanan lainnya, lihat Berkomunikasi Antar-Layanan.
File konfigurasi opsional
File konfigurasi berikut mengontrol fitur opsional yang berlaku untuk semua layanan dalam satu aplikasi. Lihat topik berikut untuk mengetahui detail tentang setiap fitur opsional:
dispatch.yaml
mengganti aturan default pemilihan rute dengan mengirimkan permintaan masuk ke layanan tertentu berdasarkan jalur atau nama host di URL.index.yaml
menentukan indeks yang diperlukan aplikasi Anda jika menggunakan kueri Datastore.cron.yaml
mengonfigurasi tugas terjadwal secara teratur yang beroperasi pada waktu yang telah ditentukan atau secara berkala.
Pertimbangan penyimpanan data dan file
Dari App Engine, Anda dapat dengan mudah mengakses layanan Google Cloud lainnya seperti Datastore, Cloud SQL, dan Cloud Storage.
Anda juga memiliki opsi untuk menggunakan database eksternal atau pihak ketiga jika database tersebut didukung oleh bahasa Anda dan dapat diakses dari instance App Engine.
Untuk mengetahui detail tentang cara menyimpan file di Google Cloud atau secara eksternal, baca artikel Memahami Penyimpanan Data dan File.Anda juga dapat memilih cara menayangkan konten statis. Anda dapat menayangkan konten statis aplikasi langsung dari aplikasi tersebut di App Engine, menghosting konten statis di opsi Google Cloud seperti Cloud Storage, atau menggunakan jaringan penayangan konten (CDN) pihak ketiga. Untuk mengetahui informasi selengkapnya tentang cara menayangkan konten statis, lihat Menayangkan File Statis.
Langkah berikutnya
Jika Anda menggunakan beberapa layanan dan ingin men-deploy-nya secara bersamaan, lihat langkah-langkah untuk men-deploy beberapa layanan.