[GO] Bis Sie ein SpringBoot-Projekt in Gradle mit App Engine Flexible bereitstellen

Die flexible Umgebung von Google App Engine wurde für eine lange Zeit veröffentlicht, aber es ist ein Memo, da ich kein Beispiel finden konnte, das das Spring-Boot-Projekt mit Gradle bereitstellt und ausführt. Die offizielle Dokumentation ist ** maven ** zentriert

Quelle vorerst

Legen Sie es auf Github appenginetest

Umgebung

OS Windows10 pro Java Java SE 1.8.0_121 Gradle 3.4.1 Eclipse Pleiades All in One 4.6.3.v20170323

Vorbereitung

Das Erstellen eines Kontos für die Google Cloud Platform entfällt hier.

Installieren Sie das Google Cloud SDK

Offizielles Dokument ist leicht zu verstehen und wird daher weggelassen

Installieren des App Engine SDK für Java

Führen Sie nach Abschluss der SDK-Initialisierung den folgenden Befehl aus, um das SDK für Java zu installieren

gcloud components install app-engine-java

Erstellen eines Testprojekts mit GCP

Erstellen Sie ein neues Projekt auf der Google Cloud Platform Dieses Mal werde ich es mit dem Namen ** Spring Boot Test ** schaffen Notieren Sie sich die Projekt-ID, da Sie sie später verwenden werden.

Spring-Boot-Projektvorbereitung

Ich werde es mit Eclipse schaffen

Projekterstellung

Wählen Sie Gradle-Projekt unter Datei-> Neu-> Andere Der Projektname lautet ** appenginetest **

Geben Sie im nächsten Bildschirm den Gradle an, den Sie installiert haben War es möglich, die Standardeinstellung abhängig von den Eclipse-Einstellungen beizubehalten?

Überprüfen Sie die Konfiguration auf dem nächsten Bildschirm. Wenn keine Warnung angezeigt wird, ist sie abgeschlossen Ich erhalte eine Warnung, wenn die Gradle-Einstellungen nicht korrekt sind

Nach Abschluss werden Library.java und LibraryTest.java unter src erstellt, aber sie werden nicht verwendet. Löschen Sie sie daher.

Gradle-Einstellungen

Öffnen Sie build.gradle und nehmen Sie verschiedene Einstellungen vor

App Engine Plug-In

Festlegen während Siehe in diesem Bereich Offiziell verwende ich ein Plug-In namens ** gretty **, aber dieses Mal werde ich Spring-Boot verwenden, also werde ich es entfernen.

Nun, ich wusste einfach nicht, wie ich es benutzen soll ...

build.gradle Beispiel

Und hier ist die Einstellung von Spring-Boot

build.gradle


buildscript {
	repositories {
		jcenter()
		mavenCentral()
	}
	dependencies {
		classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.1.1'
		classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.+'
	}
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'com.google.cloud.tools.appengine'
apply plugin: 'eclipse'

def defaultEncoding = 'UTF-8'
[compileJava, compileTestJava]*.options*.encoding = defaultEncoding

def jdkVersion = 1.8
sourceCompatibility = jdkVersion
targetCompatibility = jdkVersion

jar {
	baseName = 'appenginetest'
	version = '1.0-SNAPSHOT'
}

repositories {
	maven {
		url 'https://maven-central.storage.googleapis.com'
	}
    jcenter()
	mavenCentral()
}

dependencies {
	compile 'javax.servlet:javax.servlet-api:3.1.0'
	compile 'com.google.appengine:appengine:+'

	compile('org.springframework.boot:spring-boot-starter-web:1.5.+'){
		exclude module: 'spring-boot-starter-tomcat'
	}

	compile group: 'org.springframework.boot', name: 'spring-boot-starter-jetty', version: '1.5.+'
}

Im Moment stelle ich es einfach bereit und zeige etwas an, also ist es so

Quelle

Als nächstes die von Spring-Boot verwendete Java-Datei

Application.java


package appenginetest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

	@RequestMapping(value = "/")
	String hello() {
		return "Hello World!";
	}
}

Sie können nur "Hallo Welt!" Sehen, da Sie nur sehen müssen, dass es bereitgestellt werden kann und funktioniert.

Einstellungen für AppEngine

Schreiben Sie als Nächstes die Konfigurationsdatei für AppEngine Der Speicherort ist * src / main / appengine *

app.yaml


runtime: custom
env: flex

runtime_config:
   jdk: openjdk8

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 1

