ID Wilayah
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.
Panduan ini membahas cara membuat struktur layanan dan resource terkait aplikasi 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 mewakili
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 untuk seluruh aplikasi yang tidak spesifik bagi
layanan tertentu, termasuk file dispatch.yaml
, index.yaml
, dan
cron.yaml
.
Contoh
Aplikasi sederhana hanya memerlukan app.yaml
untuk ditambahkan di lokasi yang sama dengan
file sumber aplikasi. Untuk satu aplikasi layanan, aplikasi tersebut hanya akan menyertakan
layanan default
dan semua file dapat berada di direktori
yang sama, pada root aplikasi tersebut:
Contoh berikut menunjukkan cara menyusun struktur aplikasi dengan tiga layanan
jika Anda mengembangkan aplikasi secara lokal. File 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:
Dalam contoh berikut, satu layanan memiliki file dispatch.yaml
opsional
dan dua file konfigurasi yang mewakili 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.
- Tulis logika fall-back yang menggunakan hasil yang di-cache saat instance penskalaan manual tidak tersedia.
Pelajari instance lebih lanjut 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
.
Jika menggunakan Java dan layanan paket lama, Anda dapat menentukan layanan default di appengine-web.xml
dengan setelan <service>default</service>
.
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:
cron.yaml
mengonfigurasi secara teratur tugas terjadwal yang beroperasi pada waktu yang telah ditentukan atau secara berkala.dispatch.yaml
mengganti aturan default perutean 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.
Nama file
App Engine menjalankan aplikasi dalam container pada distribusi Ubuntu Linux terbaru. Nama file yang Anda gunakan di lingkungan standar App Engine harus kompatibel dengan UTF-8, baik UTF-8 atau sesuatu yang dapat dikonversi otomatis secara aman ke UTF-8. Jika nama file menggunakan encoding yang berbeda, deploy aplikasi dari mesin dengan setelan bahasa nama file yang kompatibel dengan UTF-8.
Deployment gagal jika nama file tidak kompatibel dengan UTF-8. Perhatikan bahwa tidak ada batasan encoding karakter yang Anda gunakan dalam file.
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 selanjutnya
Jika Anda menggunakan beberapa layanan dan ingin men-deploy-nya secara bersamaan, lihat langkah-langkah untuk men-deploy beberapa layanan.