設定您的 Python 開發環境 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定您的 Python 開發環境

將 Python 開發環境設定為先在本機測試您的應用程式,再將其部署至 AWS Elastic Beanstalk。此主題概述開發環境設定步驟,並提供實用工具的安裝頁面連結。

為了遵循本指南的程序,您需要命令列終端機或 shell 來執行命令。命令清單前會出現提示字元 ($) 及目前的目錄名稱 (如有)。

~/eb-project$ this is a command this is output

在 Linux 和 macOS 上,您可以使用偏好的 Shell 和套件軟體管理工具。在視窗上,你可以安裝視窗子系統為 Linux 得到一個視窗集成的 Ubuntu 和 Bash 的版本。

如需了解適用所有語言的常見設定步驟和工具,請參閱設定您的開發機器搭配 Elastic Beanstalk 使用

必要條件

針對您將透過 Elastic Beanstalk 部署的所有 Python 應用程式,常見的先決條件為:

  1. 與您的應用程式將使用的 Elastic Beanstalk Python 平台版本相符的 Python 版本。

  2. 符合您 Python 版本的 pip 公用程式。這可用於安裝並列出專案的依存項目,讓 Elastic Beanstalk 知道如何設定您應用程式的環境。

  3. 命 AWS Elastic Beanstalk 令列介面 (EB CLI)。這可透過 Elastic Beanstalk 部署所需的檔案,初始化您的應用程式。

  4. 正常運作的 ssh 安裝。在您需要檢查或除錯部署時,這可用於連接執行中的執行個體。

  5. virtualenv 套件。這可建立將用於開發並測試您應用程式的環境,Elastic Beanstalk 無須安裝您應用程式不需要的額外套件,即可複寫該環境。使用以下命令安裝此套件:

    $ pip install virtualenv

如需安裝 Python、pip 和 EB CLI 的說明,請參閱安裝 EB CLI

使用虛擬環境

先決條件安裝完成後,請透過 virtualenv 設定虛擬環境,以安裝應用程式的依存項目。透過虛擬環境,您可清楚分辨應用程式所需的套件,將該套件安裝於執行您應用程式的 EC2 執行個體。

欲設定虛擬環境
  1. 開啟命令列視窗並輸入:

    $ virtualenv /tmp/eb_python_app

    eb_python_app 取代為對您應用程式有意義的名稱 (最好使用您應用程式的名稱)。該 virtualenv 命令在指定的目錄中為您建立一個虛擬環境,並列印其操作的結果:

    Running virtualenv with interpreter /usr/bin/python New python executable in /tmp/eb_python_app/bin/python3.7 Also creating executable in /tmp/eb_python_app/bin/python Installing setuptools, pip...done.
  2. 您的虛擬環境就緒後,請執行位於環境 activate 目錄的 bin 指令碼來加以啟動。例如,欲啟動前一步建立的 eb_python_app 環境,您需要輸入:

    $ source /tmp/eb_python_app/bin/activate

    虛擬環境會於命令提示字元的開頭列印其名稱 (如 (eb_python_app)),藉此提醒您正處於虛擬 Python 環境。

  3. 要停止使用您的虛擬環境並返回到系統的預設 Python 解譯器及其所有已安裝的程式庫,請執行 deactivate 命令。

    (eb_python_app) $ deactivate
注意

建立後,即可隨時再次執行虛擬環境的 activate 指令碼,將其重新啟動。

設定適用 Elastic Beanstalk 的 Python 專案

您可使用 Elastic Beanstalk CLI,準備將您的 Python 應用程式透過 Elastic Beanstalk 進行部署。

透過 Elastic Beanstalk 設定 Python 應用程式以進行部署
  1. 在您的虛擬環境中,回到您專案樹狀目錄 (python_eb_app) 的最上層,並輸入:

    pip freeze >requirements.txt

    此命令會將您安裝於虛擬環境的套件名稱和版本,複製至 requirements.txt,例如,若 PyYAML 套件版本 3.11 安裝在您的虛擬環境中,那麼此檔案將包含下列這一行:

    PyYAML==3.11

    這可讓 Elastic Beanstalk 使用與您用於開發並測試應用程式的相同套件和版本,複寫您應用程式的 Python 環境。

  2. 透過 eb init 命令設定 EB CLI 儲存庫。依提示選擇區域、平台和其他選項。如需詳細說明,請參閱 使用 EB CLI 管理 Elastic Beanstalk 環境

根據預設,Elastic Beanstalk 會尋找名為 application.py 的檔案,以啟動您的應用程式。若您建立的 Python 專案並沒有該項目,則您應用程式的環境必須進行調整。您也將需要設定環境變數,藉此載入您應用程式的模組。如需詳細資訊,請參閱「使用 Elastic Beanstalk Python 平台」。