我有一个java应用程序要部署为云功能。应用程序被打包到一个jar文件中。部署需要通过Terraform完成。
根据文档,可以使用--source
参数直接从jar文件部署该函数:
gcloud functions deploy jar-example
--entry-point=Example
--runtime=java11
--trigger-http
--source=target/deployment
但是,Terraform cloudfunctions_function似乎不支持它,并且需要一个bucket来复制jar。
如果没有,可以通过Terraform部署Cloud Function吗?桶吗?
我认为没有bucket也可以部署,但是源代码要放在云存储库中:Terraform——源存储库块。我个人认为这样做的主要原因是——必须将(已部署函数的)源代码保存在云中(以处理异常、错误、调试等)。因此,无论是bucket还是git repository。
你确定不要用桶吗?这可能是一个非常干净和有效的方式。您可能不需要将函数部署到的同一个项目中的bucket(如果这对您很重要的话)。前一段时间在这里描述了一个例子:如何在CI/CD中部署Google Cloud Functions而不重新部署未更改的Cloud Functions。另外,我想最近Medium上也有一些关于这种部署的文章(类似的例子)…