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 實例直接在瀏覽器運行的範例Code-Hero 實例直接在瀏覽器運行的範例

將您的 Python 應用程式部署到 Stackhero 設計得非常簡單流暢。您可以按照以下步驟操作:

  1. 在 Stackhero 上建立一個 Python 服務。
  2. 將您的 SSH 公鑰加入 Python 服務的設定中。
  3. 在您的開發平台上設定 git push 指令。
  4. 在專案中新增 Makefile。
  5. 將您的程式碼部署到生產環境。

如果您在部署過程中遇到任何問題,建議先參考「疑難排解」文件,通常可以快速找到解決方法,避免不必要的困擾。

如果您尚未啟動 Stackhero for Python 服務,可以在 Stackhero 控制台中建立一個,通常只需幾分鐘即可完成。

當您的 Python 服務啟動後,您需要將 SSH 公鑰加入其設定。您可以透過以下指令顯示您的公鑰:

cat ~/.ssh/id_*.pub

還沒有 SSH 金鑰?

您可以用以下指令產生:

ssh-keygen -t ed25519

將公鑰加入 Python 服務的方法如下:

  1. 開啟 Stackhero 控制台並選擇您的 Python 服務。
  2. 點擊「設定」按鈕。
  3. 將您的 SSH 公鑰貼到「SSH public keys」區域。

Python 服務設定範例Python 服務設定範例

小提示:您也可以全域設定 SSH 公鑰,這樣未來新建立的服務都會自動包含該公鑰。只需到 Stackhero 控制台的個人資料頁,點擊右上角的大頭貼,選擇「Your profile」,然後新增您的 SSH 公鑰即可。

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 控制台上的 Python Git remote 指令範例

為了讓 Stackhero 知道如何啟動您的應用程式,您需要在專案根目錄新增一個 Makefile

如果您不熟悉 Makefile 檔案及 make 指令,沒關係,請依照以下說明操作即可。

請在專案根目錄建立一個 Makefile,內容如下:

run:
	gunicorn app:app -b 0.0.0.0:8080 --error-logfile -

這個 Makefile 有幾點需要注意:

  1. 必須有 run 規則,Stackhero 會自動執行它,請勿更名。
  2. gunicorn app:app -b 0.0.0.0:8080 --error-logfile - 只是範例,請依您的應用程式需求調整。
  3. gunicorn 指令前必須用 Tab 字元開頭。如果出現 "*** missing separator" 錯誤,代表缺少 Tab。

在這個範例中,Gunicorn 用來啟動您的應用程式(請確保它已列在 requirements.txt)。-b 0.0.0.0:8080 代表監聽所有介面上的 8080 埠。如果您選擇其他埠號,請記得同步更新 Stackhero 控制台上的 Python 服務設定。app:app 指的是 app.py 檔案中的 app 物件。

當一切設定完成後,您就可以開始部署。請在專案目錄下執行以下指令,將程式碼推送到 Stackhero:

git push stackhero main

第一次執行這個指令時,系統會要求您確認 SSH 金鑰指紋,請輸入「yes」即可。幾秒鐘後,您的應用程式就會上線。

使用 git push 指令將 Python 程式碼部署到 Stackhero 的範例使用 git push 指令將 Python 程式碼部署到 Stackhero 的範例

要查看已部署的應用程式,請前往 Stackhero 控制台中「website」欄位所列的網址(通常格式為 https://<XXXXXX>.stackhero-network.com)。

就是這麼簡單,您的應用程式已經在生產環境上線。

部署過程中遇到問題嗎?

疑難排解 區有豐富的解決方案,協助您快速排除障礙。

希望這份指南能讓您更清楚、輕鬆地將 Python 程式碼部署到 Stackhero 生產環境。有了這個基礎,您可以自信地將專案上線。

如果您想進一步探索,「進階部署用法」文件涵蓋了從不同 git 分支、標籤或 commit 部署、管理多個環境(如 staging 與 production)、以及環境變數的使用等主題。

最後,若遇到任何問題,「疑難排解」文件隨時可協助您快速回到正軌。