Python: 部署到生產環境
如何在數分鐘內將您的 Python 程式碼部署到生產環境
👋 歡迎來到 Stackhero 文檔!
Stackhero 提供一個即用型的 Python 雲端 解決方案,帶來多項好處,包括:
- 只需一個簡單的
git push,即可在幾秒鐘內部署您的應用程式。- 使用您自己的域名,並享受 HTTPS 證書的自動配置以增強安全性。
- 享受自動備份、一鍵更新,以及簡單、透明且可預測的定價,讓您安心無憂。
- 得益於專用的私人 VM,獲得最佳的性能和強大的安全性。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Python 雲端託管 解決方案!
Stackhero 的 Python 雲端託管服務 提供一個簡單可靠的方法,讓您可以在短短數分鐘內將 Python 專案部署到生產環境。透過直觀的設定流程及強大的功能,您可以專注於開發應用程式,而 Stackhero 會為您處理所有基礎設施細節。
主要功能包括:
- 只需一個簡單的
git push即可部署 - 支援自訂網域及自動管理 TLS 憑證(HTTPS)
- 專屬、私有的 VM,提升安全性與資料保密性
- 支援 HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIP & Brotli 壓縮、ETag,以及 TCP/UDP 埠存取
先決條件
在開始使用 Stackhero 前,請確保您的電腦已安裝 Git。
如果您的開發環境尚未設定好,或想節省設定時間,建議您可以試用 Stackhero 的 Code-Hero。
Code-Hero 是一個易於使用、即開即用的開發平台,直接在瀏覽器上運行,無論是電腦、平板還是手機都可以使用。它基於 VSCode fork,預先安裝了各種開發所需工具,讓您無需額外設定即可立即開始編寫程式碼。
Code-Hero 實例直接在瀏覽器運行的範例
部署到 Stackhero 的步驟
將您的 Python 應用程式部署到 Stackhero 設計得非常簡單流暢。您可以按照以下步驟操作:
- 在 Stackhero 上建立一個 Python 服務。
- 將您的 SSH 公鑰加入 Python 服務的設定中。
- 在您的開發平台上設定
git push指令。 - 在專案中新增 Makefile。
- 將您的程式碼部署到生產環境。
如果您在部署過程中遇到任何問題,建議先參考「疑難排解」文件,通常可以快速找到解決方法,避免不必要的困擾。
設定您的「Stackhero for Python」服務
如果您尚未啟動 Stackhero for Python 服務,可以在 Stackhero 控制台中建立一個,通常只需幾分鐘即可完成。
當您的 Python 服務啟動後,您需要將 SSH 公鑰加入其設定。您可以透過以下指令顯示您的公鑰:
cat ~/.ssh/id_*.pub
還沒有 SSH 金鑰?
您可以用以下指令產生:
ssh-keygen -t ed25519
將公鑰加入 Python 服務的方法如下:
- 開啟 Stackhero 控制台並選擇您的 Python 服務。
- 點擊「設定」按鈕。
- 將您的 SSH 公鑰貼到「SSH public keys」區域。
Python 服務設定範例
小提示:您也可以全域設定 SSH 公鑰,這樣未來新建立的服務都會自動包含該公鑰。只需到 Stackhero 控制台的個人資料頁,點擊右上角的大頭貼,選擇「Your profile」,然後新增您的 SSH 公鑰即可。
設定部署用的 git push 指令
Stackhero 透過 Git CLI 及熟悉的 git push 指令讓部署變得非常簡單。無需安裝額外軟件,只需設定一次 Git remote,即可開始部署。
您可以在 Stackhero 控制台的服務主頁找到您的 git remote command,格式大致如下:
git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
Stackhero 控制台上的 Python Git remote 指令範例
建立 Stackhero 部署用的 Makefile
為了讓 Stackhero 知道如何啟動您的應用程式,您需要在專案根目錄新增一個 Makefile。
如果您不熟悉
Makefile檔案及make指令,沒關係,請依照以下說明操作即可。
請在專案根目錄建立一個 Makefile,內容如下:
run:
gunicorn app:app -b 0.0.0.0:8080 --error-logfile -
這個 Makefile 有幾點需要注意:
- 必須有
run規則,Stackhero 會自動執行它,請勿更名。 gunicorn app:app -b 0.0.0.0:8080 --error-logfile -只是範例,請依您的應用程式需求調整。- gunicorn 指令前必須用 Tab 字元開頭。如果出現 "*** missing separator" 錯誤,代表缺少 Tab。
在這個範例中,Gunicorn 用來啟動您的應用程式(請確保它已列在 requirements.txt)。-b 0.0.0.0:8080 代表監聽所有介面上的 8080 埠。如果您選擇其他埠號,請記得同步更新 Stackhero 控制台上的 Python 服務設定。app:app 指的是 app.py 檔案中的 app 物件。
部署您的 Python 應用程式
當一切設定完成後,您就可以開始部署。請在專案目錄下執行以下指令,將程式碼推送到 Stackhero:
git push stackhero main
第一次執行這個指令時,系統會要求您確認 SSH 金鑰指紋,請輸入「yes」即可。幾秒鐘後,您的應用程式就會上線。
使用 git push 指令將 Python 程式碼部署到 Stackhero 的範例
要查看已部署的應用程式,請前往 Stackhero 控制台中「website」欄位所列的網址(通常格式為 https://<XXXXXX>.stackhero-network.com)。
就是這麼簡單,您的應用程式已經在生產環境上線。
部署過程中遇到問題嗎?
疑難排解 區有豐富的解決方案,協助您快速排除障礙。
結語
希望這份指南能讓您更清楚、輕鬆地將 Python 程式碼部署到 Stackhero 生產環境。有了這個基礎,您可以自信地將專案上線。
如果您想進一步探索,「進階部署用法」文件涵蓋了從不同 git 分支、標籤或 commit 部署、管理多個環境(如 staging 與 production)、以及環境變數的使用等主題。
最後,若遇到任何問題,「疑難排解」文件隨時可協助您快速回到正軌。