Wenn Sie Standard-Java8 + -Steg verwenden, geben Sie * runtime * als * java * an. Diesmal handelt es sich jedoch um eine benutzerdefinierte Umgebung von * Spring-Boot + jetty *. Legen Sie daher * custom * fest. *omatic_scaling * ist die Anzahl der zu startenden Instanzen. Wenn dies nicht angegeben ist, werden mindestens 2 gestartet. Geben Sie also 1 an

Es gibt viele andere, aber siehe Offiziell.

Dockerfile-Einstellungen

Schreiben Sie Einstellungen für Docker, die auf AppEngine ausgeführt werden Der Speicherort ist * src / main / Docker *

Dockerfile


FROM gcr.io/google_appengine/openjdk8
VOLUME /tmp
ADD appenginetest-1.0-SNAPSHOT.jar app.jar
CMD [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Versuche zu bauen

Gehen Sie zum Stammverzeichnis des mit der Eingabeaufforderung erstellten Projekts und führen Sie den folgenden Befehl aus

gradle appengineStage

Wenn die Einstellungen korrekt sind, beenden Sie mit * BUILD SUCCESSFUL *

In App Engine bereitstellen

Projekt Einstellungen

Nehmen Sie Einstellungen für dieses Projekt vor Erstellen Sie eine Einstellung mit dem folgenden Befehl

gcloud config configurations create [NAME]

Geben Sie [NAME] einen beschreibenden Namen

Aktivieren Sie nach der Einstellung die Einstellung

gcloud config configurations activate [NAME]

Aktivieren Sie die Einstellungen und verknüpfen Sie das mit Google Cloud Platform erstellte Projekt Bitte beachten Sie hier, bitte verwenden Sie den Projektnamen ** Projekt-ID ** 2017-04-02_19h00_46.png Dies ist der rote Teil hier. Wenn Sie den Projektnamen falsch angeben, wird kein Fehler angezeigt, der jedoch bei der endgültigen Bereitstellung fehlschlägt

gcloud config set project [PROJECT]

Festlegen der Projektstandardzone

gcloud config set compute/zone us-east1-b

Der folgende Befehl zum Anzeigen der Einstellungen

gcloud config configurations describe [NAME]

Sie können die gültigen Einstellungen mit dem folgenden Befehl überprüfen

gcloud config list

Melden Sie sich an, sobald Sie die gültigen Einstellungen vorgenommen haben

gcloud auth login

Ein Browser wird geöffnet und eine Liste der anzumeldenden Konten wird angezeigt. Wählen Sie daher ein Konto aus, das sich mit Google Cloud Platform anmelden kann. Auf dem nächsten Bildschirm fordert das Google Cloud SDK die Erlaubnis an. Lassen Sie es also zu.

Ich bin mir ein wenig unsicher über das Verfahren hier Ich könnte zusätzliche Befehle werfen ...

Die offizielle Dokumentation ist hier

In App Engine bereitstellen

Wenn Sie die gültigen Einstellungen bestätigen können, wird sie endgültig bereitgestellt Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus

gradle appengineDeploy

Warten Sie eine Weile, nachdem Sie den Befehl ausgeführt haben Selbst dieses kleine Beispielprojekt dauert ungefähr 5 Minuten

Schau mal

Wenn der Bereitstellungsbefehl zurückkommt, befindet sich in der oberen rechten Ecke des App Engine-Dashboards ein Link. Überprüfen Sie ihn daher von dort aus. Wenn "Hallo Welt!" Angezeigt wird, ist dies erfolgreich.

damit

Dies ist das Minimum Als nächstes ist DB verwandt, aber ich werde es separat geben

Recommended Posts

Bis Sie ein SpringBoot-Projekt in Gradle mit App Engine Flexible bereitstellen
Bis Sie eine neue App in Django erstellen
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
Bis die mit Flasche erstellte Webanwendung auf Heroku veröffentlicht (bereitgestellt) wird
Stellen Sie Python 3.6 / Django / Postgres-Webanwendungen in Azure bereit
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Bis Sie Daten in eine Tabelle in Python einfügen
Stellen Sie die mit PTVS erstellte Django-App in Azure bereit
Haben Sie Empfehlungen für ein Kommentarbuch zur Entwicklung von GoogleAppEngine / Python?
Lösung, wenn Django Projekt starten ist unter Windows nicht möglich
(Fehler) Stellen Sie eine mit Flask mit Heroku erstellte Web-App bereit
Stellen Sie Go-Apps mit GitHub-Aktionen für Google App Engine bereit
Stellen Sie die Masonite-App auf Heroku 2020 bereit
Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]
Verwenden der Eigenschaftendatei mit Flexible Environment Java 8 von Google App Engine