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 是一個易於使用、開箱即用的雲端開發平台,能直接在瀏覽器上執行,支援任何電腦、平板或手機。Code-Hero 基於 VSCode 分支,預先安裝了開發所需的各項工具,讓您無需額外設定即可立即開始撰寫程式。

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 公鑰」區塊。

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

小提示:您也可以在 Stackhero 控制台的個人檔案頁面中,將 SSH 公鑰設為全域設定,這樣未來新建立的服務都會自動包含這把公鑰。請點選右上角的大頭貼,進入「您的個人檔案」,然後新增您的 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)、以及環境變數的使用等主題。

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