處理依賴關係


有兩種方法可以指定用 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 環境的 Internet 存取受到限制,則此方法非常有用。

例如,您可以使用如下所示的目錄結構:

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

然後,您可以像往常一樣使用以下import語句從localpackage導入程式碼。

# Code in main.py
from localpackage import script

請注意,此方法不會執行任何setup.py檔案。包含這些檔案的套件仍然可以捆綁,但可能無法在 Cloud Functions 上正確運作。