GCP/Cloud函数是否具有类似AWS Lambda Layers的库概念



GCP/Cloud函数是否有类似AWS Lambda Layers的库概念?也就是说,如果我们想减少代码重复,并为我们的谷歌云功能推出一个公共库层,我们将如何做到这一点?

不,Cloud Function没有这种功能。我有三个直接的选择

  • 使用Cloud Run并使用所需的依赖项/通用代码构建自己的基础映像
  • 将通用代码打包到库中,然后在每个函数中导入。但这需要将库发布到公共或私有的地方,并在函数打包和部署方面做额外的工作
  • 使用这样的项目结构(我通常使用这个(

项目树

root
|
- Common
|
- Functions
|
- function A
|
- function B

在函数A和函数B中,您使用common目录中的common文件。部署函数时,在root目录中执行,并使用源目录指示在哪个目录中查找要部署的函数

gcloud functions deploy --source=function/functionA ...

权衡

  • 将复制根路径中的所有文件/目录。即使只有一个有效运行,也会部署所有功能文件
  • 您必须在functionX级别声明所有依赖项。甚至是Common目录的依赖项。如果公共目录中有新的依赖项,并且您有很多函数,这可能会产生问题

谷歌的云平台现在有了Artifact Registry。此服务可用于存储可从GCP云函数引用的NodeJS包(不确定其他运行时(。

你可以在下面的链接上阅读更多关于它的信息:

https://cloud.google.com/artifact-registry/docs/nodejs/store-nodejs

相关内容

  • 没有找到相关文章

最新更新