您可通过两种方式为使用 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
参考文档。
为了防止 build 受到依赖项版本更改的影响,请考虑将依赖项软件包固定到特定版本。
下面是一个 requirements.txt
文件示例:
functions-framework requests==2.20.0 numpy
Cloud Functions 框架是所有函数都必需的依赖项。虽然 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 上正常运行。