Java 弹簧靴&x2B;gcloud+&引用;502“坏网关”;

Java 弹簧靴&x2B;gcloud+&引用;502“坏网关”;,java,spring-boot,google-cloud-platform,gcloud,Java,Spring Boot,Google Cloud Platform,Gcloud,我正在尝试在gcloud上部署此项目: 本地工作正常,但在gcloud上我总是收到502错误 mvn clean package appengine:部署命令运行时不会出现问题 日志(gcloud应用程序日志尾部)中没有错误,只有信息和调试消息。 一个星期以来,我一直在寻找一个解决方案,并尝试在互联网上找到的许多建议,我遵循谷歌,dzone等教程,没有运气 谢谢你的帮助 编辑(代表约翰·汉利): 广告1:我的代码超过165个java文件,那么如何显示呢 广告2:app.yaml: runtime

我正在尝试在gcloud上部署此项目: 本地工作正常,但在gcloud上我总是收到502错误

mvn clean package appengine:部署命令运行时不会出现问题

日志(gcloud应用程序日志尾部)中没有错误,只有信息和调试消息。 一个星期以来,我一直在寻找一个解决方案,并尝试在互联网上找到的许多建议,我遵循谷歌,dzone等教程,没有运气

谢谢你的帮助

编辑(代表约翰·汉利): 广告1:我的代码超过165个java文件,那么如何显示呢

广告2:app.yaml:

runtime: java
env: flex
instance_class: F2
runtime_config:
  jdk: openjdk8
#env_variables:
#  SPRING_PROFILES_ACTIVE: "gcp"
handlers:
  - url: /.*
    script: this field is required, but ignored
readiness_check:
  check_interval_sec: 15
  timeout_sec: 14
  failure_threshold: 2
  success_threshold: 2
  app_start_timeout_sec: 1200
广告3:正如我所说,日志中没有错误,只有spring信息和调试消息

application.properties文件:

debug=true
spring.application.name=polish-api-psd2
springfox.documentation.swagger.v2.path=/api-docs
server.port=${port:8080}
spring.jackson.date-format=pl.itger.PolishAPI.RFC3339DateFormat
#Mongo Config
spring.data.mongodb.database=PolishAPI
spring.data.mongodb.uri=mongodb+srv://polishapi-user:SECRET CLUSTER DATA
spring.data.mongodb.auto-index-creation=true
log4j.category.org.springframework.data.mongodb=DEBUG
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %40.40c:%4L - %m%n
logging.level.pl.itger=DEBUG
logging.level.root=WARN
应用程序引擎防火墙规则:

Priority 
1000
Action on match
Allow
IP range 
0.0.0.0/0
当我在Google cloud Shell控制台中运行“
**mvn clean spring boot:run-p cloud gcp**
”时,应用程序启动良好,在Web预览中,应用程序启动良好,具有预定义的招摇过市ui页面:

https://8080-dot-10127310-dot-devshell.appspot.com/
显示所有模型和api。 当我在浏览器中调用“
https://8080-dot-10127310-dot-devshell.appspot.com/api-docs
“也很有效。使用curl调用该url上的任何rest服务将导致“访问被禁止”

但是,在
mvn-DskipTests包出现之后:部署-p云gcp
什么都不起作用,只有
502坏网关

