首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从requirements.txt在Google函数中安装最新版本的库

如何从requirements.txt在Google函数中安装最新版本的库
EN

Stack Overflow用户
提问于 2020-02-26 01:08:20
回答 2查看 3.4K关注 0票数 4

在部署云功能时,我假设Google执行的功能相当于:

pip install -r requirements.txt

假设requirements.txt文件包含:

代码语言:javascript
复制
google-cloud-pubsub
google-cloud-storage==1.26.0

由于指定了云存储版本,所有现有和未来的缩放功能实例都将安装该版本。

gcloud functions deploy ...将在所有实例上安装1.26.0存储库。

但是,假设已经安装了一个google-cloud-pubsub版本1.0.2的实例,最新版本为1.3.0。

上面的pip命令将而不是加载较新的版本。

相反,会有一个Requirement already satisfied响应。现有实例将保留在版本1.0.2上,而任何新缩放的实例都将使用1.3.0。同一云功能的实例之间将出现库版本不匹配的情况。

  1. 我能准确地理解这个过程吗?GCP是否有一种类似于pip install -r requirements.txt
  2. Is的方法来强制云功能通过requirements.txt或其他方式在部署期间导入库的最新版本?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-26 01:50:56

  1. 我能准确地理解这个过程吗?GCP是否与pip install -r requirements.txt?

相当?

你是对的。在部署时,云函数构建一个映像,将依赖项和函数安装到其中,并使用它为您的函数服务。

  1. 是否有一种方法可以强制云功能通过requirements.txt或其他方式在部署期间导入库的最新版本?

我不确定我是否在准确地跟踪,但您似乎认为重复安装会重用相同的映像。它们不需要:每次您的源更改和部署时,它都会从头开始并执行上面的步骤。

这意味着,如果您解除依赖项(即没有==1.26.0),每次运行部署时,您都会得到这些项目的最新兼容版本。

注意:如果源文件没有更改,或者只是修改或添加环境变量,云函数将缓存上一次构建,不会重新评估您的依赖关系。当前,您必须修改源文件以强制云函数重新构建您的函数。

票数 2
EN

Stack Overflow用户

发布于 2020-04-05 09:56:26

  1. 是否有一种方法可以强制云功能通过requirements.txt或其他方式在部署期间导入库的最新版本?

我对此进行了测试,发现了与https://stackoverflow.com/a/60405672/1803897相反的地方

您必须在requirements.txt中指定较新的版本,以强制使用新的库。否则,将使用现有的库。

https://cloud.google.com/functions/docs/concepts/exec#multiple_functions没有说某些文件在创建新实例时不被重用。他们会拷贝一些文件,因为他们肯定不会为每个实例做一个新的完整安装。那要花太多的时间。对于python库,同样的点是有效的。在每次部署时安装所有python库需要花费太多的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60405405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档