Sebelum dapat menjalankan aplikasi pada runtime Python 3 di lingkungan standar App Engine, Anda mungkin perlu mengubah beberapa file konfigurasi yang digunakan App Engine:
app.yaml. File ini berisi informasi tentang kode aplikasi Anda, seperti runtime dan pengendali aplikasi.appengine_config.py. Runtime Python 2 menggunakan file ini untuk mengakses library pihak ketiga dan memberikan nilai untuk konstan dan "fungsi hook". Runtime Python 3 tidak menggunakan file ini.
Mengupdate app.yaml
Perilaku beberapa kolom di
file konfigurasi app.yaml
Anda telah diubah. Hapus kolom yang tidak lagi didukung dan update
kolom lain seperti yang dijelaskan dalam tabel berikut.
| Kolom | Ubah jenis | Deskripsi |
|---|---|---|
| app_engine_bundled_services | Hanya berlaku untuk Python 3 | Konfigurasi kolom ini untuk mengakses layanan paket lama tertentu untuk Python 3.
Untuk mengetahui informasi selengkapnya tentang setelan konfigurasi app_engine_bundled_services, lihat referensi file app.yaml. |
| api_version application_readable builtins |
Tidak lagi didukung | Tidak berlaku di runtime Python 3. |
| threadsafe | Tidak lagi didukung | Semua aplikasi dianggap threadsafe. Jika aplikasi Anda tidak
threadsafe, tentukan entrypoint
yang mengonfigurasi 1 thread per worker.Misalnya, saat menggunakan class instance F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:appLihat praktik terbaik entrypoint untuk jumlah worker yang direkomendasikan bagi setiap class instance. |
| koleksi | Tidak lagi didukung |
Gunakan file requirements.txt untuk
mendeklarasikan dependensi
dan menginstal library klien.
|
| pengendali: login | Didukung jika Anda mengaktifkan Users API dengan mengonfigurasi setelan user dalam daftar app_engine_bundled_services. |
Jika Anda tidak menggunakan layanan paket lama untuk Python 3, gunakan Identity and Access Management (IAM) untuk pengelolaan pengguna. |
| pengendali: skrip | Modified | Di runtime Python 2, Anda menggunakan kolom
script
untuk merutekan permintaan masuk ke skrip aplikasi Anda.
Di runtime Python 3, Anda harus menggunakan framework web dengan
perutean dalam aplikasi (seperti Flask atau Django), bukan menggunakan
kolom Untuk memigrasikan file
Penanganan file statis tidak berubah. |
Jika Anda menggunakan salah satu kolom yang tidak digunakan lagi, App Engine akan menampilkan error saat Anda men-deploy aplikasi.
Anda dapat menggunakan contoh berikut untuk membandingkan perbedaan antara
file app.yaml:
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
Python 3
runtime: python314
app_engine_bundled_services:
#list your services
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
Menghapus appengine_config.py
Runtime Python 2 di lingkungan standar App Engine menggunakan file appengine_config.py.
File ini diabaikan dalam runtime Python 3. Sebagai gantinya, runtime Python 3
menggunakan file requirements.txt standar untuk
menginstal dependensi,
termasuk dependensi yang menggunakan kode native.