建構 Python 應用程式

Buildpack 可透過環境變數支援語言慣用表設定。

指定 Python 版本

根據預設,Python 執行階段 Buildpack 會使用最新的 Python 解譯器穩定版。如果應用程式需要特定版本,您可以在應用程式根目錄中加入 .python-version 檔案,指定所需版本。

3.9.9

正在使用 GOOGLE_PYTHON_VERSION

您也可以透過 GOOGLE_PYTHON_VERSION 環境變數指定 Python 版本。如果同時設定這兩種設定,GOOGLE_PYTHON_VERSION 值會優先於 .python-version 檔案。根據預設,如果未指定 .python-version 檔案和 GOOGLE_PYTHON_VERSION 環境變數,系統會使用 Python 的最新 LTS 版本。

如要設定 buildpack 在部署應用程式時使用 Python 3.10,請按照下列步驟操作:

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_PYTHON_VERSION="3.10.x"

您也可以使用 project.toml 專案描述元,為專案檔案和環境變數編碼。請參閱使用環境變數建構應用程式的操作說明。

透過 pip 指定依附元件

Python Buildpack 支援使用 pip 管理應用程式依附元件。應用程式依附元件應在根目錄的 requirements.txt 檔案中宣告。

requirements.txt 檔案中,一行代表一個套件,每行都包含套件名稱,並可視需要加入要求的版本。詳情請參閱 requirements.txt 參考資料

以下是 requirements.txt 檔案範例:

requests==2.20.0
numpy

設定 pip

您可以使用環境變數設定 pip 的行為:

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env PIP_DEFAULT_TIMEOUT='60'

來自 Artifact Registry 的私人依附元件

Artifact Registry Python 存放區可代管 Python 函式的私人依附元件。在 Cloud Build 上建構應用程式時,Python 建構包會自動為 Cloud Build 服務帳戶產生 Artifact Registry 憑證。您只需在 requirements.txt 中加入 Artifact Registry 網址,無須產生其他憑證。例如:

--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage

應用程式進入點

Python 建構包會使用 Gunicorn 做為工作負載的預設 WSGI HTTP 伺服器。使用 Python 建構包建構的應用程式會以預設設定啟動 gunicorn 程序,類似於執行:

gunicorn --bind :8080 main:app

自訂應用程式進入點

您可以使用 Procfile 或環境變數,覆寫 Gunicorn 預設值、進入點預設值,並自訂應用程式的啟動指令。

您可以在根目錄中建立 Procfile,並設定自訂選項。範例:

web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app

或者,您也可以搭配使用 GOOGLE_ENTRYPOINT 環境變數和 pack 指令。範例:

pack build sample-python \
  --builder gcr.io/buildpacks/builder
  --env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"

環境變數

Python Buildpack 支援下列環境變數,可用於自訂容器

PIP_<key>

請參閱 pip 說明文件

範例: PIP_DEFAULT_TIMEOUT=60 會為 pip 指令設定 --default-timeout=60