Mengonfigurasi dependensi aplikasi Anda pada Elastic Beanstalk - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengonfigurasi dependensi aplikasi Anda pada Elastic Beanstalk

Aplikasi Anda mungkin memiliki dependensi pada beberapa Node.js modul, seperti yang Anda tentukan dalam require() pernyataan. Modul-modul ini disimpan dalam node_modules direktori. Saat aplikasi Anda berjalan, Node.js memuat modul dari direktori ini. Untuk informasi selengkapnya, lihat Memuat dari folder node_modules di Node.js dokumentasi.

Anda dapat menentukan dependensi modul ini menggunakan file. package.json Jika Elastic Beanstalk mendeteksi file ini node_modules dan direktori tidak ada, Elastic Beanstalk berjalan sebagai pengguna webapp. npm install npm installPerintah menginstal dependensi di node_modules direktori, yang dibuat Elastic Beanstalk sebelumnya. npm installPerintah mengakses paket yang tercantum dalam package.json file dari registri npm publik atau lokasi lain. Untuk informasi selengkapnya, lihat situs web npm Docs.

Jika Elastic Beanstalk node_modules mendeteksi direktori, Elastic Beanstalk tidak berjalan, bahkan jika ada file. npm install package.json Elastic Beanstalk mengasumsikan bahwa paket dependensi tersedia di direktori untuk node_modules Node.js untuk mengakses dan memuat.

Bagian berikut memberikan informasi lebih lanjut tentang membangun Node.js dependensi modul untuk aplikasi Anda.

catatan

Jika Anda mengalami masalah penerapan saat Elastic Beanstalk npm install berjalan, pertimbangkan pendekatan alternatif. Sertakan node_modules direktori dengan modul dependensi dalam bundel sumber aplikasi Anda. Melakukannya dapat menghindari masalah dengan menginstal dependensi dari registri npm publik saat Anda menyelidiki masalah tersebut. Karena modul ketergantungan bersumber dari direktori lokal, dong ini mungkin juga membantu mengurangi waktu penerapan. Untuk informasi selengkapnya, silakan lihat Termasuk Node.js dependensi dalam direktori node_modules

Menentukan Node.js dependensi dengan file package.json

Sertakan file package.json di akar sumber proyek Anda untuk menentukan paket dependensi dan memberikan perintah mulai. Saat package.json file ada, dan node_modules direktori tidak ada di root sumber proyek Anda, Elastic npm install Beanstalk berjalan sebagai pengguna webapp untuk menginstal dependensi dari registri npm publik. Elastic Beanstalk juga start menggunakan perintah untuk memulai aplikasi Anda. Untuk informasi selengkapnya tentang package.json file, lihat Menentukan dependensi dalam package.json file di situs web npm Docs.

Gunakan kata kunci scripts untuk memberikan perintah mulai. Saat ini, scripts kata kunci digunakan sebagai pengganti NodeCommand opsi lama di aws:elasticbeanstalk:container:nodejs namespace.

contoh package.json – Express
{ "name": "my-app", "version": "0.0.1", "private": true, "dependencies": { "ejs": "latest", "aws-sdk": "latest", "express": "latest", "body-parser": "latest" }, "scripts": { "start": "node app.js" } }
Mode produksi dan dependensi pengembang

Untuk menentukan dependensi Anda dalam package.json file, gunakan dependensi dan atribut. devDependencies Atribut dependencies menunjuk paket-paket yang dibutuhkan oleh aplikasi Anda dalam produksi. devDependenciesAtribut menunjuk paket yang hanya diperlukan untuk pengembangan dan pengujian lokal.

Elastic npm install Beanstalk berjalan sebagai pengguna webapp dengan perintah berikut. Opsi perintah bervariasi tergantung pada versi npm yang disertakan pada cabang platform tempat aplikasi Anda berjalan.

  • npm v6 - Elastic Beanstalk menginstal dependensi dalam mode produksi secara default. Ia menggunakan perintahnpm install --production.

  • npm v7 atau lebih besar — Elastic Beanstalk menghilangkan. devDependencies Ia menggunakan perintahnpm install --omit=dev.

Kedua perintah yang tercantum di atas tidak menginstal paket yang ada devDependencies.

Jika Anda perlu menginstal devDependenciespaket, setel properti PRODUCTION lingkungan NPM USE _ _ kefalse. Dengan pengaturan ini kami tidak akan menggunakan opsi di atas saat menjalankan npm install. Ini akan menghasilkan devDependenciespaket yang diinstal.

SSHdan HTTPS

