翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Node.js マネージランタイムの使用
AWS App Runnerは、Node.js マネージドランタイムを提供します。ランタイムにより、Node.json ベースの Web アプリケーションでコンテナイビルドして実行できます。Node.js ランタイムを使用すると、App Runner は管理された Node.js ランタイムイメージで起動します。このイメージは、Amazon Linux Docker イメージ
App Runner サービスのランタイムは、サービスを作成するにはを使用して、App Runner コンソールまたはCreateServiceAPI. また、ソースコードの一部としてランタイムを指定することもできます。の使用runtime
キーワードをアプリランナー構成ファイルをコードリポジトリに含めます。マネージランタイムの命名規則は<language-name> <major-version>
。
有効な Node.js ランタイム名については、Node.js ランタイムリリース情報。
App Runner は、デプロイメントまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。アプリケーションで特定のバージョンの管理対象ランタイムが必要な場合は、runtime-version
キーワードのアプリランナー構成ファイル。マイナーバージョンを<major>
。<minor>
を使用して、メジャーバージョンとマイナーバージョンをロックします (App Runner はパッチバージョンのみを更新します)。特定のパッチレベルを<major>
。<minor>
。<patch>
を使用して、特定のランタイムバージョンでサービスをロックします(App Runnerはランタイムを更新しません)。
Node.js ランタイム設定
マネージランタイムを選択するときは、最低限、ビルドコマンドと実行コマンドを構成する必要があります。これらの設定は、作成中または更新App Runner サービスをサポートします。それを行うにはいくつかの方法があります。
-
アプリランナーコンソールの使用— コマンドをビルドの設定セクションに移動します。
-
アプリランナー API の使用— を呼び出します。CreateServiceまたはUpdateService。コマンドを指定するには、
BuildCommand
およびStartCommand
メンバーのコーデコンフィグレーション値データ型 -
の使用設定ファイル— 最大 3 つのビルドフェーズで 1 つ以上のビルドコマンドを指定し、アプリケーションの起動に役立つ 1 つの実行コマンドを指定します。追加のオプション構成設定があります。
設定ファイルの指定は任意です。コンソールまたは API を使用して App Runner サービスを作成する場合、App Runner が構成設定を作成中に直接取得するか、構成ファイルから取得するかを指定します。
Node.js ランタイムでは、ビルドとランタイムを構成することもできます。package.json
ソースリポジトリのルートに「」と入力します。このファイルを使用して、Node.js エンジンのバージョン、依存関係パッケージ、およびさまざまなコマンド (コマンドラインアプリケーション) を構成できます。npmやyarnなどのパッケージマネージャは、このファイルをコマンドの入力として解釈します。
次に例を示します。
-
npm installによって定義されたパッケージをインストールする
dependencies
およびdevDependencies
ノードのpackage.json
。 -
npm startまたはnpm run startによって定義されたコマンドを実行します。
scripts/start
ノードのpackage.json
。
次は、package.json
ファイルの例です。
{ "name": "node-js-getting-started", "version": "0.3.0", "description": "A sample Node.js app using Express 4", "engines": { "node": "12.18.4" }, "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
「」を参照してください。package.json ガイド
Tips
-
もしあなたの
package.json
ファイルは、startコマンドを 1 つだけ使用する場合は、runコマンドを App Runner 設定ファイルに追加します。package.json
{ "scripts": { "start": "node index.js" } }
apprunner.yaml
run: command: npm start
-
実行するとnpm install開発環境では、npmはファイル
package-lock.json
。このファイルには、インストールしたばかりのパッケージバージョンnpmのスナップショットが含まれています。その後、npmが依存関係をインストールすると、これらの正確なバージョンが使用されます。同様に、糸はyarn.json
。これらのファイルをソースコードリポジトリにコミットして、アプリケーションを開発してテストした依存関係のバージョンで確実にインストールされるようにします。 -
App Runner 構成ファイルを使用して、Node.js のバージョンと start コマンドを構成することもできます。これを行うと、これらの定義は
package.json
。間の競合node
バージョンpackage.json
とruntime-version
値を設定すると、アプリランナーのビルドフェーズが失敗します。
Node.js ランタイムスクライオン
次の例は、Node.js サービスを構築して実行するための App Runner 構成ファイルを示しています。
この例では、Node.js 管理ランタイムで使用できる最小構成ファイルを示します。App Runner が最小限の設定ファイルで行う前提条件については、設定ファイルの例。
例 apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: build: - npm install --production run: command: node app.js
この例では、Node.js 管理ランタイムですべての設定キーを使用することを示しています。
例 apprunner.yaml
version: 1.0 runtime: nodejs12 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: 12.18.4 command: node app.js network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"
この例では、Grunt で作成された Node.js アプリケーションを設定する方法を示しています。うなり声Gruntfile.js
ファイルをソースリポジトリのルートにアップロードします。
例 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" }, }
例 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']); };
例 apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: pre-build: - npm install grunt grunt-cli - npm install --only=dev - npm run build build: - npm install --production run: runtime-version: 12.18.4 command: node app.js network: port: 8000 env: APP_PORT