当您使用Node.js运行时部署Google Cloud Function时,您可以在Google Cloud Storage(--source=gs://...
(中的.zip
文件中提供代码。
我使用所有编译的源代码和node_modules/
文件夹制作zip文件,这样GCF就拥有了它所需要的一切。我这样做是因为我使用privateNPM模块,所以npm i
不会在GCF构建例程(在GCP内部的云部署上运行(中工作。
问题:即使我在node_modules/
中包含了100%所需的模块,GCF仍然存在部署错误,因为它试图访问私有NPM包回购。
如果我删除package.json
的dependencies
和devDependencies
部分,GCF将无法启动,说它找不到模块。
因此:
- 为什么GCF不能像其他工具一样使用捆绑的依赖关系(例如GitHub Actions(
- 使用私有NPM模块部署GCF的最佳实践是什么
最好的方法是在代码中包含一个名为的文件。npmrc,在您的npm帐户中可以生成一个具有某些权限的访问令牌,该令牌在我上面提到的文件中配置,这样在进行部署时,命令npm install可以下载专用包。
Cloud Functions刚刚发布了对私有依赖项和Node.js运行时的支持。
这允许访问私有包,而无需将.nomrc凭据传递给云函数。