Kem Intensif Pembangunan Bahagian Belakang FastAPI · Pelajaran

Penggunaan dengan Gunicorn dan Uvicorn

Fahami cara menggunakan FastAPI dalam persekitaran pengeluaran menggunakan Gunicorn sebagai pengurus proses dengan pekerja Uvicorn.

Pelajaran 2 daripada 411 langkah

Penggunaan dengan Gunicorn dan Uvicorn ialah pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.

Daripada Pembangunan ke Pengeluaran

Semasa membangunkan aplikasi FastAPI, anda biasanya menjalankannya menggunakan perintah ringkas seperti uvicorn main:app --reload.

Ini bagus untuk pembangunan kerana pelayan anda dimulakan semula secara automatik apabila anda membuat perubahan. Namun, cara ini tidak sesuai untuk persekitaran pengeluaran.

Mengapa? Satu proses sahaja tidak mantap atau boleh diskalakan. Jika proses itu terhenti, seluruh API anda tidak dapat digunakan! Pengeluaran memerlukan kestabilan, prestasi dan toleransi terhadap kegagalan.

Uvicorn: Nadi ASGI

FastAPI ialah rangka kerja ASGI. ASGI ialah singkatan bagi Asynchronous Server Gateway Interface, iaitu piawaian untuk pelayan web Python berkomunikasi dengan aplikasi web tak segerak.

Uvicorn ialah pelaksanaan pelayan ASGI yang sangat pantas. Uvicorn membolehkan aplikasi FastAPI anda mengendalikan permintaan secara tak segerak dan cekap.

Anggap Uvicorn sebagai enjin yang menggerakkan kereta FastAPI anda. Ia pantas, tetapi secara sendirinya hanya mempunyai seorang pemandu, iaitu satu proses.

Menjalankan Uvicorn Secara Terus

Berikut ialah aplikasi FastAPI asas. Untuk menjalankannya terus dengan Uvicorn, seperti yang mungkin anda lakukan dalam pembangunan, anda akan menggunakan perintah dalam terminal.

Perintah uvicorn main:app --host 0.0.0.0 --port 8000 memberitahu Uvicorn supaya menjalankan objek app daripada fail main.py, lalu menjadikannya boleh dicapai pada semua antara muka rangkaian di port 8000.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Kekurangan Uvicorn dalam Pengeluaran

Walaupun Uvicorn sangat baik, menjalankannya secara terus, khususnya dengan --reload, tidak ideal untuk pengeluaran kerana:

  • Proses Tunggal: Biasanya Uvicorn berjalan sebagai satu proses, yang bermakna ia hanya boleh menggunakan satu teras CPU.
  • Tiada Pengurusan Pekerja: Jika proses tunggal itu terhenti, API anda berhenti sepenuhnya.
  • Tiada Penyeliaan Proses: Uvicorn tidak memulakan semula pekerja yang terhenti secara automatik atau mengurus berbilang tika untuk pengimbangan beban.

Untuk pengeluaran, kita memerlukan sesuatu untuk mengurus pekerja Uvicorn.

Gunicorn: Pengurus yang Mantap

Perkenalkan Gunicorn (Green Unicorn)! Gunicorn ialah pelayan HTTP WSGI yang sedia untuk pengeluaran dan juga boleh mengurus aplikasi ASGI, seperti FastAPI, menggunakan kelas pekerja tertentu.

Tugas utamanya ialah bertindak sebagai pengurus proses. Gunicorn mencipta dan menyelia berbilang proses pekerja serta mengagihkan permintaan masuk kepada proses tersebut.

Anggap Gunicorn sebagai ketua kru pit yang memastikan semua enjin Uvicorn anda berjalan lancar dan menggantikannya jika salah satu daripadanya gagal.

Gandingan Hebat: Gunicorn dan Uvicorn

Cara yang disyorkan untuk menempatkan FastAPI dalam persekitaran produksi adalah dengan menggabungkan Gunicorn dengan pekerja Uvicorn.

Begini cara ia berfungsi:

  • Gunicorn (Proses Induk): Mendengar permintaan masuk dan mengagihkannya. Gunicorn juga menyelia proses pekerjanya.
  • Uvicorn (Proses Pekerja): Gunicorn melancarkan beberapa tika Uvicorn. Setiap pekerja Uvicorn menjalankan aplikasi FastAPI anda.

