Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Tarik dari repositori paket
Dalam tutorial ini, Anda belajar cara membuat alur kerja yang menjalankan aplikasi yang dependensinya ditarik dari repositori paket. CodeCatalyst Aplikasi ini adalah aplikasi Node.js sederhana yang mencetak pesan 'Hello World' ke log. CodeCatalyst Aplikasi ini memiliki ketergantungan tunggal: paket lodash npmlodashPaket ini digunakan untuk mengubah hello-world string keHello World. Anda akan menggunakan versi 4.17.20 dari paket ini.
Setelah menyiapkan aplikasi dan alur kerja, Anda mengonfigurasi CodeCatalyst untuk memblokir versi tambahan dari yang diimpor ke repositori CodeCatalyst paket lodash dari registri eksternal publik (npmjs.com).lodash diblokir.
Pada akhir tutorial ini, Anda harus memiliki pemahaman yang baik tentang bagaimana alur kerja berinteraksi dengan repositori paket, baik di dalam maupun di luar CodeCatalyst, untuk mengambil paket. Anda juga harus memahami behind-the-scenes interaksi yang terjadi antara npm, repositori paket Anda, alur kerja Anda, dan file aplikasi Anda. package.json
Topik
Prasyarat
Sebelum Anda memulai:
-
Anda membutuhkan CodeCatalyst ruang. Untuk informasi selengkapnya, lihat Menciptakan ruang.
-
Di CodeCatalyst ruang Anda, Anda memerlukan proyek kosong yang disebut:
codecatalyst-package-projectGunakan opsi Mulai dari awal untuk membuat proyek ini.
Untuk informasi selengkapnya, lihat Membuat proyek kosong di Amazon CodeCatalyst.
Langkah 1: Buat repositori sumber
Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Repositori ini menyimpan file sumber tutorial, seperti file index.js danpackage.json.
Untuk informasi selengkapnya tentang repositori sumber, lihat. Membuat repositori sumber
Untuk membuat repositori sumber
Buka CodeCatalyst konsol di https://codecatalyst.aws/
. -
Arahkan ke proyek Anda,
codecatalyst-package-project. -
Di panel navigasi, pilih Kode, lalu pilih Repositori sumber.
-
Pilih Tambahkan repositori, lalu pilih Buat repositori.
-
Dalam nama Repositori, masukkan:
hello-world-app -
Pilih Buat.
Langkah 2: Buat repositori paket CodeCatalyst dan gateway
Pada langkah ini, Anda membuat repositori paket di CodeCatalyst proyek Anda, dan menghubungkannya ke repositori gateway, juga di proyek Anda. CodeCatalyst Anda kemudian mengimpor ketergantungan tutorial,lodash, dari npmjs.com ke kedua repositori.
Repositori gateway adalah 'lem' yang menghubungkan repositori paket Anda ke npmjs.com publik CodeCatalyst .
Untuk informasi selengkapnya tentang repositori paket, lihat. Publikasikan dan bagikan paket perangkat lunak di CodeCatalyst
catatan
Tutorial ini menggunakan istilah repositori CodeCatalyst paket dan repositori gateway untuk merujuk ke dua repositori yang Anda buat dalam prosedur berikut. CodeCatalyst
Untuk membuat CodeCatalyst repositori paket dan gateway
-
Di panel navigasi, pilih Paket.
-
Pilih Buat repositori paket.
-
Dalam nama Repositori, masukkan:
codecatalyst-package-repository -
Pilih + Pilih repositori upstream.
-
Pilih repositori Gateway.
-
Di dalam npm-public-registry-gatewaykotak, pilih Buat.
-
Pilih Pilih.
-
Pilih Buat.
CodeCatalyst membuat repositori paket
codecatalyst-package-repositoryyang disebut yang terhubung ke repositori gateway. Repositori gateway terhubung ke registri npmjs.com.
Langkah 3: Buat aplikasi 'Hello World'
Pada langkah ini, Anda membuat aplikasi Node.js 'Hello World' dan mengimpor dependensinya (lodash) ke gateway dan CodeCatalyst repositori paket Anda.
Untuk membuat aplikasi, Anda memerlukan mesin pengembangan dengan Node.js dan npm klien terkait diinstal.
Tutorial ini mengasumsikan Anda akan menggunakan CodeCatalyst Dev Environment sebagai mesin pengembangan Anda. Meskipun Anda tidak harus menggunakan CodeCatalyst Dev Environment, disarankan karena menyediakan lingkungan kerja yang bersih, memiliki Node.js dan sudah npm diinstal sebelumnya, dan mudah dihapus ketika Anda telah menyelesaikan tutorial. Untuk informasi selengkapnya tentang Lingkungan CodeCatalyst Pengembang, lihatMembuat Lingkungan Dev.
Gunakan petunjuk berikut untuk meluncurkan CodeCatalyst Dev Environment dan menggunakannya untuk membuat aplikasi 'Hello World'.
Untuk meluncurkan Lingkungan CodeCatalyst Dev
-
Di panel navigasi, pilih Kode, lalu pilih Lingkungan Dev.
-
Di dekat bagian atas pilih Create Dev Environment, lalu pilih AWS Cloud9 (di browser).
-
Pastikan bahwa Repositori disetel ke
hello-world-appdan cabang yang ada disetel ke.mainPilih Buat.Lingkungan Dev Anda diluncurkan di tab browser baru, dan repositori (
hello-world-app) Anda dikloning ke dalamnya. -
Biarkan kedua tab CodeCatalyst browser terbuka, dan pergi ke prosedur berikutnya.
Untuk membuat aplikasi Node.js 'Hello World'
-
Pergi ke Lingkungan Pengembang Anda.
-
Pada prompt terminal, ubah ke direktori root repositori
hello-world-appsumber:cd hello-world-app -
Menginisialisasi proyek Node.js:
npm init -yInisialisasi membuat
package.jsonfile di direktori root.hello-world-app -
Hubungkan klien npm di Lingkungan Dev Anda ke repositori CodeCatalyst paket Anda:
-
Beralih ke CodeCatalyst konsol.
-
Di panel navigasi, pilih Paket.
-
Pilih
codecatalyst-package-repository. -
Pilih Connect to repository.
-
Pilih Buat token. Token akses pribadi (PAT) dibuat untuk Anda.
-
Pilih Salin untuk menyalin perintah.
-
Beralih ke Lingkungan Pengembang Anda.
-
Pastikan Anda berada di
hello-world-appdirektori. -
Tempelkan perintah. Mereka terlihat mirip dengan yang berikut:
npm set registry=https://packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/codecatalyst-package-repository/ --location project npm set //packages.us-west-2.codecatalyst.aws/npm/ExampleCompany/codecatalyst-package-project/hello-world-app/:_authToken=username:token-secret
-
-
Impor
lodashversi 4.17.20:npm install lodash@v4.17.20 --save --save-exactnpm mencari
lodashversi 4.17.20 di lokasi berikut, dengan urutan sebagai berikut:-
Di Lingkungan Dev. Itu tidak dapat menemukannya di sini.
-
Dalam repositori CodeCatalyst paket. Itu tidak dapat menemukannya di sini.
-
Di repositori gateway. Itu tidak dapat menemukannya di sini.
-
Di npmjs.com. Ia menemukannya di sini.
npm mengimpor
lodashke repositori gateway, repositori CodeCatalyst paket, dan Lingkungan Dev.catatan
Jika Anda tidak menghubungkan klien npm ke repositori CodeCatalyst paket Anda di langkah 4, maka npm akan menarik
lodashlangsung dari npmjs.com dan tidak akan mengimpor paket ke salah satu repositori.npm juga memperbarui
package.jsonfile Anda denganlodashdependensi, dan membuatnode_modulesdirektori yang berisilodashdan semua dependensinya. -
-
Uji yang berhasil
lodashdiimpor ke Lingkungan Pengembang Anda. Masukkan:npm listPesan berikut muncul, menunjukkan impor yang berhasil:
`-- lodash@4.17.20 -
(Opsional) Buka
hello-world-app/package.jsondan verifikasi bahwa barisred boldditambahkan:{ "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC",dependencies": { "lodash": "4.17.20"} } -
Di
/hello-world-app, buat file yang disebutindex.jsdengan konten berikut:Tip
Anda dapat menggunakan navigasi samping di Lingkungan Dev Anda untuk membuat file ini.
// Importing lodash library const _ = require('lodash'); // Input string const inputString = 'hello-world'; // Transforming the string using lodash const transformedString = _.startCase(inputString.replace('-', ' ')); // Outputting the transformed string to the console console.log(transformedString);
Untuk menguji bahwa 'lodash' diimpor ke gateway dan repositori CodeCatalyst paket Anda
-
Beralih ke CodeCatalyst konsol.
-
Di panel navigasi, pilih Paket.
-
Pilih npm-public-registry-gateway.
-
Pastikan
lodashditampilkan. Kolom versi terbaru menunjukkan4.17.20. -
Ulangi prosedur ini untuk
codecatalyst-package-repository. Anda mungkin perlu menyegarkan jendela browser untuk melihat paket yang diimpor.
Untuk menguji 'Hello World' di Lingkungan Dev Anda
-
Beralih ke Lingkungan Pengembang Anda.
-
Pastikan Anda masih dalam
hello-world-appdirektori, dan kemudian jalankan aplikasi:node index.jsSebuah
Hello Worldpesan muncul. Node.js menjalankan aplikasi menggunakanlodashpaket yang Anda download ke Dev Environment Anda pada langkah sebelumnya.
Untuk mengabaikan direktori 'node_modules' dan komit 'Hello World'
-
Abaikan
node_modulesdirektori. Masukkan:echo "node_modules/" >> .gitignoreIni adalah praktik terbaik untuk menghindari melakukan direktori ini. Juga, melakukan direktori ini akan mengganggu langkah-langkah selanjutnya dalam tutorial ini.
-
Tambahkan, komit, dan dorong:
git add . git commit -m "add the Hello World application" git pushAplikasi 'Hello World' dan file proyek ditambahkan ke repositori sumber Anda.
Langkah 4: Buat alur kerja yang menjalankan 'Hello World'
Pada langkah ini, Anda membuat alur kerja yang menjalankan aplikasi 'Hello World' menggunakan dependensi. lodash Alur kerja mencakup satu tindakan, atau tugas, yang disebutRunHelloWorldApp. RunHelloWorldAppTindakan ini mencakup perintah dan bagian penting berikut:
-
PackagesBagian ini menunjukkan nama repositori CodeCatalyst paket yang harus dihubungkan oleh tindakan saat menjalankan.
npm install -
- Run: npm installPerintah ini memberitahu npm untuk menginstal dependensi yang ditentukan dalam file.
package.jsonSatu-satunya ketergantungan yang ditentukan dalampackage.jsonfile adalahlodash. npm mencarilodashdi lokasi berikut:-
Pada gambar Docker menjalankan aksi. Itu tidak dapat menemukannya di sini.
-
Dalam repositori CodeCatalyst paket. Ia menemukannya di sini.
Setelah npm menemukan
lodash, ia mengimpornya ke image Docker yang menjalankan tindakan. -
-
- Run: npm listPerintah ini mencetak versi mana
lodashyang diunduh ke gambar Docker yang menjalankan tindakan. -
- Run: node index.jsPerintah ini menjalankan aplikasi 'Hello World' menggunakan dependensi yang ditentukan dalam file.
package.json
Perhatikan bahwa RunHelloWorldApp tindakan tersebut adalah tindakan build, seperti yang ditunjukkan oleh aws/build@v1 identifier di dekat bagian atas alur kerja. Untuk informasi selengkapnya tentang tindakan build, lihatMembangun dengan alur kerja.
Gunakan petunjuk berikut untuk membuat alur kerja yang menarik lodash ketergantungan dari repositori CodeCatalyst paket Anda dan kemudian menjalankan aplikasi 'Hello World' Anda.
Untuk membuat alur kerja
-
Beralih ke CodeCatalyst konsol.
-
Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.
-
Pilih Buat alur kerja.
-
Untuk repositori Sumber, pilih.
hello-world-app -
Untuk Cabang, pilih
main.File definisi alur kerja akan dibuat di repositori dan cabang sumber yang dipilih.
-
Pilih Buat.
-
Pilih YAMAL di dekat bagian atas.
-
Hapus kode sampel YAMM.
-
Tambahkan kode YAMM berikut:
Name: codecatalyst-package-workflow SchemaVersion: "1.0" # Required - Define action configurations. Actions: RunHelloWorldApp: # Identifies the action. Do not modify this value. Identifier: aws/build@v1 Compute: Type: Lambda Inputs: Sources: - WorkflowSource # This specifies your source repository. Configuration: Steps: - Run: npm install - Run: npm list - Run: node index.js Container: # This specifies the Docker image that runs the action. Registry: CODECATALYST Image: CodeCatalystLinuxLambda_x86_64:2024_03 Packages: NpmConfiguration: PackageRegistries: - PackagesRepository:codecatalyst-package-repositoryDalam kode sebelumnya, ganti
codecatalyst-package-repositorydengan nama repositori CodeCatalyst paket yang Anda buat. Langkah 2: Buat repositori paket CodeCatalyst dan gatewayUntuk informasi tentang properti dalam file ini, lihatMembangun dan menguji tindakan YAMB.
-
(Opsional) Pilih Validasi untuk memastikan kode YAMM valid sebelum melakukan.
-
Pilih Terapkan.
-
Pada kotak dialog Commit workflow, masukkan yang berikut ini:
-
Untuk nama file Workflow, pertahankan default,
codecatalyst-package-workflow. -
Untuk pesan Commit, masukkan:
add initial workflow file -
Untuk Repositori, pilih. hello-world-app
-
Untuk nama Branch, pilih main.
-
Pilih Terapkan.
Anda sekarang telah membuat alur kerja.
-
Untuk menjalankan alur kerja
-
Di samping alur kerja yang baru saja Anda buat (
codecatalyst-package-workflow), pilih Tindakan lalu pilih Jalankan.Jalankan alur kerja dimulai.
-
Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan
View Run-1234.Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan RunHelloWorldApptindakan.
-
Pilih kotak RunHelloWorldApptindakan untuk melihat kemajuan tindakan.
-
Saat lari selesai, pergi keLangkah 5: Verifikasi alur kerja.
Langkah 5: Verifikasi alur kerja
Pada langkah ini, Anda memverifikasi bahwa alur kerja berhasil menjalankan aplikasi 'Hello World' dengan ketergantungannya. lodash
Untuk memverifikasi bahwa aplikasi 'Hello World' berjalan menggunakan ketergantungannya
-
Dalam diagram alur kerja, pilih RunHelloWorldAppkotak.
Daftar pesan log muncul.
-
Perluas pesan
node index.jslog.Pesan berikut muncul:
[Container] 2024/04/24 21:15:41.545650 Running command node index.js Hello WorldMunculnya
Hello Word(bukanhello-world) menunjukkan bahwalodashketergantungan berhasil digunakan. -
Perluas
npm listlog.Pesan yang mirip dengan berikut ini muncul:
└── lodash@4.17.20Pesan ini menunjukkan bahwa
lodashversi 4.17.20 telah diunduh ke gambar Docker yang menjalankan tindakan alur kerja.
Langkah 6: Blokir impor dari npmjs.com
Sekarang lodash versi 4.17.20 hadir di gateway dan repositori CodeCatalyst paket Anda, Anda dapat memblokir impor versi lain. Pemblokiran mencegah Anda mengimpor versi yang lebih baru (atau sebelumnya) secara tidak sengajalodash, yang mungkin berisi kode berbahaya. Untuk informasi selengkapnya, silakan lihat Mengedit kontrol asal paket dan Serangan substitusi ketergantungan.
Gunakan petunjuk berikut untuk memblokir impor lodash ke repositori gateway Anda. Ketika Anda memblokir paket di gateway, mereka juga diblokir di lokasi hilir.
Untuk memblokir impor ke repositori gateway Anda
-
Di panel navigasi, pilih Paket.
-
Pilih npm-publish-registry-gateway.
-
Pilih
lodash. -
Di dekat bagian atas, pilih Kontrol asal.
-
Di bawah Upstream, pilih Blokir.
-
Pilih Simpan.
Anda sekarang telah memblokir impor ke repositori gateway Anda (dan repositori hilir dan komputer) dari npmjs.com.
Langkah 7: Uji fitur pemblokiran
Di bagian ini, Anda memverifikasi bahwa pemblokiran yang Anda atur berfungsi. Langkah 6: Blokir impor dari npmjs.com Anda mulai dengan mengonfigurasi 'Hello World' untuk meminta versi 4.17.2 1 lodash alih-alih yang tersedia di repositori gateway Anda, yaitu 4.17.2 0. Anda kemudian memeriksa apakah aplikasi tidak dapat menarik versi 4.17.21 dari nmpjs.com, yang menunjukkan penyumbatan yang berhasil. Sebagai tes terakhir, Anda membuka blokir impor ke repositori gateway Anda, dan memeriksa apakah aplikasi dapat berhasil menarik versi 4.17.21 dari. lodash
Gunakan serangkaian prosedur berikut untuk menguji fitur pemblokiran.
Sebelum Anda mulai
-
Beralih ke Lingkungan Pengembang Anda.
-
Tarik
codecatalyst-package-workflow.yamlfile yang Anda buat menggunakan CodeCatalyst konsol sebelumnya:git pull
Untuk mengkonfigurasi 'Hello World' untuk meminta versi 4.17.21 dari 'lodash'
-
Buka
/hello-world-app/package.json. -
Ubah
lodashversi ke 4.17.21 seperti yang ditunjukkan pada:red bold{ "name": "hello-world-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "lodash": "4.17.21" } }Sekarang ada ketidakcocokan antara versi dalam
package.jsonfile (4.17.21) dan versi di gateway dan repositori CodeCatalyst paket (4.17.20). -
Tambahkan, komit, dan dorong:
git add . git commit -m "update package.json to use lodash 4.17.21" git push
Untuk menguji bahwa 'Hello World' tidak dapat menarik versi 4.17.21 dari 'lodash'
-
Jalankan alur kerja dengan ketidakcocokan versi:
-
Beralih ke CodeCatalyst konsol.
-
Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.
-
Di samping
codecatalyst-package-workflow, pilih Tindakan, lalu pilih Jalankan.npm
package.jsonmencari dependensi dan melihat bahwa versi 4.17.21 darilodashdiperlukan oleh 'Hello World'. npm mencari ketergantungan di lokasi berikut, dengan urutan berikut:-
Pada gambar Docker menjalankan aksi. Itu tidak dapat menemukannya di sini.
-
Dalam repositori CodeCatalyst paket. Itu tidak dapat menemukannya di sini.
-
Di repositori gateway. Itu tidak dapat menemukannya di sini.
-
Di npmjs.com. Ia menemukannya di sini.
Setelah npm menemukan versi 4.17.21 di npmjs.com, ia mencoba mengimpornya ke repositori gateway, tetapi karena Anda mengatur gateway untuk memblokir impor, impor tidak terjadi.
lodashKarena impor tidak terjadi, alur kerja gagal.
-
-
-
Verifikasi bahwa alur kerja gagal:
-
Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan
View Run-2345. -
Dalam diagram alur kerja, pilih RunHelloWorldAppkotak.
-
Perluas pesan
npm installlog.Pesan berikut muncul:
[Container] 2024/04/25 17:20:34.995591 Running command npm install npm ERR! code ETARGET npm ERR! notarget No matching version found for lodash@4.17.21. npm ERR! notarget In most cases you or one of your dependencies are requesting npm ERR! notarget a package version that doesn't exist. npm ERR! A complete log of this run can be found in: /tmp/.npm/_logs/2024-05-08T22_03_26_493Z-debug-0.logKesalahan menunjukkan bahwa versi 4.17.21 tidak dapat ditemukan. Ini diharapkan karena Anda memblokirnya.
-
Untuk membuka blokir impor dari npmjs.com
-
Di panel navigasi, pilih Paket.
-
Pilih npm-publish-registry-gateway.
-
Pilih
lodash. -
Di dekat bagian atas, pilih Kontrol asal.
-
Di bawah Upstream, pilih Izinkan.
-
Pilih Simpan.
Anda sekarang telah membuka blokir impor.
lodashAlur kerja Anda sekarang dapat mengimpor versi 4.17.21 dari.
lodash
Untuk menguji apakah impor dari npmjs.com tidak diblokir
-
Jalankan alur kerja Anda lagi. Kali ini alur kerja harus berhasil karena impor 4.17.21 sekarang harus berfungsi. Untuk menjalankan alur kerja lagi:
-
Pilih CI/CD dan kemudian pilih Workflows.
-
Di samping
codecatalyst-package-workflow, pilih Tindakan dan pilih Jalankan. -
Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip dengan
View Run-3456.Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan RunHelloWorldApptindakan.
-
Pilih kotak RunHelloWorldApptindakan untuk melihat kemajuan tindakan.
-
Perluas pesan
npm listlog dan verifikasi bahwa pesan yang mirip dengan yang berikut ini muncul:└── lodash@4.17.21Pesan ini menunjukkan bahwa
lodashversi 4.17.21 telah diunduh.
-
-
Verifikasi bahwa versi 4.17.21 telah diimpor ke repositori CodeCatalyst dan gateway Anda:
-
Di panel navigasi, pilih Paket.
-
Pilih npm-public-registry-gateway.
-
Temukan
lodashdan pastikan versinya4.17.21.catatan
Meskipun versi 4.17.20 tidak tercantum di halaman ini, Anda dapat menemukannya dengan memilih
lodashdan kemudian memilih Versi di dekat bagian atas. -
Ulangi langkah-langkah ini untuk memeriksa bahwa versi 4.17.21 telah diimpor ke.
codecatalyst-package-repository
-
Bersihkan
Bersihkan file dan layanan yang digunakan dalam tutorial ini untuk menghindari biaya untuk mereka.
Untuk membersihkan tutorial paket
-
Hapus
codecatalyst-package-project:-
Di CodeCatalyst konsol, naivate ke
codecatalyst-package-projectproyek jika Anda belum ada di sana. -
Di panel navigasi, pilih Pengaturan proyek.
-
Pilih Hapus proyek, masukkan
delete, dan pilih Hapus proyek.CodeCatalyst menghapus semua sumber daya proyek, termasuk sumber, gateway, dan repositori CodeCatalyst paket. Lingkungan Dev juga dihapus.
-
-
Hapus token PAT:
-
Pilih nama pengguna Anda di sebelah kanan, lalu pilih Pengaturan saya.
-
Di bawah Token akses pribadi, pilih token yang Anda buat dalam tutorial ini dan pilih Hapus.
-
Dalam tutorial ini, Anda belajar cara membuat alur kerja yang menjalankan aplikasi yang menarik dependensinya dari repositori paket. CodeCatalyst Anda juga belajar cara memblokir dan membuka blokir paket dari memasuki gateway dan repositori CodeCatalyst paket Anda.