

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

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

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

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

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

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

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

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

例: `22.14.0`

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

**Topics**
+ [Node.js ランタイム設定](#service-source-code-nodejs.config)
+ [特定のランタイムバージョンのコールアウト](#service-source-code-nodejs.callouts)
+ [Node.js ランタイムの例](#service-source-code-nodejs.examples)
+ [Node.js ランタイムリリース情報](service-source-code-nodejs-releases.md)

## Node.js ランタイム設定
<a name="service-source-code-nodejs.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 が作成時に設定を直接取得するか、設定ファイルから取得するかを指定します。

Node.js ランタイムでは、ソースリポジトリのルート`package.json`にある という名前の JSON ファイルを使用してビルドとランタイムを設定することもできます。このファイルを使用して、Node.js エンジンのバージョン、依存関係パッケージ、およびさまざまなコマンド (コマンドラインアプリケーション) を設定できます。npm や yarn などのパッケージマネージャーは、このファイルをコマンドの入力として解釈します。

例えば、次のようになります。
+ **npm install** は、 の `dependencies`および `devDependencies`ノードで定義されたパッケージをインストールします`package.json`。
+ **npm start** または は、 の`scripts/start`ノードで定義されたコマンド**npm run start**を実行します`package.json`。

次は、`package.json` ファイルの例です。

### package.json
<a name="service-source-code-nodejs.config.package-json-example"></a>

```
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "22.14.0"
  },
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "cool-ascii-faces": "^1.3.4",
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "got": "^11.3.0",
    "tape": "^4.7.0"
  }
}
```

の詳細については`package.json`、*npm Docs* ウェブサイト[の package.json ファイル](https://docs.npmjs.com/creating-a-package-json-file)の作成を参照してください。

**ヒント**  
`package.json` ファイルが**start**コマンドを定義する場合は、次の例に示すように、App Runner 設定ファイルの**run**コマンドとして使用できます。  

**Example**  
package.json  

  ```
  {
    "scripts": {
      "start": "node index.js"
    }
  }
  ```
apprunner.yaml  

  ```
  run:
    command: npm start
  ```
**npm install** 開発環境で を実行すると、npm はファイル を作成します`package-lock.json`。このファイルには、インストールしたばかりのパッケージバージョンのスナップショットが含まれています。その後、npm が依存関係をインストールすると、これらの正確なバージョンが使用されます。yarn をインストールすると、 `yarn.lock` ファイルが作成されます。これらのファイルをソースコードリポジトリにコミットして、アプリケーションが開発してテストした依存関係のバージョンでインストールされていることを確認します。
App Runner 設定ファイルを使用して Node.js バージョンを設定し、コマンドを開始することもできます。これを行うと、これらの定義は の定義よりも優先されます`package.json`。App Runner 設定ファイルの `node`バージョン`package.json`と `runtime-version`値の間に競合があると、App Runner ビルドフェーズが失敗します。

## 特定のランタイムバージョンのコールアウト
<a name="service-source-code-nodejs.callouts"></a>

### Node.js 22 および Node.js 18 (App Runner ビルドの改訂)
<a name="service-source-code-nodejs.callouts.nodejs18"></a>

App Runner は、Python 3.11、Node.js 22、Node.js 18 のランタイムバージョンに基づいて、アプリケーションの更新されたビルドプロセスを実行するようになりました。アプリケーションがこれらのランタイムバージョンのいずれかで実行されている場合、改訂されたビルドプロセス[マネージドランタイムバージョンと App Runner ビルド](service-source-code.md#service-source-code.build-detail)の詳細については、「」を参照してください。他のすべてのランタイムバージョンを使用するアプリケーションは影響を受けず、元のビルドプロセスを引き続き使用します。

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

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

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

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

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

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:    
    build:
      - npm install --production                                  
run:                              
  command: node app.js
```

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

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

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

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### 拡張 Node.js 設定ファイル – Node.js 22 (改訂されたビルドを使用)
<a name="service-source-code-nodejs.examples.extended-v2"></a>

この例では、 で Node.js マネージドランタイムを使用するすべての設定キーの使用を示しています`apprunner.yaml`。この例では、このバージョンの Node.js は改訂された App Runner ビルドを使用するため、 `pre-run`セクションが含まれています。

`pre-run` パラメータは、改訂された App Runner ビルドでのみサポートされます。アプリケーションが元の App Runner ビルドでサポートされているランタイムバージョンを使用している場合は、このパラメータを設定ファイルに挿入しないでください。詳細については、「[マネージドランタイムバージョンと App Runner ビルド](service-source-code.md#service-source-code.build-detail)」を参照してください。

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

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  pre-run: 
    - node copy-global-files.js
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Grunt を使用した Node.js アプリ
<a name="service-source-code-nodejs.examples.grunt"></a>

この例では、Grunt で開発された Node.js アプリケーションを設定する方法を示します。[Grunt](https://gruntjs.com/) はコマンドライン JavaScript タスクランナーです。反復タスクを実行し、プロセスの自動化を管理して、人為的ミスを減らします。Grunt プラグインと Grunt プラグインは、npm を使用してインストールおよび管理されます。Grunt を設定するには、ソースリポジトリのルートに `Gruntfile.js` ファイルを含めます。

**Example package.json**  

```
{
  "scripts": {
    "build": "grunt uglify",
    "start": "node app.js"
  },
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-nodeunit": "~0.4.1",
    "grunt-contrib-uglify": "~0.5.0"
  },
  "dependencies": {
    "express": "^4.15.2"
  },
}
```

**Example Gruntfile.js**  

```
module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};
```

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

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install grunt grunt-cli
      - npm install --only=dev
      - npm run build
    build:
      - npm install --production
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
```

# Node.js ランタイムリリース情報
<a name="service-source-code-nodejs-releases"></a>

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

**注記**  
App Runner の標準的な非推奨ポリシーは、ランタイムの主要コンポーネントがコミュニティ長期サポート (LTS) が終了し、セキュリティ更新プログラムが利用できなくなったときに、ランタイムを非推奨にすることです。場合によっては、App Runner は、ランタイムでサポートされている言語バージョンのend-of-supportを超えて、限られた期間ランタイムの非推奨化を遅らせることがあります。このようなケースの例としては、ランタイムのサポートを拡張して、お客様が移行の時間を確保できることが挙げられます。

このトピックでは、App Runner がサポートする Node.js ランタイムバージョンの詳細を一覧表示します。


**サポートされているランタイムバージョン — App Runner ビルドの改訂**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/service-source-code-nodejs-releases.html)

**注記**  
App Runner は、最近リリースされた特定のメジャーランタイムのビルドプロセスを改訂しました。このため、このドキュメントの特定のセクションに、*改訂された App Runner ビルド*と*元の App Runner ビルド*への参照が表示されます。詳細については、「[マネージドランタイムバージョンと App Runner ビルド](service-source-code.md#service-source-code.build-detail)」を参照してください。


**サポートされているランタイムバージョン — App Runner ビルドの改訂**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/service-source-code-nodejs-releases.html)




**サポートされているランタイムバージョン — 元の App Runner ビルド**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/service-source-code-nodejs-releases.html)