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
Legen Sie es auf Github appenginetest
OS Windows10 pro Java Java SE 1.8.0_121 Gradle 3.4.1 Eclipse Pleiades All in One 4.6.3.v20170323
Das Erstellen eines Kontos für die Google Cloud Platform entfällt hier.
Offizielles Dokument ist leicht zu verstehen und wird daher weggelassen
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 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.
Ich werde es mit Eclipse schaffen
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.
Öffnen Sie build.gradle und nehmen Sie verschiedene Einstellungen vor
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 ...
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
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.
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.
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"]
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 *
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 ** 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
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
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.
Dies ist das Minimum Als nächstes ist DB verwandt, aber ich werde es separat geben
Recommended Posts