Verwendung der Java-Plattform - AWS App Runner

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung der Java-Plattform

Die AWS App Runner Java-Plattform bietet verwaltete Laufzeiten. Jede Laufzeit macht es einfach, Container mit Webanwendungen zu erstellen und auszuführen, die auf einer Java-Version basieren. Wenn Sie eine Java-Runtime verwenden, startet App Runner mit einem verwalteten Java-Runtime-Image. Dieses Image basiert auf dem Amazon Linux Docker-Image und enthält das Runtime-Paket für eine Version von Java und einige Tools. App Runner verwendet dieses verwaltete Runtime-Image als Basis-Image und fügt Ihren Anwendungscode hinzu, um ein Docker-Image zu erstellen. Anschließend wird dieses Image bereitgestellt, um Ihren Webservice in einem Container auszuführen.

Sie geben eine Laufzeit für Ihren App Runner-Dienst an, wenn Sie einen Dienst mithilfe der App Runner-Konsole oder des CreateServiceAPI-Vorgangs erstellen. Sie können auch eine Laufzeit als Teil Ihres Quellcodes angeben. Verwenden Sie das runtime Schlüsselwort in einer App Runner-Konfigurationsdatei, die Sie in Ihr Code-Repository aufnehmen. Die Benennungskonvention einer verwalteten Laufzeit lautet. <language-name><major-version>

Derzeit basieren alle unterstützten Java-Laufzeiten auf Amazon Corretto. Gültige Namen und Versionen der Java-Laufzeit finden Sie unter. Informationen zur Java-Runtime-Version

App Runner aktualisiert die Laufzeit für Ihren Dienst bei jeder Bereitstellung oder jedem Service-Update auf die neueste Version. Wenn Ihre Anwendung eine bestimmte Version einer verwalteten Laufzeit benötigt, können Sie diese mithilfe des runtime-version Schlüsselworts in der App Runner-Konfigurationsdatei angeben. Sie können sich auf eine beliebige Versionsebene beschränken, einschließlich einer Haupt- oder Nebenversion. App Runner aktualisiert die Laufzeit Ihres Dienstes nur auf niedrigerer Ebene.

Versionssyntax für Amazon Corretto-Laufzeiten:

Laufzeit Syntax Beispiel

corretto11

11.0[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]

11.0.13.08.1

corretto8

8[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]

8.312.07.1

Die folgenden Beispiele veranschaulichen das Sperren von Versionen:

  • 11.0.13— Sperrt die Open JDK-Update-Version. App Runner aktualisiert nur Open JDK- und Amazon Corretto-Builds auf niedrigerer Ebene.

  • 11.0.13.08.1— Auf eine bestimmte Version festlegen. App Runner aktualisiert Ihre Runtime-Version nicht.

Konfiguration der Java-Laufzeit

Wenn Sie sich für eine verwaltete Runtime entscheiden, müssen Sie mindestens auch Build- und Run-Befehle konfigurieren. Sie konfigurieren sie bei der Erstellung oder Aktualisierung Ihres App Runner-Dienstes. Sie können dies mit einer der folgenden Methoden tun:

  • Verwenden der App Runner-Konsole — Geben Sie die Befehle im Abschnitt Build konfigurieren des Erstellungsprozesses oder der Registerkarte Konfiguration an.

  • Verwenden der App Runner-API — Rufen Sie den UpdateServiceAPI-Vorgang CreateServiceoder auf. Geben Sie die Befehle mithilfe der StartCommand Elemente BuildCommand und des CodeConfigurationValuesDatentyps an.

  • Mithilfe einer Konfigurationsdatei — Geben Sie einen oder mehrere Build-Befehle in bis zu drei Build-Phasen sowie einen einzelnen Run-Befehl an, der zum Starten Ihrer Anwendung dient. Es gibt zusätzliche optionale Konfigurationseinstellungen.

Die Bereitstellung einer Konfigurationsdatei ist optional. Wenn Sie einen App Runner-Dienst mithilfe der Konsole oder der API erstellen, geben Sie an, ob App Runner Ihre Konfigurationseinstellungen direkt bei der Erstellung oder aus einer Konfigurationsdatei bezieht.

Beispiele für Java-Runtime

Die folgenden Beispiele zeigen App Runner-Konfigurationsdateien zum Erstellen und Ausführen eines Java-Dienstes. Das letzte Beispiel ist der Quellcode für eine vollständige Java-Anwendung, die Sie auf einem Corretto 11-Laufzeitdienst bereitstellen können.

Anmerkung

Die Runtime-Version, die in diesen Beispielen verwendet wird, ist 11.0.13.08.1. Sie können sie durch eine Version ersetzen, die Sie verwenden möchten. Die neueste unterstützte Java-Runtime-Version finden Sie unterInformationen zur Java-Runtime-Version.

Dieses Beispiel zeigt eine minimale Konfigurationsdatei, die Sie mit einer von Corretto 11 verwalteten Runtime verwenden können. Informationen zu den Annahmen, die App Runner mit einer minimalen Konfigurationsdatei trifft, finden Sie unter.

Beispiel apprunner.yaml
version: 1.0 runtime: corretto11 build: commands: build: - mvn clean package run: command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar .

Dieses Beispiel zeigt, wie Sie alle Konfigurationsschlüssel mit einer von Corretto 11 verwalteten Laufzeit verwenden können.

Anmerkung

Die Runtime-Version, die in diesen Beispielen verwendet wird, ist 11.0.13.08.1. Sie können sie durch eine Version ersetzen, die Sie verwenden möchten. Die neueste unterstützte Java-Runtime-Version finden Sie unterInformationen zur Java-Runtime-Version.

Beispiel apprunner.yaml
version: 1.0 runtime: corretto11 build: commands: pre-build: - yum install some-package - scripts/prebuild.sh build: - mvn clean package post-build: - mvn clean test env: - name: M2 value: "/usr/local/apache-maven/bin" - name: M2_HOME value: "/usr/local/apache-maven/bin" run: runtime-version: 11.0.13.08.1 command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar . network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

Dieses Beispiel zeigt den Quellcode für eine vollständige Java-Anwendung, die Sie auf einem Corretto 11-Laufzeitdienst bereitstellen können.

Beispiel src/main/java/com//.java HelloWorld HelloWorld
package com.HelloWorld; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorld { @RequestMapping("/") public String index(){ String s = "Hello World"; return s; } }
Beispiel src/main/java/com/ /Main.java HelloWorld
package com.HelloWorld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
Beispiel apprunner.yaml
version: 1.0 runtime: corretto11 build: commands: build: - mvn clean package run: command: java -Xms256m -jar target/HelloWorldJavaApp-1.0-SNAPSHOT.jar . network: port: 8080
Beispiel pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> </parent> <groupId>com.HelloWorld</groupId> <artifactId>HelloWorldJavaApp</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <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> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>11</release> </configuration> </plugin> </plugins> </build> </project>