1

我正在尝试使用java11运行时将 Helidon MP 项目部署到 Google Cloud App Engine,但无法app.yaml正确定义。

  1. 尝试使用以下命令jar直接部署文件。该应用程序已部署,但视图中的页面为空。app.yaml$ gcloud app deploy cord.jar

    runtime: java11
    entrypoint: 'java -jar cord.jar'    
    
  2. 尝试修改代码库添加appengine\app.yaml<project>\src\main\appengine\app.yaml以下内容并使用命令$ gcloud app deploy pom.xml

    runtime: java11
    instance_class: F1
    

在所有情况下,应用程序都已部署,但页面加载为空。

在此处输入图像描述

他们在 github 上有示例,但不幸的是 Helidon 还没有。

4

3 回答 3

2

我已经为 Helidon 提供了一个示例

有几点需要注意:

  1. 确保您的应用程序遵循PORT环境变量,并将其服务器配置为使用该端口。
  2. 确保您app.yaml与 jar 位于同一目录中并定义自定义入口点。例如:
runtime: java11
entrypoint: java -Xmx64m -jar helidon-quickstart-se.jar

Helidon 使用“薄”罐子,App Engine 似乎可以处理此 AOK,如下所述:https ://cloud.google.com/appengine/docs/standard/java11/runtime#application_startup

于 2020-05-19T23:42:07.640 回答
1

有一个关于此的github 线程,到目前为止,当前的解决方法是添加一个 app.yaml 文件,类似于Spring BootVert.x等框架的文件

我遵循了其他响应的 github 示例所在的教程,它对我有用。

首先,我克隆了存储库并使用了快速入门 mp:

git clone https://github.com/barchetta/helidon-google-app-engine-example/
cd helidon-google-app-engine-example/helidon-quickstart-mp

然后我构建并运行应用程序并检查端口是否响应。

mvn package
export PORT=8888
java -jar target/helidon-quickstart-mp.jar

在所有这些前面的步骤之后,我能够在 localhost 中看到应用程序的结果。

为了部署,我创建了名为“helidon-mp-app.yaml”的 app.yaml 文件,并在其中编写了以下配置:

runtime: java11
entrypoint: java -Xmx64m -jar helidon-quickstart-mp.jar

并将其复制到 target/ 目录:

cp helidon-mp-app.yaml target/

作为最后一个配置文件,文件“.gcloudingonre”也需要移动到target/

# Exclude everything. Then include just the app jar and runtime
# dependencies in libs/
*
*/
*/**
!helidon-quickstart-mp.jar
!libs/
!libs/**

然后当所有的配置文件都准备好后,我执行了

gcloud app deploy target/helidon-mp-app.yaml
gcloud app browse

在 URL 中附加“/greet”,我们可以看到结果:

{“消息”:“你好世界!”}

于 2020-05-19T11:43:24.497 回答
1

作为我的问题的答案..页面未加载的问题是因为9090我们使用的端口(在src/main/resources/META-INF/microprofile-config.properties文件中定义)。在我将其更改为默认值后8080,我的应用程序工作了。

microprofile-config.properties

# Application properties. This is the default greeting
app.greeting=Hello

# Microprofile server properties
server.port=8080
server.host=0.0.0.0

参考:

  1. Google App Engine 的 Helidon MP 示例
于 2020-05-20T23:40:12.673 回答