有兩種方法可以指定用 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 上正確運作。