[INFO] GCLOUD: Setting traffic split for service [default]...
[INFO] GCLOUD: ..............................................................done.
[INFO] GCLOUD: Deployed service [default] to [https://polish-api-psd2.appspot.com]
[INFO] GCLOUD:
[INFO] GCLOUD: You can stream logs from the command line by running:
[INFO] GCLOUD:   $ gcloud app logs tail -s default
[INFO] GCLOUD:
[INFO] GCLOUD: To view your application in the web browser run:
[INFO] GCLOUD:   $ gcloud app browse
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  09:15 min
[INFO] Finished at: 2019-12-12T15:49:39+01:00
[INFO] ------------------------------------------------------------------------
p_zerynger@cloudshell:~/PolishAPI_sample/server (polish-api-psd2)$
完整日志(非常短,与“mvn spring boot:run-p cloud gcp”之后的日志不同,我不知道为什么):

+++++++++ 在云http负载平衡器日志中,我发现:

jsonPayload: {
  @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"   
  statusDetails: "failed_to_connect_to_backend"   
 }
太疯狂了。。。现在超时:


每个部署都有一个版本号分配给它。 验证该版本号是否出现在“应用程序引擎”下的“版本”部分 你的GCP项目。如果出现版本号,StackDriver中将提供日志,详细说明发生的任何可能的部署错误

如果没有显示版本号,则重新部署项目,这次启用详细标志以生成部署日志。[1]

最后,尝试部署一个最小的“Hello World”应用程序,看看如果问题与代码无关,它是否有效


[1] 每个部署都有一个版本号分配给它。 验证该版本号是否出现在“应用程序引擎”下的“版本”部分 你的GCP项目。如果出现版本号,StackDriver中将提供日志,详细说明发生的任何可能的部署错误

如果没有显示版本号,则重新部署项目,这次启用详细标志以生成部署日志。[1]

最后,尝试部署一个最小的“Hello World”应用程序,看看如果问题与代码无关,它是否有效

[1]

添加

resources:
  memory_gb: 4
在yaml文件中。

添加

resources:
  memory_gb: 4

在yaml文件中。

1)在问题中显示代码。2) 对于App Engine,包括App.yaml。3) 显示准确的错误消息。4) 你正在使用哪个应用程序引擎?5) 您的问题可能是您的应用程序未在正确的端口上侦听。6) 我们不会去一个链接,你必须包括你的问题所需的一切。链接中断或失效,您可能犯了错误,等等。当您移动到云时,您需要打开一些端口以进行交互。你做到了吗?默认情况下,所有端口都被阻止。在本地和AppEngine中测试的URL是什么?(复制完整URL,包括HTTPS,但隐藏您的项目名称)您在AppEngine上有自定义域吗?您的机器和AppEngine之间是否有代理服务器?可能我以错误的方式打开了端口-如何操作?我没有自定义域。没有代理服务器。谢谢。1)在问题中显示您的代码。2) 对于App Engine,包括App.yaml。3) 显示准确的错误消息。4) 你正在使用哪个应用程序引擎?5) 您的问题可能是您的应用程序未在正确的端口上侦听。6) 我们不会去一个链接,你必须包括你的问题所需的一切。链接中断或失效,您可能犯了错误,等等。当您移动到云时,您需要打开一些端口以进行交互。你做到了吗?默认情况下,所有端口都被阻止。在本地和AppEngine中测试的URL是什么?(复制完整URL,包括HTTPS,但隐藏您的项目名称)您在AppEngine上有自定义域吗?您的机器和AppEngine之间是否有代理服务器?可能我以错误的方式打开了端口-如何操作?我没有自定义域。没有代理服务器。谢谢。版本状态流量分配实例运行时环境大小部署诊断配置
1 100%6 java Flexible 0 B 12.12.2019,晚上8:11:08由p提供。zerynger@gmail.com
通过消除过程,我们现在需要确定问题是否与您的代码、配置或基础架构有关。您是否可以使用上一个项目中相同的app.yaml文件部署“Hello World”应用程序,并查看会发生什么情况?springboot最小HelloWorld也不起作用-超时:……失败。[INFO]GCLOUD:错误:(GCLOUD.app.deploy)错误响应:[4]在等待应用程序基础结构正常运行时超时。[INFO]----------[INFO]生成失败[INFO]------------------------------------------------------------[INFO]总时间:30:19分钟[INFO]完成时间:2019-12-13T19:27:39+01:00对于此测试,我删除了gcloud上的所有项目并创建了一个新项目。在intellij上运行良好。免费…在同一HelloWorld上再次尝试,完全相同的来源:GCLOUD:DONE[INFO]GCLOUD:--------------------------------------------------------------------------------------[INFO]GCLOUD:[INFO]GCLOUD:ERROR:(GCLOUD.app.deploy)无效参数:超出了以下配额:IN_USE_地址(配额:8,已使用:8+需要:1). [信息]-------------------------------------------------------------[信息]生成失败[信息]--------------------------------------------------------------------------------------[信息]
resources:
  memory_gb: 4