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 Google Cloud project ID konsol yang Anda tentukan saat membuat aplikasi di Google Cloud console.  | 
    
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  |