Dimulai dengan rilis platform Amazon Linux 2 7 Maret 2023, Anda juga dapat menggunakan HTTPS protokol SSH dan untuk mengambil paket dari repositori Git. Cabang platform Node.js 16 mendukung HTTPS protokol SSH dan protokol. Node.js 14 hanya mendukung HTTPS protokol.

contoh package.json — Node.js 16 mendukung keduanya HTTPS dan SSH
... "dependencies": { "aws-sdk": "https://github.com/aws/aws-sdk-js.git", "aws-chime": "git+ssh://git@github.com:aws/amazon-chime-sdk-js.git" }

Versi dan rentang versi

penting

Fitur untuk menentukan rentang versi tidak tersedia untuk cabang platform Node.js yang berjalan pada AL2 023. Kami hanya mendukung satu versi Node.js dalam cabang Node.js tertentu di AL2 023. Jika package.json file Anda menentukan rentang versi, kami akan mengabaikannya dan default ke versi cabang platform Node.js.

Gunakan engines kata kunci dalam package.json file untuk menentukan Node.js versi yang Anda ingin aplikasi Anda gunakan. Anda juga dapat menentukan rentang versi menggunakan notasi npm. Untuk informasi selengkapnya tentang sintaks untuk rentang versi, lihat Pembuatan Versi Semantik menggunakan npm di Node.js situs web. Kata engines kunci dalam Node.js package.jsonfile menggantikan NodeVersion opsi lama di namespace. aws:elasticbeanstalk:container:nodejs

contoh package.json— Tunggal Node.js versi
{ ... "engines": { "node" : "14.16.0" } }
contoh package.json – Node.js rentang versi
{ ... "engines": { "node" : ">=10 <11" } }

Ketika rentang versi ditunjukkan, Elastic Beanstalk menginstal yang terbaru Node.js versi yang platform telah tersedia dalam jangkauan. Dalam contoh ini, rentang menunjukkan bahwa versi harus lebih besar dari atau sama dengan versi 10, tetapi kurang dari versi 11. Hasilnya, Elastic Beanstalk menginstal yang terbaru Node.js versi 10.x.y, yang tersedia di platform yang didukung.

Ketahuilah bahwa Anda hanya dapat menentukan Node.js versi yang sesuai dengan cabang platform Anda. Misalnya, jika Anda menggunakan Node.js 16 cabang platform, Anda hanya dapat menentukan 16.x.y Node.js versi. Anda dapat menggunakan opsi rentang versi yang didukung oleh npm untuk mengizinkan lebih banyak fleksibilitas. Untuk valid Node.js versi untuk setiap cabang platform, lihat Node.jsdalam panduan AWS Elastic Beanstalk Platform.

catatan

Ketika support versi Node.js yang digunakan dihapus dari platform, Anda harus mengubah atau menghapus pengaturan versi Node.js sebelum melakukan pembaruan platform. Hal ini mungkin terjadi ketika kelemahan keamanan diidentifikasi pada satu atau beberapa versi Node.js.

Ketika ini terjadi, upaya untuk memperbarui ke versi platform baru yang tidak support versi Node.js yang dikonfigurasi akan gagal. Agar tidak perlu membuat lingkungan baru, ubah pengaturan versi Node.js di package.json ke versi Node.js yang didukung versi platform lama dan yang baru. Anda memiliki opsi untuk menentukan rentang versi Node.js yang mencakup versi yang didukung, seperti yang dijelaskan sebelumnya dalam topik ini. Anda juga memiliki opsi untuk menghapus pengaturan, dan kemudian menyebarkan bundel sumber baru.

Termasuk Node.js dependensi dalam direktori node_modules

Untuk menyebarkan paket dependensi ke instance lingkungan bersama dengan kode aplikasi Anda, sertakan mereka dalam direktori yang diberi nama node_modules di root sumber proyek Anda. Untuk informasi selengkapnya, lihat Mengunduh dan menginstal paket secara lokal di situs web npm Docs.

Saat Anda menyebarkan node_modules direktori ke 023/ AL2 AL2 Node.js versi platform, Elastic Beanstalk mengasumsikan bahwa Anda menyediakan paket dependensi Anda sendiri, dan menghindari menginstal dependensi yang ditentukan dalam file package.json. Node.js mencari dependensi di direktori. node_modules Untuk informasi selengkapnya, lihat Memuat dari Folder node_modules di Node.js dokumentasi.

catatan

Jika Anda mengalami masalah penerapan saat Elastic Beanstalk npm install berjalan, pertimbangkan untuk menggunakan pendekatan yang dijelaskan dalam topik ini sebagai solusi saat Anda menyelidiki masalah tersebut.