คู่มือ Python Engine สำหรับ Python
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
เครื่องยนต์หลามเป็นเทมเพลตคอนเทนเนอร์ที่จัดการแพลตฟอร์มสำหรับเว็บแอปพลิเคชัน Python สมัยใหม่ไม่เหมือนอาปาเช่ไพธอนโดยจะดำเนินขั้นตอนการสมัครโดยตรงผ่านทางยูวิคอร์นหรือกูนิคอร์น. ไม่มีพร็อกซีย้อนกลับ (เช่นงินซ์หรือแคดดี้) ภายในคอนเทนเนอร์ — แอปพลิเคชันเซิร์ฟเวอร์คือจุดสิ้นสุด HTTP(S)
เทมเพลต Python Engine รองรับตัวจัดการกระบวนการสองตัวต่อไปนี้:
- ยูวิคอร์นสำหรับเฟรมเวิร์ก ASGI ดั้งเดิมเช่น FastAPI, Starlette, Django Channels และ Quart
- กูนิคอร์นสำหรับเฟรมเวิร์ก WSGI เช่น Django และ Flask
เคล็ดลับ:หากจำเป็นคุณสามารถสลับระหว่างผู้จัดการกระบวนการด้วยปรับใช้คอนเทนเนอร์ใหม่หรือโดยการปรับกระบวนการ_ผู้จัดการตัวแปรคอนเทนเนอร์(ยูวิคอร์นหรือกุนิคอร์น; จำเป็นต้องรีสตาร์ทคอนเทนเนอร์เพื่อใช้การเปลี่ยนแปลง)
อ้างถึงข้อมูลจำเพาะของแอพ Pythonสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเวิร์กโฟลว์การ Deploy ตรรกะการติดตั้งการพึ่งพาและการตรวจจับแอปพลิเคชันอัตโนมัตินอกจากนี้ยังครอบคลุมหัวข้อต่างๆเช่นโฟลว์การรับส่งข้อมูล SSL ของแพลตฟอร์มและการให้บริการไฟล์แบบคงที่
สร้าง Environment เครื่องยนต์ Python
-
เข้าถึงตัวช่วยสร้างโทโพโลยีโดยคลิกที่Environment ใหม่ปุ่มที่ด้านบนของแดชบอร์ด
-
นำทางไปยังหลามแท็บภาษาโปรแกรมให้เลือกเครื่องยนต์หลามเซิร์ฟเวอร์แอปพลิเคชันและเลือกเวอร์ชันของเอ็นจิ้นที่ต้องการและตัวจัดการกระบวนการ (ยูวิคอร์นหรือกุนิคอร์น).
ปรับการตั้งค่าอื่นๆ (เช่นขีดจำกัด cloudlets, IP สาธารณะหรือภูมิภาค) ระบุชื่อ Environment แล้วคลิกสร้าง.
- Environment ของคุณจะถูกสร้างขึ้นภายในไม่กี่นาที
ยูวิคอร์น
ยูวิคอร์นเป็นASGIเซิร์ฟเวอร์ที่สร้างขึ้นอะซินซิโอและปรับให้เหมาะสมสำหรับ async I/O เป็นตัวเลือกที่แนะนำสำหรับเฟรมเวิร์ก ASGI ดั้งเดิมเช่น FastAPI, Starlette, Django Channels และ Quart
ลักษณะสำคัญ:
- ค่าใช้จ่ายต่ำและประสิทธิภาพที่แข็งแกร่งสำหรับเวิร์กโหลดอะซิงก์
- การสนับสนุนดั้งเดิมสำหรับการเชื่อมต่อ HTTP และ WebSocket
- บิวท์อิน
--reloadโหมดสำหรับการพัฒนา - รันเป็นกระบวนการเดียวตามค่าเริ่มต้นใช้พนักงานหลายคนหรือเปลี่ยนไปใช้ Gunicorn เพื่อควบคุมกระบวนการทั้งหมด
แพลตฟอร์มเริ่มต้น Uvicorn ภายในระหว่างการใช้งานตัวอย่างต่อไปนี้แสดงคำสั่งที่เทียบเท่าสำหรับการพัฒนาในเครื่องหรือการดีบัก SSH:
คัดลอกข้อความ
uvicorn app.main:app --host 0.0.0.0 --port 8000
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
กูนิคอร์น
กูนิคอร์นเป็นตัวจัดการกระบวนการ prefork และเซิร์ฟเวอร์ HTTP สำหรับเว็บแอปพลิเคชัน Python โดยจะดูแลกระบวนการของผู้ปฏิบัติงานหลายกระบวนการจัดการการโหลดซ้ำและการปิดเครื่องอย่างค่อยเป็นค่อยไปรีสตาร์ทผู้ปฏิบัติงานที่เสียหายและมีตัวเลือกการกำหนดค่ารันไทม์ที่ครอบคลุม
ลักษณะสำคัญ:
- ความยืดหยุ่นในการผลิต: พนักงานหลายคน, การโหลดซ้ำอย่างสง่างาม, การแยกส่วนการชน
- พื้นเมืองWSGIรองรับแอปพลิเคชัน Django และ Flask
- ASGIสนับสนุนผ่านทาง
uvicorn.workers.UvicornWorkerคลาสคนงานสำหรับ FastAPI และ Starlette - การควบคุมการปฏิบัติงาน:
workers,timeout,graceful-timeout,max-requests,preload_appการเข้าถึงและบันทึกข้อผิดพลาด
แพลตฟอร์มเริ่มต้น Gunicorn ภายในระหว่างการใช้งานตัวอย่างต่อไปนี้แสดงคำสั่งที่เทียบเท่าสำหรับการพัฒนาในเครื่องหรือการดีบัก SSH:
คัดลอกข้อความ
# WSGI applications (Django/Flask)
gunicorn myproj.wsgi:application --bind 0.0.0.0:8000 --workers 4
# ASGI applications (FastAPI/Starlette)
gunicorn -k uvicorn.workers.UvicornWorker app.main:app --bind 0.0.0.0:8000 --workers 4