Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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.
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.
Perintah script: dapat berisi jalur akhirfile dalam
.py, yang
berarti skrip tersebut menggunakan CGI, atau jalur modul Python, dengan nama paket
yang dipisahkan dengan titik, yang berarti skrip menggunakan WSGI.
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 application
dari file app.yaml Anda dan sebaliknya, gunakan
tanda command-line untuk menentukan ID aplikasi Anda:
Untuk menggunakan perintah
gcloud app deploy, Anda harus menentukan
flag --project:
gcloud app deploy --project [YOUR_PROJECT_ID]
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.
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 1,
lingkungan runtime terbaru yang didukung digunakan setiap kali Anda
men-deploy aplikasi tersebut (saat ini ).
Saat ini, App Engine memiliki satu versi dari
lingkungan runtime python27:
1
auto_id_policy
Opsional. Jika Anda
menetapkan ID entity secara otomatis, Anda dapat mengubah metode
yang digunakan dengan menetapkan kebijakan ID otomatis. Berikut ini adalah opsi yang valid:
default
Default. Menggunakan ID otomatis yang tersebar, yang merupakan
bilangan bulat yang didistribusikan dengan baik, dan cukup kecil untuk ditampilkan oleh float 64-bit.
Opsional.
Python 2 SDK menyertakan sejumlah pengendali bawaan untuk
fungsi aplikasi umum. Perintah builtins
memungkinkan Anda menyertakan pengendali tertentu di app.yaml.
Pengendali bawaan berikut tersedia untuk digunakan:
appstats
Mengaktifkan
Appstats di /_ah/stats/, yang dapat Anda gunakan untuk
mengukur performa aplikasi Anda. Untuk menggunakan Appstats,
Anda juga harus
menginstal perekam peristiwa.
deferred
Mengaktifkan pengendali yang ditangguhkan di /_ah/queue/deferred.
Bawaan ini memungkinkan developer menggunakan deferred.defer()
untuk menyederhanakan pembuatan tugas Task Queue.
remote_api
Mengaktifkan bawaan remote_api di
/_ah/remote_api/. Fitur bawaan ini memungkinkan aplikasi
jarak jauh dengan kredensial yang tepat untuk mengakses datastore
dari jarak jauh.
Contoh:
builtins:
- deferred: on
- appstats: on
Perintah builtins adalah instance khusus dari
perintah includes. Setiap perintah builtin
setara, di Python, dengan perintah includes dengan
jalur yang diperluas. Contoh:
Jika Anda menggunakan builtins dalam file app.yaml,
setiap pengendali yang ditetapkan dalam file
include.yaml bawaan akan menggantikan pengendali apa pun yang
Anda tetapkan dalam file app.yaml. Namun, jika Anda menyertakan
file yang kemudian menggunakan builtins atau includes,
pengendali akan ditambahkan sesuai urutan hierarki penyertaan. Dengan kata
lain, pengendali "induk" yang disertakan ditambahkan sebelum
bawaan "turunan" disertakan, dan seterusnya.
Misalnya, pertimbangkan app.yaml berikut, yang menggunakan
pengendali appstats bawaan:
handlers:
- url: /.*
script: main.app
builtins:
- appstats: on
Daftar pengendali yang dihasilkan adalah:
[/_ah/stats, /.*]
Jika app.yaml menggunakan perintah includes:
includes:
- included.yaml
Lalu file included.yaml menggunakan builtins:
handlers:
- url: /.*
script: main.app
builtins:
- appstats: on
Daftar pengendali yang dihasilkan sekarang adalah:
[/.*, /_ah/stats]
Urutan penempatan klausa builtins dalam
file .yaml tidak mengubah perilaku.
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, "4d 5h" menetapkan masa berlaku cache
ke 4 hari dan 5 jam setelah file pertama kali diminta. Jika dihilangkan,
server produksi akan menetapkan masa berlaku ke 10 menit.
Opsional.
Anda dapat menentukan variabel lingkungan di file app.yaml
agar tersedia untuk aplikasi Anda. Pastikan kunci di variabel Lingkungan cocok dengan ekspresi '[a-zA-Z_][a-zA-Z0-9_]*' (dimulai dengan alfabet atau "_" yang diikuti dengan alfanumerik atau "_").
Variabel lingkungan yang diawali dengan
GAE dicadangkan untuk penggunaan sistem dan tidak diizinkan di
file app.yaml.
Variabel ini akan tersedia dalam kamus
os.environ:
Ditayangkan jika batas waktu tercapai sebelum ada respons dari
aplikasi Anda.
Error_code bersifat opsional; jika tidak ditentukan, file yang diberikan
akan menjadi respons error default untuk aplikasi Anda.
file
Setiap entri file menunjukkan file statis yang harus ditampilkan sebagai
pengganti respons error umum. Jika Anda menentukan
elemen file tanpa elemen
error_code yang sesuai, file statis tersebut akan menjadi halaman
error default untuk aplikasi Anda.
Data error khusus harus berukuran kurang dari 10 kilobyte.
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.
Opsional.
Perintah includes memungkinkan Anda menyertakan
file konfigurasi untuk library atau layanan apa pun di seluruh
aplikasi Anda. Misalnya, Anda dapat menyertakan library administrasi
pengguna seperti berikut:
includes:
- lib/user_admin.yaml
App Engine menyelesaikan jalur yang disertakan dalam urutan berikut:
Jalur absolut atau relatif ke direktori kerja. Jalur yang ditentukan
akan me-resolve ke file.
Relatif terhadap direktori aplikasi, yang juga dikenal sebagai
basepath. Basepath dan jalur di-resolve ke sebuah file.
Relatif terhadap file yang menyertakan file saat ini. Lokasi
file referensi dan jalur penyertaan di-resolve ke file
yang disertakan.
Jika perintah include menentukan direktori, App
Engine akan mencari file bernama
include.yaml di direktori tersebut. Jika perintah include adalah sebuah file,
file khusus tersebut akan disertakan. Penggunaan includes
hanya akan mengambil jenis perintah berikut dari file tujuan (jika
ada):
Pola skip_files yang disertakan akan ditambahkan ke
pola yang ada dalam app.yaml, atau ke daftar default jika tidak ada
daftar eksplisit di app.yaml. Perhatikan bahwa
skip_files membandingkan jalur absolut.
inbound_services
Opsional.
Aplikasi harus mengaktifkan layanan tersebut sebelum dapat menerima
permintaan masuk. Anda dapat mengaktifkan layanan untuk aplikasi Python 2
dengan menyertakan bagian inbound_services dalam
file app.yaml.
Nilai berikut tersedia, bergantung pada
penskalaan
layanan Anda:
Penskalaan otomatis
F1, F2, F4, F4_1G
Default:F1
Anda dapat menggunakan elemen automatic_scaling untuk mengubah setelan
default untuk penskalaan otomatis, seperti jumlah minimum dan maksimum
instance, latensi, serta koneksi serentak.
Catatan: Jika instance_class
ditetapkan ke F2 atau yang lebih tinggi, Anda dapat mengoptimalkan instance
dengan menetapkan max_concurrent_requests ke nilai yang lebih tinggi dari
nilai default 10. Untuk menentukan nilai optimal,
tingkatkan secara bertahap dan pantau kinerja aplikasi
Anda.
Penskalaan dasar dan manual
B1, B2, B4, B4_1G, B8
Default:B2
Class instance dasar dan manual mengharuskan Anda menentukan
elemen basic_scaling atau elemen manual_scaling.
libraries
Opsional.
Runtime Python 2.7 menyertakan beberapa library
pihak ketiga. Beberapa di antaranya tersedia secara default; yang lain hanya
tersedia jika dikonfigurasi. Anda dapat menentukan versi mana yang ingin
digunakan dengan menentukan nilai name dan version.
Perhatikan bahwa saat Anda menentukan latest, SDK akan
menentukan versi library terbaru pada waktu deployment. Setelah
di-deploy, versi library tidak akan berubah. Satu-satunya cara untuk mendapatkan
versi library yang berbeda adalah dengan men-deploy kembali.
Jika mengembangkan aplikasi yang belum memiliki pengguna: Anda
tidak perlu melacak versi baru. Namun, jika aplikasi Anda digunakan
secara aktif, berhati-hatilah: Anda mungkin akan terkejut karena aplikasi Anda
mulai menggunakan versi library baru yang tidak kompatibel dengan versi sebelumnya.
Untuk mengelola aplikasi dengan gcloud CLI, gunakan
elemen layanan.
runtime
Wajib. Nama lingkungan runtime yang digunakan oleh
aplikasi Anda. Misalnya, untuk menentukan Python 2.7, gunakan:
runtime: python27
service
Layanan sebelumnya dikenal sebagai Modul.
Hanya didukung oleh plugin berbasis gcloud CLI atau gcloud CLI, misalnya: gcloud app deploy.
Diperlukan jika membuat
layanan.
Opsional untuk layanan
default. Setiap layanan dan setiap versi harus memiliki nama. Nama dapat
berisi angka, huruf, dan tanda hubung. Panjang gabungan dari
VERSION-dot-SERVICE-dot-PROJECT_ID, dengan VERSION sebagai nama
versi Anda, SERVICE sebagai nama layanan, dan PROJECT_ID
adalah ID project Anda, tidak boleh lebih dari 63 karakter dan tidak boleh
diawali atau diakhiri dengan tanda hubung. Pilih nama unik untuk setiap layanan
dan versi. Jangan gunakan ulang nama yang sudah digunakan untuk penamaan layanan dan versi.
Contoh:
service: service-name
Catatan: Perintah
gcloud app
deploy kompatibel dengan versi lama dan mendukung file app.yaml yang ada yang
mencakup layanan yang disebut sebagai modul, contohnya:
module: service-name
service_account
Opsional. Elemen service_account memungkinkan Anda menentukan
akun layanan yang dikelola pengguna sebagai identitas untuk versi tersebut. Akun layanan yang ditentukan digunakan saat mengakses layanan Google Cloud lainnya dan menjalankan tugas.
Opsional.
Elemen skip_files menentukan file mana dalam
direktori aplikasi yang tidak akan diupload ke App Engine.
Nilainya dapat berupa ekspresi reguler, atau daftar ekspresi
reguler. Semua nama file yang cocok dengan ekspresi reguler
akan dihilangkan dari daftar file yang akan diupload saat aplikasi
diupload. Nama file bersifat relatif terhadap direktori project.
Pola default mengecualikan file cadangan Emacs dengan nama formulir
#...# dan ...~, file .pyc dan
.pyo, file dalam direktori kontrol revisi
RCS, dan file tersembunyi Unix dengan nama yang diawali dengan titik
(.).
Untuk memperluas daftar ekspresi reguler di atas, salin dan tempel daftar
di atas ke dalam app.yaml Anda dan tambahkan ekspresi reguler
Anda sendiri. Misalnya, untuk melewati file yang namanya diakhiri dengan
.bak dikarenakan pola defaultnya, tambahkan entri
seperti ini untuk skip_files:
Untuk melewati direktori lengkap, tambahkan nama direktori ke
daftar. Misalnya, untuk melewati direktori bernama logs,
tambahkan baris berikut ke direktori yang dijelaskan sebelumnya:
skip_files:
- logs/
threadsafe
Wajib.
Mengonfigurasi aplikasi Anda untuk menggunakan permintaan serentak. Jika menggunakan
library thread Python, data
lokal thread, seperti yang ditampilkan oleh threading.local(), akan
dihapus setelah setiap permintaan.
Catatan: Perintah threadsafe diwajibkan untuk
aplikasi Python 2.7.
threadsafe: true mengharuskan semua pengendali skrip berupa
pengendali WSGI. Artinya, setiap skrip harus ditentukan dalam
perintah script: menggunakan jalur modul Python,
dengan nama paket yang dipisahkan dengan titik. Komponen terakhir dari perintah
script: yang menggunakan jalur modul Python
adalah nama variabel global dalam service: variabel tersebut
harus berupa aplikasi WSGI, dan biasanya disebut app berdasarkan
konvensi.
version
Pendekatan yang direkomendasikan adalah menghapus elemen version
dari file app.yaml Anda dan sebagai gantinya, gunakan
tanda command line untuk menentukan ID versi:
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 ah-, dan nama
default dan latest sudah dicadangkan dan tidak dapat
digunakan.
Catatan: Nama versi harus dimulai dengan huruf untuk membedakannya
dari instance numerik yang selalu ditentukan dengan angka. Hal ini
menghindari ambiguitas dengan URL seperti
123-dot-my-service.uc.r.appspot.com, yang dapat ditafsirkan
dua cara: Jika versi "123" ada, targetnya adalah versi "123"
dari layanan yang diberikan. Jika versi tersebut tidak ada, targetnya
adalah nomor instance 123 dari versi default layanan.
Setiap versi aplikasi menyimpan salinan
app.yaml-nya sendiri. Saat aplikasi diupload, versi
yang disebutkan dalam file app.yaml yang diupload adalah
versi yang akan dibuat atau diganti oleh upload tersebut. Administrator
dapat mengubah versi aplikasi yang menyajikan traffic menggunakan
konsol Google Cloud, dan juga dapat
menguji
versi lain sebelum mengonfigurasinya untuk menerima traffic.
vpc_access_connector
Opsional.
Mengonfigurasi aplikasi Anda untuk menggunakan konektor Akses VPC
Serverless, yang memungkinkan aplikasi mengirim permintaan ke
resource internal dalam jaringan VPC Anda. Untuk mengetahui informasi selengkapnya, lihat
Menghubungkan ke jaringan VPC.
name
Literal string. Tentukan nama konektor Akses VPC Serverless
Anda yang sepenuhnya memenuhi syarat dengan tanda kutip:
Opsional. Nilai defaultnya adalah private-ranges-only. egress_setting
dapat berupa salah satu dari berikut:
private-ranges-only
Default. Permintaan ke alamat IP internal dikirim melalui
konektor Akses VPC Serverless ke jaringan
VPC yang terhubung. Permintaan ke alamat IP eksternal dikirim ke internet publik.
all-traffic
Semua permintaan dikirim melalui
konektor Akses VPC Serverless ke dalam
jaringan VPC yang terhubung.
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.
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 script, Anda harus melakukannya di
kode aplikasi. Untuk mengetahui informasi tentang header respons mana yang memengaruhi penyimpanan dalam cache,
lihat Menyimpan data statis
dalam cache.
Contoh
handlers:
- url: /images
static_dir: static/images
http_headers:
X-Foo-Header: foo
X-Bar-Header: bar value
vary: Accept-Encoding
# ...
Dukungan CORS
Salah 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 mygame.uc.r.appspot.com
yang mengakses aset yang dihosting oleh myassets.uc.r.appspot.com.
Namun, jika mygame mencoba membuat JavaScript
XMLHttpRequest menjadi myassets, proses tersebut tidak akan
berhasil kecuali pengendali untuk myassets menampilkan
header respons Access-Control-Allow-Origin: yang berisi
nilai http://mygame.uc.r.appspot.com.
Berikut adalah cara membuat pengendali file statis menampilkan
nilai header respons yang diperlukan:
Catatan: jika ingin mengizinkan semua orang mengakses aset, Anda dapat
menggunakan karakter pengganti '*', bukan https://mygame.uc.r.appspot.com.
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.
Opsional. redirect_http_response_code digunakan dengan
setelan secure untuk menetapkan kode respons HTTP yang ditampilkan
saat menjalankan pengalihan yang diperlukan oleh konfigurasi setelan
secure.
Elemen redirect_http_response_code memiliki kemungkinan nilai berikut:
Saat permintaan pengguna dialihkan, kode status HTTP akan ditetapkan
ke nilai parameter redirect_http_response_code. Jika parameter tidak ada, 302 akan ditampilkan.
script
Opsional.
Menentukan jalur skrip dari direktori utama
aplikasi:
handlers:
# The root URL (/) is handled by the WSGI application named
# "app" in home.py. No other URLs match this pattern.
- url: /
script: home.app
# The URL /index.html is also handled by the home.py script.
- url: /index\.html
script: home.app
# A regular expression can map parts of the URL to the
# path of the script.
- url: /browse/(books|videos|tools)
script: \1.catalog.app
# All other URLs use the WSGI application named in "app"
# in not_found.py.
- url: /.*
script: not_found.app
Perintah script: harus berupa jalur impor python,
misalnya, package.module.app yang mengarah ke aplikasi
WSGI. Komponen terakhir dari perintah script:
yang menggunakan jalur Modul Python adalah nama variabel global dalam modul: variabel tersebut harus berupa aplikasi WSGI, dan
biasanya disebut app berdasarkan konvensi.
Catatan: seperti halnya pernyataan import Python, setiap
subdirektori yang merupakan paket harus berisi file bernama __init__.py.
Opsional. Semua pengendali URL dapat menggunakan setelan secure,
termasuk pengendali skrip dan
pengendali file statis. Elemen secure memiliki kemungkinan
nilai berikut:
optional
Permintaan HTTP dan HTTPS dengan URL yang cocok dengan pengendali
berhasil tanpa pengalihan. Aplikasi dapat memeriksa permintaan
untuk menentukan protokol yang digunakan, dan memberikan respons yang sesuai. Ini
adalah setelan default saat secure tidak disediakan untuk
pengendali.
never
Permintaan untuk URL yang cocok dengan pengendali ini yang menggunakan HTTPS akan
otomatis dialihkan ke URL HTTP yang setara. Jika permintaan
HTTPS pengguna dialihkan menjadi permintaan HTTP,
parameter kueri akan dihapus dari permintaan tersebut. Hal ini mencegah
pengguna secara tidak sengaja mengirimkan data kueri melalui koneksi tidak
aman yang ditujukan untuk koneksi yang aman.
always
Permintaan untuk URL yang cocok dengan pengendali ini yang tidak menggunakan HTTPS akan
otomatis dialihkan ke URL HTTPS dengan jalur yang sama. Parameter
kueri dipertahankan untuk pengalihan.
Server web pengembangan tidak mendukung koneksi HTTPS. Metode ini
mengabaikan parameter secure sehingga jalur yang ditujukan untuk digunakan
dengan HTTPS dapat diuji menggunakan koneksi HTTP reguler ke
server web pengembangan.
Untuk
menargetkan versi tertentu dari aplikasi Anda menggunakan
domain REGION_ID.r.appspot.com,
ganti titik yang biasanya akan memisahkan
komponen subdomain URL dengan string "-dot-",
misalnya: https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
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 url
yang cocok akan ditambahkan ke
static_dir untuk membentuk jalur lengkap ke file yang diminta.
Setiap file dalam direktori statis disajikan menggunakan jenis MIME yang
sesuai dengan ekstensi nama filenya kecuali jika diganti oleh
setelan mime_type direktori. Semua file dalam
direktori yang ditentukan diupload sebagai file statis, dan
tidak ada yang dapat dijalankan sebagai skrip.
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 application_readable menjadi true.
Contoh:
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
static_dir untuk memetakan ke file tertentu dalam struktur
direktori tanpa perlu memetakan seluruh direktori.
Contoh:
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
application_readable ke true.
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 dan static_files yang diberikan. File statis diupload dan
ditangani secara terpisah dari file aplikasi. Contoh
di atas mungkin menggunakan pola upload berikut:
archives/(.*)/items/(.*)
url
Elemen yang wajib di bawah handlers. Pola URL, sebagai
ekspresi reguler. Ekspresi dapat berisi pengelompokan yang dapat
dirujuk di jalur file ke skrip dengan referensi balik
ekspresi reguler. Misalnya,
/profile/(.*)/(.*) akan cocok dengan URL
/profile/edit/manager serta menggunakan
edit dan manager sebagai pengelompokan
pertama dan kedua.
Pola URL memiliki beberapa perbedaan perilaku saat digunakan dengan
elemen-elemen berikut:
Menggunakan awalan URL. Pola ekspresi reguler tidak boleh berisi
pengelompokan saat digunakan dengan elemen static_dir. Semua
URL yang dimulai dengan awalan ini ditangani oleh pengendali ini, menggunakan
bagian URL setelah awalan sebagai bagian dari jalur file.
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 daripada
static_dir untuk memetakan ke file tertentu dalam struktur
direktori tanpa perlu memetakan seluruh direktori.
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:
max_instances
Opsional. Tetapkan nilai antara 0 dan 2147483647, dengan nol
akan menonaktifkan setelan
Parameter ini menentukan jumlah maksimum instance yang akan dibuat oleh App
Engine untuk versi modul ini. Hal ini berguna untuk membatasi
biaya modul.
min_instances
Opsional. Jumlah minimum instance yang akan dibuat oleh App Engine
untuk versi modul ini. Instance ini menyalurkan traffic saat
permintaan tiba, dan akan terus menyalurkan traffic bahkan ketika
instance tambahan dimulai sesuai kebutuhan untuk menangani traffic.
Tentukan nilai dari 0 hingga 1.000. Anda dapat menetapkan
parameter ke nilai 0 untuk memungkinkan penskalaan ke 0 instance guna
menurunkan biaya jika tidak ada permintaan yang ditayangkan. Perlu diperhatikan bahwa
Anda akan dikenai biaya untuk jumlah instance yang ditentukan,
terlepas dari apakah instance tersebut menerima traffic atau tidak.
max_idle_instances
Opsional. Jumlah maksimum instance tanpa aktivitas yang
harus dikelola App Engine untuk versi ini. Tentukan
nilai dari 1 hingga 1000. Jika tidak ditentukan, nilai defaultnya adalah automatic,
yang berarti App Engine akan mengelola
jumlah instance yang tidak ada aktivitas.
Perhatikan hal-hal berikut:
Batas maksimum yang tinggi mengurangi jumlah instance yang tanpa aktivitas secara lebih
bertahap saat tingkat beban kembali normal setelah terjadi lonjakan. Hal ini
membantu aplikasi Anda mempertahankan performa yang stabil
melalui fluktuasi beban permintaan, tetapi juga meningkatkan jumlah instance yang tanpa
aktivitas (dan akibatnya, peningkatan biaya pengoperasian) selama periode dengan beban berat tersebut.
Batas maksimum yang rendah membuat biaya tetap rendah, tetapi dapat
menurunkan performa saat tingkat beban yang berubah secara tiba-tiba.
Catatan: Saat kembali ke tingkat normal setelah lonjakan beban,
jumlah instance tanpa aktivitas untuk sementara dapat melebihi batas
maksimum yang Anda tentukan. Namun, Anda tidak akan ditagih untuk jumlah
instance yang melebihi jumlah maksimum yang Anda tentukan.
min_idle_instances
Opsional: Jumlah instance tambahan yang akan tetap berjalan
dan siap menyalurkan traffic untuk versi ini.
App Engine menghitung jumlah instance yang diperlukan untuk
menyalurkan traffic aplikasi Anda saat ini berdasarkan
setelan penskalaan seperti target_cpu_utilization dan
target_throughput_utilization. Menetapkan min_idle_instances
akan menentukan jumlah instance yang
akan dijalankan selain jumlah yang dihitung ini. Misalnya,
jika App Engine menghitung bahwa 5 instance
diperlukan untuk menyalurkan traffic, dan min_idle_instances
ditetapkan ke 2, App Engine akan menjalankan 7 instance
(5, dihitung berdasarkan traffic, plus 2 tambahan per min_idle_instances).
Perlu diperhatikan bahwa
Anda akan dikenai biaya untuk jumlah instance yang ditentukan,
terlepas dari apakah instance tersebut menerima traffic atau tidak. Perhatikan hal-hal berikut:
Nilai minimum yang rendah membantu menjaga biaya operasional Anda tetap
rendah selama periode tidak ada aktivitas, tetapi berarti jumlah instance
yang tersedia mungkin lebih sedikit untuk merespons lonjakan beban tiba-tiba.
Nilai minimum yang tinggi memungkinkan Anda mempersiapkan
aplikasi untuk lonjakan cepat dalam beban permintaan. App Engine mempertahankan jumlah minimum
instance yang berjalan untuk melayani permintaan masuk. Anda
akan dikenai biaya untuk jumlah instance yang ditentukan, terlepas dari
apakah instance tersebut menangani permintaan atau tidak.
Jika Anda menetapkan jumlah minimum instance saat tidak ada aktivitas, latensi
tertunda tidak akan terlalu berpengaruh pada performa aplikasi Anda.
target_cpu_utilization
Opsional. Tentukan nilai antara 0,5 dan 0,95. Defaultnya adalah
0.6.
Parameter ini menetapkan batas
penggunaan CPU saat instance baru akan dimulai untuk menangani traffic,
sehingga Anda dapat menyeimbangkan antara performa dan
biaya, yang mana nilai yang lebih rendah akan meningkatkan performa dan
menambah biaya, serta nilai yang lebih tinggi mengurangi performa tetapi
juga menurunkan biaya. Misalnya, nilai 0,7 artinya instance baru
akan dimulai setelah penggunaan CPU mencapai 70 persen.
target_throughput_utilization
Opsional. Tentukan nilai dari 0,5 hingga 0,95. Defaultnya adalah
0.6.
Digunakan dengan max_concurrent_requests untuk menentukan kapan
instance baru dimulai karena ada permintaan yang serentak. Jika jumlah
permintaan serentak mencapai nilai yang sama dengan
max_concurrent_requests kali
target_throughput_utilization, scheduler akan mencoba
memulai instance baru.
max_concurrent_requests
Opsional. Jumlah permintaan serentak yang dapat diterima penskalaan instance
otomatis sebelum scheduler memunculkan instance baru
(Default: 10,
Maksimum: 1000).
Digunakan dengan target_throughput_utilization untuk
menentukan kapan instance baru dimulai karena permintaan yang serentak.
Jika jumlah permintaan yang serentak mencapai nilai yang sama dengan
max_concurrent_requests yang dikali dengan
target_throughput_utilization, scheduler akan
mencoba memulai instance baru.
Sebaiknya Anda tidak menetapkan max_concurrent_requests
kurang dari 10 kecuali jika Anda memerlukan thread tunggal. Nilai
kurang dari 10 cenderung menghasilkan lebih banyak instance
yang dibuat daripada yang dibutuhkan untuk aplikasi threadsafe,
dan dapat menimbulkan biaya yang tidak perlu.
Jika setelan ini terlalu tinggi, Anda mungkin mengalami peningkatan latensi
API. Perhatikan bahwa scheduler mungkin memunculkan instance baru sebelum
jumlah maksimum permintaan yang sebenarnya tercapai.
max_pending_latency
Durasi maksimum App Engine harus mengizinkan permintaan untuk menunggu
dalam antrean yang tertunda sebelum memulai instance tambahan
untuk menangani permintaan agar latensi tertunda berkurang. Saat batas
ini tercapai, ini merupakan sinyal untuk meningkatkan skala, dan
menghasilkan peningkatan jumlah instance.
Jika tidak ditentukan, nilai defaultnya adalah automatic. Artinya, permintaan dapat tetap berada dalam antrean tertunda selama 10 detik, yaitu
batas waktu permintaan tertunda maksimum, sebelum pemulaian instance yang baru dipicu.
Nilai maksimum yang rendah berarti App Engine akan memulai instance baru
lebih cepat untuk permintaan yang tertunda, sehingga meningkatkan
performa tetapi menaikkan biaya operasional.
Nilai maksimum yang tinggi berarti pengguna mungkin menunggu lebih lama hingga
permintaan mereka ditayangkan (jika ada permintaan yang tertunda dan
tidak ada instance tanpa aktivitas untuk menayangkannya), tetapi
biaya untuk menjalankan aplikasi Anda akan lebih murah.
min_pending_latency
Elemen opsional yang dapat Anda tetapkan untuk menentukan jumlah
waktu minimum App Engine mengizinkan permintaan untuk menunggu
dalam antrean yang tertunda sebelum memulai instance baru untuk menanganinya.
Menentukan nilai ini dapat menurunkan biaya operasional, tetapi meningkatkan waktu
yang dibutuhkan pengguna untuk menunggu permintaan mereka dilayani.
Untuk aplikasi gratis, nilai defaultnya adalah 500ms. Untuk aplikasi
berbayar, nilai defaultnya adalah 0.
Elemen ini bekerja sama dengan elemen max_pending_latency
untuk menentukan kapan App Engine membuat instance baru.
Jika permintaan yang tertunda berada dalam antrean:
Kurang dari min_pending_latency yang Anda tetapkan,
App Engine tidak akan membuat instance baru.
Lebih dari max_pending_latency, App Engine
akan mencoba membuat instance baru.
Di antara waktu yang ditentukan oleh min_pending_latency
dan max_pending_latency, App Engine akan
mencoba menggunakan kembali instance yang ada. Jika tidak ada instance yang dapat
memproses permintaan sebelum max_pending_latency,
App Engine akan membuat instance baru.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-01-04 UTC."],[],[]]