選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Node.js 平台 - AWS App Runner

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Node.js 平台

AWS App Runner Node.js 平台提供受管執行期。每個執行時間都可讓您根據 Node.js 版本使用 Web 應用程式輕鬆建置和執行容器。當您使用 Node.js 執行期時,App Runner 會從受管 Node.js 執行期映像開始。此映像是以 Amazon Linux Docker 映像為基礎,並包含 Node.js 版本和一些工具的執行期套件。App Runner 使用此受管執行期映像做為基礎映像,並新增您的應用程式程式碼來建置 Docker 映像。然後,它會部署此映像,在容器中執行您的 Web 服務。

當您使用 App Runner 主控台或 CreateService API 操作建立服務時,您可以指定 App Runner 服務的執行時間。您也可以指定執行時間做為原始程式碼的一部分。在程式碼儲存庫中包含的 App Runner 組態檔案中使用 runtime關鍵字。受管執行時間的命名慣例是 <language-name><major-version>

如需有效的 Node.js 執行期名稱和版本,請參閱Node.js 執行期版本資訊

App Runner 會在每次部署或服務更新時,將服務的執行時間更新至最新版本。如果您的應用程式需要特定版本的受管執行時間,您可以使用 App Runner 組態檔案中runtime-version關鍵字來指定它。您可以鎖定任何層級的版本,包括主要或次要版本。App Runner 只會對服務的執行時間進行較低層級的更新。

Node.js 執行時間的版本語法: major[.minor[.patch]]

例如:12.21.0

下列範例示範版本鎖定:

  • 12.21 – 鎖定主要和次要版本。App Runner 只會更新修補程式版本。

  • 12.21.0 – 鎖定至特定修補程式版本。App Runner 不會更新您的執行時間版本。

Node.js 執行期組態

當您選擇受管執行時間時,您也必須設定 建置和執行命令,以做為最低限度。您可以在建立更新 App Runner 服務時設定它們。您可以使用下列其中一種方法執行此操作:

  • 使用 App Runner 主控台 – 在建立程序或組態索引標籤的設定建置區段中指定命令。

  • 使用 App Runner API – 呼叫 CreateServiceUpdateService API 操作。使用 CodeConfigurationValues 資料類型的 BuildCommandStartCommand成員指定命令。

  • 使用組態檔案 – 在最多三個組建階段指定一或多個組建命令,以及用於啟動應用程式的單一執行命令。還有其他選用的組態設定。

提供組態檔案是選用的。當您使用主控台或 API 建立 App Runner 服務時,您可以指定 App Runner 在建立時直接從組態檔案取得您的組態設定。

特別是使用 Node.js 執行期,您也可以使用來源儲存庫根package.json目錄中名為 的 JSON 檔案來設定建置和執行期。使用此檔案,您可以設定 Node.js 引擎版本、相依性套件和各種命令 (命令列應用程式)。npm 或 yarn 等套件管理員會將此檔案解譯為其命令的輸入。

例如:

  • npm install 在 中安裝由 dependenciesdevDependencies節點定義的套件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.21.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" } }

