處理依附元件


您可以透過兩種方式指定以 Python 編寫的 Cloud Functions 依附元件:使用 pip 套件管理員的 requirements.txt 檔案,或與您的函式一起封裝本機依附元件。

系統並不支援使用 Pipfile/Pipfile.lock 標準指定依附元件。您的專案不應包含這些檔案。

透過 pip 指定依附元件

Python 中的依附元件由 pip 管理,並以名為 requirements.txt 的中繼資料檔案表示。這個檔案必須與包含函式程式碼的 main.py 檔案位於相同的目錄中。

部署或重新部署函式時,Cloud Functions 會使用 pip 下載並安裝 requirements.txt 檔案中宣告的依附元件最新版本。requirements.txt 檔案中,一行代表一個套件,每行都包含套件名稱以及要求的版本。詳情請參閱 requirements.txt 參考資料

為避免建構作業受到依附元件版本變更的影響,建議您將依附元件套件固定為特定版本。

以下是 requirements.txt 檔案範例:

functions-framework
requests==2.20.0
numpy

函式架構是所有函式的必要依附元件,雖然 Cloud Functions 會在函式建立時代您安裝,但為了清楚起見,建議您將其納入為明確的依附元件。

如果函式需要私人依附元件,建議您將 functions-framework 鏡像複製到私人登錄。將鏡像 functions-framework 納入函式的依附元件,避免從公開網際網路安裝套件。

封裝本機依附元件

您也可以將依附元件與函式一起封裝及部署。如果您無法透過 pip 套件管理員使用依附元件,或是 Cloud Functions 環境的網際網路存取權受限,這項做法就很實用。

舉例來說,您可以採用如下的目錄結構:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

接著,您可以使用下列 import 陳述式,照常從 localpackage 匯入程式碼。

# Code in main.py
from localpackage import script

請注意,這個方法「不會」執行任何 setup.py 檔案。含有這些檔案的套件仍可打包,但可能無法在 Cloud Functions 上正確執行。