คู่มือ Python Engine สำหรับ Python
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
เครื่องยนต์หลามเป็น TemplateContainer ที่จัดการ Platform สำหรับเว็บ Application Python สมัยใหม่ไม่เหมือนอาปาเช่ไพธอนโดยจะดำเนินขั้นตอนการสมัครโดยตรงผ่านทางยูวิคอร์นหรือกูนิคอร์น. ไม่มีพร็อกซีย้อนกลับ (เช่นงินซ์หรือแคดดี้) ภายใน Container — Application Server คือจุดสิ้นสุด HTTP(S)
Template Python Engine รองรับตัวจัดการกระบวนการสองตัวต่อไปนี้:
- ยูวิคอร์นสำหรับเฟรมเวิร์ก ASGI ดั้งเดิมเช่น FastAPI, Starlette, Django Channels และ Quart
- กูนิคอร์นสำหรับเฟรมเวิร์ก WSGI เช่น Django และ Flask
เคล็ดลับ:หากจำเป็นคุณสามารถสลับระหว่าง Process Manager ด้วยDeployContainer ใหม่หรือโดยการปรับกระบวนการ_ผู้จัดการตัวแปร Container(ยูวิคอร์นหรือกุนิคอร์น; จำเป็นต้อง Restart Container เพื่อใช้การเปลี่ยนแปลง)
อ้างถึงข้อมูลจำเพาะของแอพ Pythonสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ Workflow การ Deploy ตรรกะการติดตั้งการพึ่งพาและการตรวจจับ Application อัตโนมัตินอกจากนี้ยังครอบคลุมหัวข้อต่างๆเช่นโฟลว์ Traffic SSL ของ Platform และการให้บริการไฟล์แบบคงที่
สร้าง Environment เครื่องยนต์ Python
-
เข้าถึงตัวช่วยสร้าง Topologyโดยคลิกที่Environment ใหม่ปุ่มที่ด้านบนของ Dashboard
-
นำทางไปยังหลามแท็บภาษาโปรแกรมให้เลือกเครื่องยนต์หลามApplication Server และเลือกเวอร์ชันของเอ็นจิ้นที่ต้องการและตัวจัดการกระบวนการ (ยูวิคอร์นหรือกุนิคอร์น).
ปรับการตั้งค่าอื่นๆ (เช่นขีดจำกัด cloudlets, Public IP หรือภูมิภาค) ระบุชื่อ Environment แล้วคลิกสร้าง.
- Environment ของคุณจะถูกสร้างขึ้นภายในไม่กี่นาที
ยูวิคอร์น
ยูวิคอร์นเป็นASGIServer ที่สร้างขึ้นอะซินซิโอและปรับให้เหมาะสมสำหรับ async I/O เป็นตัวเลือกที่แนะนำสำหรับเฟรมเวิร์ก ASGI ดั้งเดิมเช่น FastAPI, Starlette, Django Channels และ Quart
ลักษณะสำคัญ:
- ค่าใช้จ่ายต่ำและประสิทธิภาพที่แข็งแกร่งสำหรับเวิร์กโหลดอะซิงก์
- การสนับสนุนดั้งเดิมสำหรับการเชื่อมต่อ HTTP และ WebSocket
- บิวท์อิน
--reloadโหมดสำหรับการพัฒนา - รันเป็นกระบวนการเดียวตามค่าเริ่มต้นใช้พนักงานหลายคนหรือเปลี่ยนไปใช้ Gunicorn เพื่อควบคุมกระบวนการทั้งหมด
Platform เริ่มต้น Uvicorn ภายในระหว่างการใช้งานตัวอย่างต่อไปนี้แสดงคำสั่งที่เทียบเท่าสำหรับการพัฒนาในเครื่องหรือการ Debug 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 และ Server HTTP สำหรับเว็บ Application Python โดยจะดูแลกระบวนการของผู้ปฏิบัติงานหลายกระบวนการจัดการการโหลดซ้ำและการปิดเครื่องอย่างค่อยเป็นค่อยไป Restart ผู้ปฏิบัติงานที่เสียหายและมีตัวเลือกการกำหนดค่า Runtime ที่ครอบคลุม
ลักษณะสำคัญ:
- ความยืดหยุ่นในการผลิต: พนักงานหลายคน, การโหลดซ้ำอย่างสง่างาม, การแยกส่วนการชน
- พื้นเมืองWSGIรองรับ Application Django และ Flask
- ASGIสนับสนุนผ่านทาง
uvicorn.workers.UvicornWorkerคลาสคนงานสำหรับ FastAPI และ Starlette - การควบคุมการปฏิบัติงาน:
workers,timeout,graceful-timeout,max-requests,preload_appการเข้าถึงและบันทึกข้อผิดพลาด
Platform เริ่มต้น Gunicorn ภายในระหว่างการใช้งานตัวอย่างต่อไปนี้แสดงคำสั่งที่เทียบเท่าสำหรับการพัฒนาในเครื่องหรือการ Debug 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
