Я пытаюсь развернуть загрузочное приложение Spring в Google App Engine, в котором отображаются некоторые конечные точки покоя, а также храню и получаю данные из Google Postgres db. Приложение также имеет страницу html и соответствующие файлы js и css. Это то, что я сделал для этого.
- Я создал проект в Google Cloud Console.
- Я создал Postgres экземпляр в Google Cloud SQL.
- Я включил API для SQL.
- Я создал Google Engine Engine для Java 8
Моё приложение весенней загрузки может подключаться (в моем локальном окружении) к Google Postgres с помощью строки подключения в приложении. свойства, как показано ниже:
spring.datasource.url=jdbc:postgresql:///<dbname>?cloudSqlInstance=<connectino string>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=<db username>&password=<db password>
Теперь в моем maven есть некоторые зависимости для указания c на его развертывание в GAE (Google App Engine):
appengine : развернуть плагин maven
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<deploy.projectId>projectId</deploy.projectId>
<deploy.version>projectId</deploy.version>
</configuration>
</plugin>
, за исключением tomcat и включая Jetty Server как
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
Postgres фабрика сокетов
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>postgres-socket-factory</artifactId>
<version>1.0.15</version>
</dependency>
Google Cloud Datastore
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
</dependency>
Это мой файл app.yml
runtime: java
env: flex
handlers:
- url: /.*
script: this field is required, but ignored
Приложение прекрасно работает в моем локальном окружении и может подключаться с помощью Google PostgreSQL, но когда я запускаю цель maven mvn package appengine:deploy
после выполнения некоторых шаги успешно, после шага произошел сбой: [INFO] GCLOUD: Updating service [default] (this may take several minutes)...
Ошибка заключается в следующем:
GCLOUD: ERROR: (gcloud.app.deploy) Operation [apps/<appid>/operations/<someid>] timed out. This operation may still be underway.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 33:11 min
[INFO] Finished at: 2020-04-15T17:31:06+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:appengine-maven-plugin:2.2.0:deploy (default-cli) on project crawler: App Engine application deployment failed: com.google.cloud.tools.appengine.operations.cloudsdk.process.ProcessHandlerExce
ption: com.google.cloud.tools.appengine.AppEngineException: Non zero exit: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Я искал n сайтов, но потратил на это один день и до сих пор не знаю, в чем проблема. Я также попробовал решения, подобные упомянутым здесь Развертывание облака Google - Тайм-аут операции и это
gcloud config set app/cloud_build_timeout 1200
Но не повезло. Буду очень признателен за любую помощь.