Test-System für eine Spring Boot Applikation auf Google App Engine einrichten

von Peter Soth
Quick Tipp

In einem aktuellen Projekt, in dem wir mit unserer individuellen Software-Lösung den Produktions-Prozess unseres Kunden unterstützen, ging es darum, eine Test- bzw. Staging-Umgebung für eine Spring Boot Applikation innerhalb der Google App Engine aufzusetzen.

Wir haben hierzu folgende Schritte durchgeführt:

  • Anlegen einer eigenständigen Datenbank in Google Cloud SQL for MySQL
  • Anlegen einer appengine-web.xml speziell für die Staging Umgebung
    • Über das Attribut <service>...</service> wird der Name des neuen Service festgelegt
    • Über das Property spring.profiles.active wird das Spring-Boot-Profil definiert -> über dieses Profil wird die Test- bzw. Staging Datenbank konfiguriert
  • Erstellen eines Windows-10 Batches der die Dateien umbenennt, den Staging-Build ausführt und dann wieder die Dateien für das produktive System zurückholt.

Das Staging-System ist dann über eine eigenständige URL aufrufbar, die sich folgendermaßen zusammensetzt: https://[service-name]-dot-[projekt-name].ey.r.appspot.com/

 

appengine-web.xml

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <version>1</version>
    <service>proj-dev-test</service>
    <threadsafe>true</threadsafe>
    <runtime>java8</runtime>
    <instance-class>B4</instance-class>
    <manual-scaling>
        <instances>1</instances>
    </manual-scaling>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/>
        <property name="file.encoding" value="UTF-8" />
        <property name="DEFAULT_ENCODING" value="UTF-8" />
        <property name="appengine.file.encoding" value="UTF-8"/>
        <property name="spring.profiles.active" value="gcp--dev" />
    </system-properties>
</appengine-web-app>

application-gcp--dev.properties

spring.datasource.url = jdbc:mysql://google/dev_db?cloudSqlInstance=exensio&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false

spring.datasource.username=xxxx
spring.datasource.password=xxxx
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=validate

# Logging JSON payload in REST api calls
logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
# Get HTTP request method like HTTP GET and returned HTTP Code
logging.level.org.springframework.web.servlet.DispatcherServlet=TRACE

# Remove stacktrace form JSON response
server.error.include-stacktrace=never

deploy_gcp_dev.bat

move src\main\webapp\WEB-INF\appengine-web.xml src\main\webapp\WEB-INF\appengine-web.xml.bak
move ..\vuejs\src\assets\logo.png ..\vuejs\src\assets\logo.png.bak
copy src\main\resources\assets\google-app-engine-dev\appengine-web.xml src\main\webapp\WEB-INF
copy src\main\resources\assets\google-app-engine-dev\logo.png ..\vuejs\src\assets
call gradlew clean buildVueJs appengineDeploy
move src\main\webapp\WEB-INF\appengine-web.xml.bak src\main\webapp\WEB-INF\appengine-web.xml
move ..\vuejs\src\assets\logo.png.bak ..\vuejs\src\assets\logo.png

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert
Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close