Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan platform Node.js
Platform AWS App Runner Node.js menyediakan runtime terkelola. Setiap runtime memudahkan untuk membangun dan menjalankan container dengan aplikasi web berdasarkan versi Node.js. Saat Anda menggunakan runtime Node.js, App Runner dimulai dengan image runtime Node.js yang dikelola. Gambar ini didasarkan pada image Amazon Linux Docker
Anda menentukan runtime untuk layanan App Runner saat membuat layanan menggunakan konsol App Runner atau operasi API. CreateService Anda juga dapat menentukan runtime sebagai bagian dari kode sumber Anda. Gunakan runtime
kata kunci dalam file konfigurasi App Runner yang Anda sertakan dalam repositori kode Anda. Konvensi penamaan runtime terkelola adalah. <language-name><major-version>
Untuk nama dan versi runtime Node.js yang valid, lihatInformasi rilis runtime Node.js.
App Runner memperbarui runtime untuk layanan Anda ke versi terbaru pada setiap penerapan atau pembaruan layanan. Jika aplikasi Anda memerlukan versi tertentu dari runtime terkelola, Anda dapat menentukannya menggunakan runtime-version
kata kunci dalam file konfigurasi App Runner. Anda dapat mengunci ke tingkat versi apa pun, termasuk versi mayor atau minor. App Runner hanya membuat pembaruan tingkat yang lebih rendah ke runtime layanan Anda.
Sintaks versi untuk runtime Node.js: major
[.minor
[.patch
]]
Misalnya: 12.21.0
Contoh berikut menunjukkan penguncian versi:
-
12.21
— Kunci versi mayor dan minor. App Runner hanya memperbarui versi tambalan. -
12.21.0
— Kunci ke versi patch tertentu. App Runner tidak memperbarui versi runtime Anda.
Topik
Konfigurasi runtime Node.js
Saat memilih runtime terkelola, Anda juga harus mengonfigurasi, seminimal mungkin, membangun dan menjalankan perintah. Anda mengonfigurasinya saat membuat atau memperbarui layanan App Runner. Anda dapat melakukan ini menggunakan salah satu metode berikut:
-
Menggunakan konsol App Runner — Tentukan perintah di bagian Configure build pada tab proses pembuatan atau konfigurasi.
-
Menggunakan App Runner API — Panggil operasi CreateServiceatau UpdateServiceAPI. Tentukan perintah menggunakan
BuildCommand
danStartCommand
anggota tipe CodeConfigurationValuesdata. -
Menggunakan file konfigurasi — Tentukan satu atau beberapa perintah build hingga tiga fase build, dan satu perintah run yang berfungsi untuk memulai aplikasi Anda. Ada pengaturan konfigurasi opsional tambahan.
Menyediakan file konfigurasi adalah opsional. Saat membuat layanan App Runner menggunakan konsol atau API, Anda menentukan apakah App Runner mendapatkan setelan konfigurasi secara langsung saat dibuat atau dari file konfigurasi.
Dengan runtime Node.js secara khusus, Anda juga dapat mengonfigurasi build dan runtime menggunakan file JSON bernama package.json
di root repositori sumber Anda. Dengan menggunakan file ini, Anda dapat mengonfigurasi versi mesin Node.js, paket ketergantungan, dan berbagai perintah (aplikasi baris perintah). Package manager seperti npm atau yarn menafsirkan file ini sebagai input untuk perintah mereka.
Sebagai contoh:
-
npm installmenginstal paket yang ditentukan oleh
dependencies
dandevDependencies
node dipackage.json
. -
npm startatau npm run start menjalankan perintah yang ditentukan oleh
scripts/start
node dipackage.json
.
Berikut ini adalah contoh package.json
file.
{ "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" } }
Untuk informasi selengkapnyapackage.json
, lihat Membuat file package.json
Kiat
-
Jika
package.json
file Anda mendefinisikan start perintah, Anda dapat menggunakannya sebagai run perintah dalam file konfigurasi App Runner, seperti yang ditunjukkan contoh berikut.package.json
{ "scripts": { "start": "node index.js" } }
apprunner.yaml
run: command: npm start
-
Ketika Anda menjalankan npm install di lingkungan pengembangan Anda, npm membuat file
package-lock.json
. File ini berisi snapshot dari versi paket npm yang baru saja diinstal. Setelah itu, ketika npm menginstal dependensi, ia menggunakan versi yang tepat ini. Jika Anda menginstal benang, itu akan membuatyarn.lock
file. Komit file-file ini ke repositori kode sumber Anda untuk memastikan bahwa aplikasi Anda diinstal dengan versi dependensi yang Anda kembangkan dan uji. -
Anda juga dapat menggunakan file konfigurasi App Runner untuk mengonfigurasi versi Node.js dan memulai perintah. Ketika Anda melakukan ini, definisi ini mengesampingkan yang masuk
package.json
. Konflik antaranode
versi masukpackage.json
danruntime-version
nilai dalam file konfigurasi App Runner menyebabkan fase build App Runner gagal.
Callout untuk versi runtime tertentu
Node.js 18 (build App Runner yang direvisi)
App Runner sekarang menjalankan proses build yang diperbarui untuk aplikasi berdasarkan versi runtime berikut: Python 3.11 dan Node.js 18. Jika aplikasi Anda berjalan pada salah satu versi runtime ini, lihat Versi runtime terkelola dan build App Runner untuk informasi selengkapnya tentang proses build yang direvisi. Aplikasi yang menggunakan semua versi runtime lainnya tidak terpengaruh, dan mereka terus menggunakan proses build asli.
Contoh runtime Node.js
Contoh berikut menunjukkan file konfigurasi App Runner untuk membangun dan menjalankan layanan Node.js.
catatan
Versi runtime yang digunakan dalam contoh ini adalah
Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihatInformasi rilis runtime Node.js.12.21.0
dan 18.19.0.
Contoh ini menunjukkan file konfigurasi minimal yang dapat Anda gunakan dengan runtime terkelola Node.js. Untuk asumsi yang dibuat oleh App Runner dengan file konfigurasi minimal, lihat. Contoh file konfigurasi
contoh apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: build: - npm install --production run: command: node app.js
Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Node.js.
catatan
Versi runtime yang digunakan dalam contoh ini adalah 12.21.0
. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihatInformasi rilis runtime Node.js.
contoh 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"
Contoh ini menunjukkan penggunaan semua kunci konfigurasi dengan runtime terkelola Node.js di. apprunner.yaml
Contoh ini menyertakan pre-run
bagian, karena versi Node.js ini menggunakan build App Runner yang direvisi.
pre-run
Parameter ini hanya didukung oleh build App Runner yang direvisi. Jangan masukkan parameter ini dalam file konfigurasi jika aplikasi Anda menggunakan versi runtime yang didukung oleh build App Runner asli. Untuk informasi selengkapnya, lihat Versi runtime terkelola dan build App Runner.
catatan
Versi runtime yang digunakan dalam contoh ini adalah 18.19.0
. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihatInformasi rilis runtime Node.js.
contoh 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"
Contoh ini menunjukkan cara mengkonfigurasi aplikasi Node.js yang dikembangkan dengan Grunt. GruntGruntfile.js
file di root repositori sumber Anda.
contoh 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" }, }
contoh 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']); };
contoh apprunner.yaml
catatan
Versi runtime yang digunakan dalam contoh ini adalah 12.21.0
. Anda dapat menggantinya dengan versi yang ingin Anda gunakan. Untuk versi runtime Node.js terbaru yang didukung, lihatInformasi rilis runtime 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