{ "name": "node-js-getting-started", "version": "0.3.0", "description": "A sample Node.js app using Express 4", "engines": { "node": "12.21.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 檔案

提示
  • 如果您的package.json檔案定義了start命令,您可以在 App Runner 組態檔案中將其用作run命令,如下列範例所示。

    package.json

    { "scripts": { "start": "node index.js" } }

    apprunner.yaml

    run: command: npm start
  • 當您npm install在開發環境中執行 時,npm 會建立 檔案 package-lock.json。此檔案包含剛安裝的套件版本 npm 的快照。之後,當 npm 安裝相依性時,它會使用這些確切版本。如果您安裝紗線,它會建立 yarn.lock 檔案。將這些檔案遞交至您的原始程式碼儲存庫,以確保您的應用程式已安裝您開發和測試的相依性版本。

  • 您也可以使用 App Runner 組態檔案來設定 Node.js 版本和啟動命令。當您執行此操作時,這些定義會覆寫 中的定義package.json。中的node版本package.json與 App Runner 組態檔案中runtime-version的值衝突會導致 App Runner 建置階段失敗。

特定執行時間版本的呼叫

Node.js 18 (修訂後的 App Runner 建置)

App Runner 現在會根據下列執行時間版本執行應用程式的更新建置程序:Python 3.11 和 Node.js 18。如果您的應用程式在其中一個執行時間版本上執行,請參閱 受管執行期版本和 App Runner 組建 以取得修訂建置程序的詳細資訊。使用所有其他執行期版本的應用程式不會受到影響,而且會繼續使用原始建置程序。

Node.js 執行時間範例

下列範例顯示用於建置和執行 Node.js 服務的 App Runner 組態檔案。

注意

這些範例中使用的執行時間版本為 12.21.018.19.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.js 執行期版本,請參閱 Node.js 執行期版本資訊

此範例顯示可與 Node.js 受管執行時間搭配使用的最小組態檔案。如需 App Runner 使用最少組態檔案所做的假設,請參閱 組態檔案範例

範例 apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: build: - npm install --production run: command: node app.js

Minimal Node.js 組態檔案

此範例顯示可與 Node.js 受管執行時間搭配使用的最小組態檔案。如需 App Runner 使用最少組態檔案所做的假設,請參閱 組態檔案範例

範例 apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: build: - npm install --production run: command: node app.js

此範例顯示搭配 Node.js 受管執行時間使用所有組態金鑰。

注意

這些範例中使用的執行時間版本為 12.21.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.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.21.0 command: node app.js network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

此範例顯示搭配 Node.js 受管執行時間使用所有組態金鑰。

注意

這些範例中使用的執行時間版本為 12.21.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.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.21.0 command: node app.js network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

此範例顯示 中所有組態金鑰與 Node.js 受管執行時間搭配使用apprunner.yaml。此範例包含 pre-run區段,因為此版本的 Node.js 使用修訂過的 App Runner 建置。

參數pre-run僅受修訂的 App Runner 建置支援。如果您的應用程式使用原始 App Runner 組建支援的執行期版本,請勿將此參數插入您的組態檔案中。如需詳細資訊,請參閱受管執行期版本和 App Runner 組建

注意

這些範例中使用的執行時間版本為 18.19.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.js 執行期版本,請參閱 Node.js 執行期版本資訊

範例 apprunner.yaml
version: 1.0 runtime: nodejs18 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: 18.19.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"

此範例顯示 中所有組態金鑰與 Node.js 受管執行時間搭配使用apprunner.yaml。此範例包含 pre-run區段,因為此版本的 Node.js 使用修訂過的 App Runner 建置。

參數pre-run僅受修訂的 App Runner 建置支援。如果您的應用程式使用原始 App Runner 組建支援的執行期版本,請勿將此參數插入您的組態檔案中。如需詳細資訊,請參閱受管執行期版本和 App Runner 組建

注意

這些範例中使用的執行時間版本為 18.19.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.js 執行期版本,請參閱 Node.js 執行期版本資訊

範例 apprunner.yaml
version: 1.0 runtime: nodejs18 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: 18.19.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 應用程式。Grunt 是命令列 JavaScript 任務執行器。它執行重複性任務並管理程序自動化,以減少人為錯誤。使用 npm 安裝和管理 Grunt 和 Grunt 外掛程式。您可以透過將 Gruntfile.js 檔案包含在來源儲存庫的根目錄中來設定 Grunt。

範例 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
注意

這些範例中使用的執行時間版本為 12.21.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.js 執行期版本,請參閱 Node.js 執行期版本資訊

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.21.0 command: node app.js network: port: 8000 env: APP_PORT

此範例說明如何設定使用 Grunt 開發的 Node.js 應用程式。Grunt 是命令列 JavaScript 任務執行器。它執行重複性任務並管理程序自動化,以減少人為錯誤。使用 npm 安裝和管理 Grunt 和 Grunt 外掛程式。您可以透過將 Gruntfile.js 檔案包含在來源儲存庫的根目錄中來設定 Grunt。

範例 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
注意

這些範例中使用的執行時間版本為 12.21.0。您可以將它取代為您想要使用的版本。如需最新支援的 Node.js 執行期版本,請參閱 Node.js 執行期版本資訊

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.21.0 command: node app.js network: port: 8000 env: APP_PORT

下一個主題:

版本資訊

上一個主題:

版本資訊
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。