ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / PYTHON

คู่มือ 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

  1. เข้าถึงตัวช่วยสร้าง Topologyโดยคลิกที่Environment ใหม่ปุ่มที่ด้านบนของ Dashboard

  2. นำทางไปยังหลามแท็บภาษาโปรแกรมให้เลือกเครื่องยนต์หลามApplication Server และเลือกเวอร์ชันของเอ็นจิ้นที่ต้องการและตัวจัดการกระบวนการ (ยูวิคอร์นหรือกุนิคอร์น).

Image 31: Python Engine topology wizardปรับการตั้งค่าอื่นๆ (เช่นขีดจำกัด cloudlets, Public IP หรือภูมิภาค) ระบุชื่อ Environment แล้วคลิกสร้าง.

  1. 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