Menggunakan platform Node.js - AWS App Runner

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 dan berisi paket runtime untuk versi Node.js dan beberapa alat. App Runner menggunakan image runtime terkelola ini sebagai image dasar, dan menambahkan kode aplikasi Anda untuk membuat image Docker. Kemudian menyebarkan gambar ini untuk menjalankan layanan web Anda dalam sebuah wadah.

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.

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 dan StartCommand 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 dan devDependencies 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 di situs web npm Docs.

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 filepackage-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 membuat yarn.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 masukpackage.json. Konflik antara node versi masuk package.json dan runtime-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 12.21.0 dan 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 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-runParameter 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. Grunt adalah runner JavaScript tugas baris perintah. Ini menjalankan tugas berulang dan mengelola otomatisasi proses untuk mengurangi kesalahan manusia. Plugin Grunt dan Grunt diinstal dan dikelola menggunakan npm. Anda mengkonfigurasi Grunt dengan memasukkan Gruntfile.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