![](/img/trans.png)
[英]Google Cloud Functions 2 Terraform fails to deploy (error waiting for creating function, container healthcheck failed)
[英]Local deploy of Google cloud function fails with "javap -cp: Class not found"
使用 STS 我的云 function 使用以下命令在本地运行良好:
mvn function:run -Drun.functionTarget=functions.Gcpfunc
但是,在进行本地源代码或预打包的 Lite JAR 部署时,GCP 上的构建日志在以下阶段显示错误:
"builder": Running "javap -classpath sts2gcphttpfunc-0.0.1-SNAPSHOT.jar functions.Gcpfunc"
"builder": Error: class not found: functions.Gcpfunc.
但是,如果我直接在 GCP 上创建一个 function 并部署它,上面的行会在日志中显示成功。
My System specs: Java 8, Maven 3.6.3, Windows 8.1 附件:pom.xml的截图,“Source”和“JAR”部署的构建日志错误
源部署命令:
gcloud functions deploy Gcpfunction3 --region=us-east1 --entry-point=functions.Gcpfunc --runtime=java11 --trigger-http --allow-unauthenticated
Lite JAR 部署命令:
gcloud functions deploy Gcpfunction3 --region=us-east1 --entry-point=functions.Gcpfunc --runtime=java11 --trigger-http --source=target/deployment --allow-unauthenticated
当您查看来自本地测试的 google 文档语法的示例时:
mvn function:run -Drun.functionTarget=your.package.yourFunction
但是在文档 sytax 的gcloud deploy 命令示例中是:
gcloud functions deploy NAME --entry-point NAME --runtime RUNTIME TRIGGER [FLAGS...]
所以请注意gcloud
命令中的--entry-point
应该包含 class 名称,而在mvn function:run
命令中它包含 package。我认为这是主要问题,所以验证这个值。 您可以在此处找到有关如何使用它的确切信息。
还有一个,老实说不确定是否重要,是您在 maven 中使用 java 8,而在 GCF 中您只能使用 java 11,实际上您在gcloud
命令中使用它。
这已经解决。 必须从pom.xml中删除Spring-boot-maven-plugin ,这样 Class 文件就不会在Boot-inf文件夹中创建
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.