

AWS App Runner は、2026 年 4 月 30 日以降、新規のお客様に公開されなくなります。App Runner を使用する場合は、その日付より前にサインアップします。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[AWS App Runner  可用性の変更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)」を参照してください。

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

# Go プラットフォームを使用する
<a name="service-source-code-go1"></a>

**重要**  
App Runner は、2025 年 **12 月 1 日に Go 1.18** のサポートを終了します。推奨事項と詳細については、「」を参照してください[マネージドランタイムバージョンのサポート終了](service-source-code.md#service-source-code.managed-platforms.eos)。

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

 App Runner コンソールまたは [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) API オペレーションを使用してサービス[を作成する](manage-create.md)ときに、App Runner サービスのランタイムを指定します。ソースコードの一部としてランタイムを指定することもできます。コードリポジトリに含める [App Runner 設定ファイル](config-file.md)で `runtime`キーワードを使用します。マネージドランタイムの命名規則は *<language-name><major-version>* です。

有効な Go ランタイム名とバージョンについては、「」を参照してください[Go ランタイムリリース情報](service-source-code-go-releases.md)。

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

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

例: `1.18.7`

次の例は、バージョンロックを示しています。
+ `1.18` – メジャーバージョンとマイナーバージョンをロックします。App Runner はパッチバージョンのみを更新します。
+ `1.18.7` – 特定のパッチバージョンにロックします。App Runner はランタイムバージョンを更新しません。

**Topics**
+ [Go ランタイム設定](#service-source-code-go1.config)
+ [Go ランタイムの例](#service-source-code-go1.examples)
+ [Go ランタイムリリース情報](service-source-code-go-releases.md)

## Go ランタイム設定
<a name="service-source-code-go1.config"></a>

マネージドランタイムを選択する場合は、少なくとも コマンドを構築して実行するように設定する必要があります。App Runner サービス[を作成](manage-create.md)または[更新](manage-configure.md)するときに設定します。これを行うには、次のいずれかの方法を使用します。
+ **App Runner コンソールの使用** – 作成プロセスまたは設定タブの**ビルドの設定**セクションでコマンドを指定します。
+ **App Runner API の使用** – [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) または [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) API オペレーションを呼び出します。[CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html) データ型の `BuildCommand`および `StartCommand`メンバーを使用してコマンドを指定します。
+ **[設定ファイル](config-file.md)の使用** – 最大 3 つのビルドフェーズで 1 つ以上のビルドコマンドと、アプリケーションを起動する 1 つの実行コマンドを指定します。追加のオプションの設定があります。

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

## Go ランタイムの例
<a name="service-source-code-go1.examples"></a>

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

### 最小 Go 設定ファイル
<a name="service-source-code-go1.examples.minimal"></a>

この例では、Go マネージドランタイムで使用できる最小限の設定ファイルを示しています。App Runner が最小限の設定ファイルで行う前提については、「」を参照してください[設定ファイルの例](config-file-examples.md#config-file-examples.managed)。

**Example apprunner.yaml**  

```
version: 1.0
runtime: go1
build:
  commands:
    build:
      - go build main.go
run:
  command: ./main
```

### 拡張 Go 設定ファイル
<a name="service-source-code-go1.examples.extended"></a>

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

**注記**  
これらの例で使用されるランタイムバージョンは *1.18.7* です。使用するバージョンに置き換えることができます。サポートされている最新の Go ランタイムバージョンについては、「」を参照してください[Go ランタイムリリース情報](service-source-code-go-releases.md)。

**Example 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 アプリケーションソースを完了する
<a name="service-source-code-go1.examples.end2end"></a>

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

**Example 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)
}
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: go1
build:
  commands:
    build:
      - go build main.go
run:
  command: ./main
  network:
    port: 3000
    env: APP_PORT
```