Menyiapkan file konfigurasi untuk runtime Python 3

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_apis Hanya berlaku untuk Python 3 Harus disetel ke true jika Anda ingin mengakses layanan paket lama untuk Python 3.
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:app

Lihat 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 app_engine_apis adalah true 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 script.

Untuk memigrasikan file app.yaml ke runtime Python 3, lakukan salah satu hal berikut, tergantung pada apakah file berisi pengendali statis serta pengendali skrip:

  • Jika file app.yaml Anda berisi pengendali statis, lakukan salah satu hal berikut untuk memastikan bahwa permintaan konten dinamis dirutekan ke skrip aplikasi Anda:
    • Hapus semua kolom script. Kemudian, tambahkan kolom entrypoint untuk memulai server web yang menjalankan aplikasi Anda. Permintaan yang tidak cocok dengan pengendali statis Anda akan diarahkan ke server web yang Anda tentukan di kolom entrypoint. Server web dan framework web aplikasi Anda bertanggung jawab untuk merutekan permintaan ke skrip yang benar.
    • Ganti nilai semua kolom script dengan auto. App Engine akan otomatis menjalankan aplikasi Anda di server web (dengan asumsi aplikasi Anda memenuhi beberapa persyaratan ), dan semua permintaan yang cocok dengan pengendali skrip akan diarahkan ke server web. Server web dan framework web aplikasi Anda bertanggung jawab untuk merutekan permintaan ke skrip yang benar.
    • Jika file app.yaml Anda tidak berisi pengendali statis, hapus semua kolom script. Semua permintaan ke aplikasi Anda akan diarahkan ke server web aplikasi Anda, dan framework aplikasi Anda akan merutekan permintaan ke skrip yang benar. Anda juga dapat menambahkan kolom entrypoint untuk menyesuaikan perilaku startup default. Jika app.yaml memiliki kedua jenis pengendali, Anda masih dapat menghapus semua pengendali skrip yang akan ditandai auto, sehingga menyisakan pengendali statis serta pengendali auto yang memerlukan perintah lain, seperti pengendali khusus admin dalam contoh di bawah ini.

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: python312
app_engine_apis: true

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.