Java プラットフォームの使用 - AWS App Runner

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Java プラットフォームの使用

AWS App Runner Java プラットフォームはマネージドランタイムを提供します。各ランタイムにより、Java バージョンに基づいてウェブアプリケーションを使用してコンテナを簡単に構築および実行できます。Java ランタイムを使用すると、App Runner はマネージド Java ランタイムイメージから開始します。このイメージは Amazon Linux Docker イメージに基づいており、Java のバージョンと一部のツールのランタイムパッケージが含まれています。App Runner は、このマネージドランタイムイメージをベースイメージとして使用し、アプリケーションコードを追加して Docker イメージを構築します。次に、このイメージをデプロイして、コンテナでウェブサービスを実行します。

App Runner コンソールまたは CreateService API オペレーションを使用してサービスを作成するときに、App Runner サービスのランタイムを指定します。ソースコードの一部としてランタイムを指定することもできます。コードリポジトリに含める App Runner 設定ファイルの runtimeキーワードを使用します。マネージドランタイムの命名規則は <language-name><major-version> です。

現時点では、サポートされているすべての Java ランタイムは Amazon Corretto に基づいています。有効な Java ランタイム名とバージョンについては、「」を参照してくださいJava ランタイムリリース情報

App Runner は、デプロイまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。アプリケーションで特定のバージョンのマネージドランタイムが必要な場合は、App Runner 設定ファイル runtime-versionキーワードを使用して指定できます。メジャーバージョンやマイナーバージョンなど、任意のレベルのバージョンにロックできます。App Runner は、サービスのランタイムに対して、下位レベルの更新のみを行います。

Amazon Corretto ランタイムのバージョン構文:

ランタイム [Syntax (構文)]

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

次の例は、バージョンロックを示しています。

  • 11.0.13 – Open JDK 更新バージョンをロックします。App Runner は Open JDK と Amazon Corretto の下位レベルのビルドのみを更新します。

  • 11.0.13.08.1 – 特定のバージョンにロックします。App Runner はランタイムバージョンを更新しません。

Java ランタイム設定

マネージドランタイムを選択する場合は、少なくとも コマンドを構築して実行するように設定する必要があります。App Runner サービスを作成または更新するときに設定します。これは、次のいずれかの方法を使用して実行できます。

  • App Runner コンソールの使用 – 作成プロセスまたは設定タブのビルドの設定セクションでコマンドを指定します。

  • App Runner API の使用CreateServiceまたは UpdateService API オペレーションを呼び出します。CodeConfigurationValues データ型の BuildCommandおよび StartCommandメンバーを使用してコマンドを指定します。

  • 設定ファイルの使用 – 最大 3 つのビルドフェーズで 1 つ以上のビルドコマンドと、アプリケーションを起動する 1 つの実行コマンドを指定します。追加のオプション設定があります。

設定ファイルの提供はオプションです。コンソールまたは API を使用して App Runner サービスを作成する場合、App Runner が作成時に設定を直接取得するか、設定ファイルから取得するかを指定します。

Java ランタイムの例

次の例は、Java サービスを構築および実行するための App Runner 設定ファイルを示しています。最後の例は、Corretto 11 ランタイムサービスにデプロイできる完全な Java アプリケーションのソースコードです。

注記

これらの例で使用されるランタイムバージョンは 11.0.13.08.1 です。使用するバージョンに置き換えることができます。サポートされている最新の Java ランタイムバージョンについては、「」を参照してくださいJava ランタイムリリース情報

この例では、Corretto 11 マネージドランタイムで使用できる最小限の設定ファイルを示しています。App Runner が最小限の設定ファイルで行う前提条件については、「」を参照してください。

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

この例では、Corretto 11 マネージドランタイムですべての設定キーを使用する方法を示します。

注記

これらの例で使用されるランタイムバージョンは 11.0.13.08.1 です。使用するバージョンに置き換えることができます。サポートされている最新の Java ランタイムバージョンについては、「」を参照してくださいJava ランタイムリリース情報

例 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"

この例では、Corretto 11 ランタイムサービスにデプロイできる完全な Java アプリケーションのソースコードを示します。

例 src/main/java/com/HelloWorldHelloWorld.java
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; } }
例 src/main/java/com/HelloWorld/Main.java
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); } }
例 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
例 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>