Membuat aplikasi runtime kustom di lingkungan fleksibel App Engine
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 ini, ID region bersifat opsional dalam URL.
Dengan runtime kustom, Anda dapat membangun aplikasi yang berjalan di lingkungan yang ditentukan oleh Dockerfile. Dengan menggunakan Dockerfile, Anda dapat menggunakan bahasa dan paket yang bukan bagian dari Google Cloud, serta menggunakan resource dan alat yang sama dengan yang digunakan di lingkungan fleksibel App Engine.
Dalam panduan memulai ini, server web nginx diluncurkan ke App Engine menggunakan runtime kustom.
Sebelum memulai
Sebelum menjalankan aplikasi contoh di panduan memulai ini, Anda perlu menyiapkan lingkungan dan membuat project Google Cloud baru untuk App Engine:
Buat project Google Cloud baru dengan menggunakan Konsol Google Cloud:
Buka konsol Google Cloud:
Klik Create Project, lalu beri nama project Google Cloud baru Anda.
Aktifkan penagihan di project Google Cloud baru dengan membuat akun penagihan baru atau menetapkan akun penagihan yang sudah ada:
Download dan instal Google Cloud CLI, lalu inisialisasi gcloud CLI:
Jalankan perintah
gcloud
berikut untuk membuat aplikasi App Engine dan tentukan region geografis mana yang Anda inginkan untuk menjalankan aplikasi:gcloud app create
Lokasi App Engine
App Engine bersifat regional. Artinya, infrastruktur yang menjalankan aplikasi Anda terletak di region tertentu, dan Google mengelolanya sehingga tersedia secara redundan di seluruh semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama untuk memilih region tempat aplikasi dijalankan. Umumnya, Anda dapat memilih region yang paling dekat dengan pengguna aplikasi Anda, tetapi Anda harus mempertimbangkan lokasi tempat App Engine tersedia serta lokasi dari produk dan layanan Google Cloud lainnya yang digunakan aplikasi Anda. Penggunaan layanan di beberapa lokasi dapat memengaruhi latensi dan pricing aplikasi.
Anda tidak dapat mengubah region aplikasi setelah menyetelnya.
Jika sudah membuat aplikasi App Engine, Anda dapat melihat region-nya dengan melakukan salah satu tindakan berikut:
Jalankan perintah
gcloud app describe
.Buka Dasbor App Engine di konsol Google Cloud. Region muncul di dekat bagian atas halaman.
Mendownload aplikasi Halo Dunia
Pilih salah satu opsi berikut untuk mendownload aplikasi contoh Hello World dari GitHub ke komputer lokal Anda:
Clone aplikasi contoh Halo Dunia dari repositori berikut:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Download contoh sebagai file .zip, lalu ekstrak ke direktori lokal.
Buka direktori
nginx
tempat kode contoh berada, misalnya:cd appengine-custom-runtimes-samples/nginx
Menjalankan Halo Dunia di komputer Anda
Anda dapat menguji aplikasi contoh dengan mendownload dan menginstal Docker, lalu menjalankan container Hello World di komputer lokal.
Tidak ada langkah-langkah khusus App Engine di sini sehingga Anda dapat menguji aplikasi contoh menggunakan alat dan pendekatan yang Anda inginkan.
Men-deploy Halo Dunia ke App Engine
Setelah Anda siap men-deploy aplikasi contoh ke App Engine, lakukan langkah-langkah berikut:
Jalankan perintah berikut dari direktori tempat
app.yaml
danDockerfile
Anda berada:gcloud app deploy
Pelajari flag opsional.
Agar aplikasi Anda berjalan di
https://PROJECT_ID.REGION_ID.r.appspot.com
, jalankan perintah berikut untuk meluncurkan browser:gcloud app browse
Flag perintah gcloud
umum
-
Sertakan flag
--version
untuk menentukan ID yang secara unik mengidentifikasi versi aplikasi Anda. Jika tidak, ID akan dibuatkan untuk Anda. Contoh:--version [YOUR_VERSION_ID]
-
Sertakan flag
--project
untuk menentukan project ID Google Cloud alternatif dengan yang Anda inisialisasi sebagai default di alatgcloud
. Contoh:--project [YOUR_PROJECT_ID]
Contoh:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Untuk mempelajari lebih lanjut cara men-deploy aplikasi dari command line, lihat bagian Menguji dan Men-deploy Aplikasi. Untuk daftar semua flag perintah, lihat referensi gcloud app deploy
.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
Pelajari Dockerfile lebih lanjut di referensi Dockerfile.
Untuk informasi tentang cara membuat runtime kustom Anda sendiri, lihat Mem-build Runtime Kustom.
Peninjauan kode
Halo Dunia adalah aplikasi App Engine paling sederhana karena aplikasi ini membuat satu container yang hanya menjalankan satu layanan dan satu versi. Bagian ini menjelaskan setiap file aplikasi secara mendetail.
app.yaml
Menentukan konfigurasi aplikasi. File
app.yaml
harus berada di direktori yang sama dengan fileDockerfile
.Entri
runtime: custom
memberi tahu App Engine untuk mencariDockerfile
yang akan menentukan image runtime Anda danenv: flex
menentukan bahwa Anda men-deploy ke lingkungan fleksibel.Untuk informasi selengkapnya, lihat referensi
app.yaml
.Dockerfile
Menentukan rangkaian petunjuk yang digunakan untuk membuat image Docker untuk container aplikasi contoh. File
Dockerfile
harus berada di direktori yang sama dengan fileapp.yaml
.Dockerfile
ini akan menginstal server web nginx dan menyalin beberapa konfigurasi dasar:Perintah FROM membuat image dasar menggunakan image Docker resmi untuk server web nginx.
Dengan menggunakan
Dockerfile
ini, image container Anda akan berisi nginx dan semua konten dalam direktoriwww/
akan tersedia untuk aplikasi Anda.
Aplikasi contoh Halo Dunia juga mencakup
nginx.conf
file yang berisi informasi konfigurasi dasar nginx, serta
index.html
yang berfungsi sebagai halaman {i>root<i} untuk server web nginx.