Persediaan ini memberikan prestasi yang lebih baik, toleransi kerosakan dan penggunaan sumber yang lebih cekap.

Gunicorn & Uvicorn Beraksi

Untuk menjalankan aplikasi FastAPI yang sama menggunakan Gunicorn dengan pekerja Uvicorn, anda boleh menggunakan perintah seperti ini. Persediaan ini jauh lebih kukuh untuk persekitaran produksi.

Di sini, -w 4 bermaksud 4 proses pekerja, manakala -k uvicorn.workers.UvicornWorker menetapkan bahawa Gunicorn harus menggunakan pekerja Uvicorn.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Mengoptimumkan Bilangan Pekerja

Menentukan bilangan pekerja Gunicorn yang hendak digunakan amat penting untuk prestasi. Anggaran umum bagi aplikasi yang terikat pada CPU ialah (2 * CPU_CORES) + 1.

Contohnya, pada pelayan dengan 4 teras CPU, anda boleh bermula dengan (2 * 4) + 1 = 9 pekerja. Ini membolehkan sesetengah pekerja mengendalikan I/O sementara pekerja lain memproses tugas yang intensif CPU.

Sentiasa pantau penggunaan sumber pelayan anda (CPU, RAM) untuk memperhalus bilangan ini mengikut beban aplikasi khusus anda.

Melindungi Konfigurasi Anda

Dalam persekitaran produksi, jangan sekali-kali mengekodkan maklumat sensitif seperti kelayakan pangkalan data atau kunci API secara terus dalam kod anda.

Sebaliknya, gunakan pemboleh ubah persekitaran. Ini memastikan rahsia anda tidak terdedah dalam pangkalan kod serta menjadikan aplikasi anda lebih mudah alih dan selamat.

FastAPI dan Pydantic (yang digunakan oleh FastAPI) mempunyai sokongan yang sangat baik untuk memuatkan tetapan daripada pemboleh ubah persekitaran, lazimnya melalui BaseSettings milik Pydantic.

Semakan Penempatan

Mari uji pemahaman anda tentang peranan Gunicorn dan Uvicorn dalam penempatan FastAPI untuk persekitaran produksi.

Imbas Kembali: Penempatan Kukuh

Anda telah mempelajari cara menempatkan aplikasi FastAPI untuk persekitaran produksi menggunakan gabungan berkuasa Gunicorn dan Uvicorn.

  • Uvicorn ialah pelayan ASGI yang menjalankan aplikasi FastAPI anda.
  • Gunicorn ialah pengurus proses yang menyelia beberapa pekerja Uvicorn.
  • Persediaan ini menyediakan kebolehskalaan, toleransi kerosakan dan penggunaan sumber yang lebih baik.

Ingat untuk mengoptimumkan bilangan pekerja dan sentiasa menggunakan pemboleh ubah persekitaran bagi konfigurasi sensitif. Seterusnya, anda boleh meneroka strategi penempatan awan!

Percuma untuk bermula

Pelajari Kem Intensif Pembangunan Bahagian Belakang FastAPI dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
21
Pelajaran
84

Soalan Lazim

Adakah pelajaran “Penggunaan dengan Gunicorn dan Uvicorn” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, termasuk “Penggunaan dengan Gunicorn dan Uvicorn”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penggunaan dengan Gunicorn dan Uvicorn”?

Fahami cara menggunakan FastAPI dalam persekitaran pengeluaran menggunakan Gunicorn sebagai pengurus proses dengan pekerja Uvicorn. Anda berlatih Kem Intensif Pembangunan Bahagian Belakang FastAPI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Bahagian Belakang FastAPI?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Penggunaan dengan Gunicorn dan Uvicorn” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI ini?

Ya. Setiap pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Membina Bekas Aplikasi FastAPI
  2. Penggunaan dengan Gunicorn dan Uvicorn
  3. Strategi Penggunaan Awan
  4. Mengurus Pemboleh Ubah Persekitaran dan Rahsia
← Kembali ke Kem Intensif Pembangunan Bahagian Belakang FastAPI