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 dari file app.yaml
untuk aplikasi
Python 2:
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
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.
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 |
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:
|
builtins |
Opsional.
Python 2 SDK menyertakan sejumlah pengendali bawaan untuk
fungsi aplikasi umum. Perintah Kolom ini tidak digunakan lagi di runtime Python 3. Pengendali bawaan berikut tersedia untuk digunakan:
builtins: - deferred: on - appstats: on
Perintah builtins: - name: on Setara dengan: includes: - $PYTHON_LIB/google/appengine/ext/builtins/name/
Jika Anda menggunakan
Misalnya, pertimbangkan handlers: - url: /.* script: main.app builtins: - appstats: on Daftar pengendali yang dihasilkan adalah: [/_ah/stats, /.*]
Jika includes: - included.yaml
Lalu file handlers: - url: /.* script: main.app builtins: - appstats: on Daftar pengendali yang dihasilkan sekarang adalah: [/.*, /_ah/stats]
Urutan penempatan klausa |
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: python27 api_version: 1 threadsafe: true 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
os.environ :
env_variables: DJANGO_SETTINGS_MODULE: "myapp.settings" |
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. |
includes
|
Opsional.
Perintah includes: - lib/user_admin.yaml App Engine menyelesaikan jalur yang disertakan dalam urutan berikut:
Jika perintah
Pola |
inbound_services |
Opsional.
Aplikasi harus mengaktifkan layanan tersebut sebelum dapat menerima
permintaan masuk. Anda dapat mengaktifkan layanan untuk aplikasi Python 2
dengan menyertakan bagian Layanan masuk berikut tersedia:
inbound_services: - mail - warmup |
instance_class |
Opsional. Class instance untuk layanan ini. Nilai berikut tersedia, bergantung pada penskalaan layanan Anda:
|
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 Kolom ini tidak digunakan lagi di runtime Python 3. libraries: - name: PIL version: "1.1.7" - name: webob version: "latest"
Perhatikan bahwa saat Anda menentukan 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 daftar library pihak ketiga yang disertakan, lihat Library Pihak Ketiga. Anda dapat menggunakan library pihak ketiga python murni tambahan dengan menginstalnya ke direktori lokal. Jika Anda menggunakan lingkungan fleksibel, lihat Menggunakan library Python di lingkungan fleksibel. |
module |
Catatan: Modul kini diberi nama Layanan. 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:
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 bernama skip_files: - logs/ |
threadsafe |
Wajib.
Mengonfigurasi aplikasi Anda untuk menggunakan permintaan serentak. Jika menggunakan
library thread Python, data
lokal thread, seperti yang ditampilkan oleh Kolom ini tidak digunakan lagi di runtime Python 3. threadsafe: [true | false]
Catatan: Perintah |
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
|
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.
vpc_access_connector: name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME" egress_setting: all-traffic |
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.app login: required 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: # 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
Catatan: seperti halnya pernyataan Dalam runtime App Engine yang lebih baru, perilaku kolom ini telah berubah. |
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.app login: required 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 |