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.
Anda mengkonfigurasi setelan aplikasi App Engine di file app.yaml
.
File ini menentukan korespondensi jalur URL dengan pengendali permintaan dan
file statis.
File app.yaml
juga berisi informasi tentang kode
aplikasi Anda, seperti runtime dan ID versi
terbaru.
Setiap layanan
di aplikasi Anda memiliki file app.yaml
tersendiri, yang berfungsi sebagai deskriptor untuk
deployment-nya. Anda harus membuat file app.yaml
terlebih dahulu untuk layanan default
sebelum dapat membuat dan men-deploy file app.yaml
untuk layanan tambahan dalam
aplikasi Anda.
Struktur direktori
Untuk mempelajari lebih lanjut tentang membuat struktur beberapa layanan di aplikasi Anda, lihat Penyusunan Layanan Web di App Engine.Contoh
Berikut adalah contoh file app.yaml
untuk aplikasi PHP 5:
runtime: php55 api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ application_readable: true # Serve php scripts. - url: /(.+\.php)$ script: \1
Contoh di atas akan menayangkan file dengan ekstensi gif
, png
, atau jpg
sebagai resource statis. File telah dikonfigurasi agar dapat dibaca oleh
kode aplikasi saat runtime.
Contoh ini juga akan menayangkan semua skrip PHP. Anda dapat membatasi pengendali skrip
ke skrip level root menggunakan ekspresi url: /([^/]+\.php)
. Aplikasi
yang sudah dapat memanfaatkan ini untuk menyimulasikan perutean $_GET['q']
mod_rewrite Apache.
Berikut ini konfigurasi app.yaml
yang lebih ekstensif:
runtime: php55 api_version: 1 handlers: - url: / script: home.php - url: /index\.html script: home.php - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.php login: admin - url: /.* script: not_found.php
Sintaksis
Sintaksis app.yaml
adalah format YAML.
Format YAML mendukung komentar. Baris yang dimulai dengan karakter tagar (#
)
akan diabaikan:
# This is a comment.
Pola jalur file dan URL menggunakan sintaksis ekspresi reguler POSIX yang diperluas, kecuali elemen pengkolasi dan class kolasi. Referensi balik ke pencocokan yang dikelompokkan (misalnya \1
) didukung, begitu juga ekstensi Perl berikut: \w \W \s \S \d \D
.
Elemen aplikasi dan runtime
Elemen | Deskripsi |
---|---|
application |
Pendekatan yang direkomendasikan adalah menghapus elemen
Untuk mengetahui informasi selengkapnya tentang penggunaan perintah ini, lihat Men-deploy Aplikasi Anda. ID aplikasi adalah project ID konsol Google Cloud yang Anda tentukan ketika Anda ketika Anda membuat aplikasi di konsol Google Cloud. |
api_version |
Wajib. Versi API di lingkungan runtime tertentu yang digunakan oleh aplikasi Anda. Kolom ini tidak digunakan lagi pada runtime App Engine yang baru.
Saat Google mengumumkan dukungan untuk versi baru
API lingkungan runtime, aplikasi yang Anda deploy akan terus menggunakan versi yang telah ditentukan. Untuk mengupgrade aplikasi ke versi baru
API, ubah nilai ini, kemudian deploy ulang aplikasi ke App Engine. Saat Anda menentukan nilai
Saat ini, App Engine memiliki satu versi dari
lingkungan runtime |
default_expiration |
Opsional. Menetapkan periode cache default global untuk semua
pengendali file statis aplikasi. Anda juga dapat mengonfigurasi durasi cache untuk pengendali file statis
tertentu. Nilainya berupa string angka dan unit, yang dipisahkan dengan
spasi, yang unitnya dapat berupa d untuk hari, h untuk jam, m untuk menit, dan s
untuk detik. Misalnya, runtime: php55 api_version: 1 default_expiration: "4d 5h" handlers: # ... Untuk informasi selengkapnya, lihat Masa berlaku cache. |
env_variables
|
Opsional.
Anda dapat menentukan variabel lingkungan di file
Variabel lingkungan yang diawali dengan
env_variables: MY_VAR: "my value"dengan MY_VAR dan my value adalah nama dan
nilai variabel lingkungan yang ingin Anda tentukan dan setiap
entri variabel lingkungan diindentasi dua spasi pada
elemen env_variables . Variabel lingkungan yang tidak diberi
nilai default ke "None" .
Kemudian, Anda dapat mengambil nilai variabel ini menggunakan
echo getenv('MY_VAR');atau echo $_SERVER['MY_VAR']; |
error_handlers |
Opsional. Digunakan untuk mengonfigurasi halaman error khusus yang ditampilkan untuk berbagai jenis error. Elemen ini dapat berisi elemen berikut:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.html |
handlers |
Wajib. Daftar pola URL dan deskripsi mengenai cara penanganannya. App Engine dapat menangani URL dengan mengeksekusi kode aplikasi, atau dengan menyajikan file statis yang diupload dengan kode, seperti image, CSS, atau JavaScript. |
inbound_services |
Opsional.
Aplikasi harus mengaktifkan layanan tersebut sebelum dapat menerima permintaan
masuk. Anda dapat mengaktifkan layanan untuk aplikasi PHP 5
dengan menyertakan bagian Tersedia layanan masuk berikut:
inbound_services: - mail - warmup |
instance_class |
Opsional. Class instance untuk layanan ini. Nilai berikut tersedia, bergantung pada penskalaan layanan Anda:
|
module |
Catatan: Modul kini berganti nama menjadi Layanan. Untuk mengelola aplikasi dengan gcloud CLI, gunakan elemen layanan. |
runtime |
Wajib. Nama lingkungan runtime yang digunakan oleh aplikasi Anda. Misalnya, untuk menentukan PHP 5, gunakan: runtime: php55 |
service |
Layanan sebelumnya dikenal sebagai Modul.
Hanya didukung oleh plugin berbasis gcloud CLI atau gcloud CLI, misalnya:
Diperlukan jika membuat
layanan.
Opsional untuk layanan
service: service-name
Catatan: Perintah
module: service-name |
service_account |
Opsional. Elemen service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
skip_files |
Opsional.
Elemen
skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$
Pola default mengecualikan file cadangan Emacs dengan nama formulir
Untuk memperluas daftar ekspresi reguler di atas, salin dan tempel daftar
di atas ke dalam skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Untuk melewati direktori lengkap, tambahkan nama direktori ke
daftar. Misalnya, untuk melewati direktori dengan nama skip_files: - logs/ |
version |
Pendekatan yang direkomendasikan adalah menghapus elemen
Untuk mengetahui informasi selengkapnya tentang penggunaan perintah ini, lihat Men-deploy Aplikasi Anda. ID untuk versi kode aplikasi yang Anda deploy ke App Engine.
ID versi dapat berisi huruf kecil, angka, dan tanda hubung. ID versi ini
tidak boleh diawali dengan awalan
Catatan: Nama versi harus dimulai dengan huruf untuk membedakannya
dari instance numerik yang selalu ditentukan dengan angka. Hal ini
menghindari ambiguitas dengan URL seperti
Setiap versi aplikasi menyimpan salinan
|
Elemen pengendali
Elemen handlers
adalah elemen yang diperlukan dalam
file konfigurasi app.yaml
. Elemen ini menyediakan daftar pola URL dan deskripsi cara penanganannya. App Engine dapat
menangani URL dengan mengeksekusi kode aplikasi, menyajikan file statis yang diupload
dengan kode, seperti image, CSS, atau JavaScript.
Pola dievaluasi sesuai urutan kemunculannya dalam file app.yaml
, dari
atas ke bawah. Pemetaan pertama yang polanya cocok dengan URL adalah pemetaan yang digunakan
untuk menangani permintaan.
Tabel berikut mencantumkan subelemen dari elemen handlers
yang mengontrol
perilaku untuk skrip, file statis,
direktori statis, dan setelan lainnya.
Elemen | Deskripsi |
---|---|
application_readable |
Opsional. Boolean. Secara default, file yang disebutkan dalam pengendali file statis
diupload sebagai data statis dan hanya ditayangkan kepada pengguna akhir. File
tersebut tidak dapat dibaca oleh aplikasi. Jika kolom ini diatur ke true, file
juga akan diupload sebagai data kode sehingga aplikasi Anda dapat membacanya.
Kedua upload dikenai biaya berdasarkan kode dan kuota resource penyimpanan data statis.
Kolom ini tidak digunakan lagi pada runtime App Engine yang baru. |
expiration
|
Opsional.
Durasi file statis yang ditayangkan oleh pengendali ini harus
disimpan dalam cache oleh proxy web dan browser. Nilainya adalah string
angka dan satuan, yang dipisahkan dengan spasi, dengan satuan dapat berupa
d untuk hari, h untuk jam, m untuk
menit, dan s untuk detik. Misalnya,
"4d 5h" menetapkan masa berlaku cache menjadi 4 hari dan 5 jam setelah
file pertama kali diminta. Jika dihilangkan, default_expiration aplikasi akan digunakan. Lihat Masa berlaku
cache untuk detail selengkapnya.
|
http_headers |
Opsional. Anda dapat menetapkan header
HTTP untuk respons file statis atau pengendali
direktori. Jika perlu menetapkan header HTTP
dalam pengendali handlers: - url: /images static_dir: static/images http_headers: X-Foo-Header: foo X-Bar-Header: bar value vary: Accept-Encoding # ... Dukungan CORSSalah satu penggunaan penting fitur ini adalah untuk mendukung Cross-Origin Resource Sharing (CORS), seperti mengakses file yang dihosting oleh aplikasi App Engine lain.
Misalnya, Anda dapat memiliki aplikasi game Berikut adalah cara membuat pengendali file statis menampilkan nilai header respons yang diperlukan: handlers: - url: /images static_dir: static/images http_headers: Access-Control-Allow-Origin: https://mygame.uc.r.appspot.com # ...
Catatan: jika ingin mengizinkan semua orang mengakses aset, Anda dapat
menggunakan karakter pengganti |
mime_type |
Opsional. Jika ditentukan, semua file yang dilayani oleh pengendali ini akan dilayani menggunakan jenis MIME yang ditetapkan. Jika tidak ditentukan, jenis MIME untuk file akan diambil dari ekstensi nama file. Jika file yang sama diupload dengan beberapa ekstensi, ekstensi yang dihasilkan dapat bergantung pada urutan upload. Untuk informasi selengkapnya tentang kemungkinan jenis media MIME, lihat situs Jenis Media MIME IANA |
redirect_http_response_code |
Opsional.
handlers: - url: /youraccount/.* script: accounts.php secure: always redirect_http_response_code: 301
Saat permintaan pengguna dialihkan, kode status HTTP akan ditetapkan
ke nilai parameter |
script |
Opsional. Menentukan jalur skrip dari direktori utama aplikasi: ... handlers: - url: /profile/(.*)/(.*) script: /employee/\2/\1.php # specify a script Dalam runtime App Engine yang baru, perilaku kolom ini telah diubah. |
secure |
Opsional. Semua pengendali URL dapat menggunakan setelan secure ,
termasuk pengendali skrip dan
pengendali file statis. Elemen secure memiliki kemungkinan
nilai berikut:
handlers: - url: /youraccount/.* script: accounts.php secure: always
Server web pengembangan tidak mendukung koneksi HTTPS. Metode ini
mengabaikan parameter
Untuk
menargetkan versi tertentu dari aplikasi Anda menggunakan
domain Untuk menggunakan domain kustom dengan HTTPS, Anda harus terlebih dahulu mengaktifkan dan mengonfigurasi sertifikat SSL untuk domain tersebut. Login dan logout Akun Google selalu dilakukan menggunakan koneksi yang aman, yang tidak terkait dengan cara URL aplikasi dikonfigurasi. |
static_dir
|
Opsional. Jalur ke direktori yang berisi file statis, dari
direktori utama aplikasi. Semua elemen setelah akhir pola
Setiap file dalam direktori statis disajikan menggunakan jenis MIME yang
sesuai dengan ekstensi nama filenya kecuali jika diganti oleh
setelan
Semua file dalam direktori ini diupload dengan aplikasi Anda sebagai file
statis. App Engine menyimpan dan menayangkan file statis secara terpisah
dari file aplikasi Anda. File statis tidak tersedia di sistem file
aplikasi secara default. Ini dapat diubah dengan menetapkan opsi
handlers: # All URLs beginning with /stylesheets are treated as paths to # static files in the stylesheets/ directory. - url: /stylesheets static_dir: stylesheets # ... |
static_files
|
Opsional. Pengendali pola file statis mengaitkan pola URL dengan
jalur ke file statis yang diupload dengan aplikasi. Ekspresi reguler
pola URL dapat menentukan pengelompokan ekspresi reguler yang akan digunakan
dalam konstruksi jalur file. Anda dapat menggunakan ini sebagai pengganti
handlers: # All URLs ending in .gif .png or .jpg are treated as paths to # static files in the static/ directory. The URL pattern is a # regular expression, with a grouping that is inserted into the # path to the file. - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ # ...
App Engine menyimpan dan menayangkan file statis secara terpisah
dari file aplikasi. File statis tidak tersedia di
sistem file aplikasi secara default. Ini dapat diubah dengan menetapkan opsi
File statis tidak boleh sama dengan file kode aplikasi. Jika jalur file statis cocok dengan jalur ke skrip yang digunakan dalam pengendali dinamis, skrip tidak akan tersedia untuk pengendali dinamis. |
upload |
Opsional. Ekspresi reguler yang cocok dengan jalur file untuk semua
file yang akan direferensikan oleh pengendali ini. Hal ini diperlukan karena pengendali tidak dapat menentukan file mana yang ada dalam direktori aplikasi Anda yang sesuai dengan pola |
url |
Elemen yang wajib di bawah Pola URL memiliki beberapa perbedaan perilaku saat digunakan dengan elemen-elemen berikut:
|
Menskalakan elemen
Elemen-elemen dalam tabel berikut mengonfigurasi cara penskalaan aplikasi. Untuk mempelajari lebih lanjut cara aplikasi App Engine melakukan penskalaan, lihat Jenis penskalaan.
Elemen | Deskripsi |
---|---|
automatic_scaling |
Opsional. Hanya berlaku untuk aplikasi yang menggunakan class instance F1 atau yang lebih tinggi. Tentukan elemen ini untuk mengubah setelan default penskalaan otomatis, seperti menetapkan tingkat minimum dan maksimum untuk jumlah instance, latensi, dan koneksi serentak untuk suatu layanan. Elemen ini dapat berisi elemen-elemen berikut:
automatic_scaling: target_cpu_utilization: 0.65 min_instances: 5 max_instances: 100 min_pending_latency: 30ms max_pending_latency: automatic max_concurrent_requests: 50 |
basic_scaling |
Aplikasi yang menggunakan
class
instance B1 atau yang lebih tinggi harus menentukan elemen ini atau dengan
Elemen ini memungkinkan penskalaan dasar class instance B1 dan yang lebih tinggi, yang dapat berisi elemen-elemen berikut:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Aplikasi yang menggunakan
class
instance B1 atau yang lebih tinggi harus menentukan elemen ini atau
Elemen ini memungkinkan penskalaan manual class instance B1 dan yang lebih tinggi, serta dapat berisi elemen berikut:
manual_scaling: instances: 5 |