Go プラットフォームを使用する - AWS App Runner

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

Go プラットフォームを使用する

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

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

有効な Go ランタイム名とバージョンについては、「」を参照してくださいGo ランタイムリリース情報

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

Go ランタイムのバージョン構文: major[.minor[.patch]]

例:1.18.7

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

  • 1.18 – メジャーバージョンとマイナーバージョンをロックします。App Runner はパッチバージョンのみを更新します。

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

Go ランタイム設定

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

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

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

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

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

Go ランタイムの例

次の例は、Go サービスを構築して実行するための App Runner 設定ファイルを示しています。

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

例 apprunner.yaml
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main

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

注記

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

例 apprunner.yaml
version: 1.0 runtime: go1 build: commands: pre-build: - scripts/prebuild.sh build: - go build main.go post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 1.18.7 command: ./main network: port: 3000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

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

例 main.go
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "<h1>Welcome to App Runner</h1>") }) fmt.Println("Starting the server on :3000...") http.ListenAndServe(":3000", nil) }
例 apprunner.yaml
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main network: port: 3000 env: APP_PORT