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 npmlodash
Paket 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 agar tidak 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
- Langkah 1: Buat repositori sumber
- Langkah 2: Buat repositori paket CodeCatalyst dan gateway
- Langkah 3: Buat aplikasi 'Hello World'
- Langkah 4: Buat alur kerja yang menjalankan 'Hello World'
- Langkah 5: Verifikasi alur kerja
- Langkah 6: Blokir impor dari npmjs.com
- Langkah 7: Uji fitur pemblokiran
- Bersihkan
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-project
Gunakan 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-repository
yang 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 Lingkungan CodeCatalyst Dev, 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-app
dan cabang yang ada disetel ke.main
Pilih 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-app
sumber:cd hello-world-app
-
Menginisialisasi proyek Node.js:
npm init -y
Inisialisasi membuat
package.json
file 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-app
direktori. -
Tempel 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
lodash
versi 4.17.20:npm install lodash@v4.17.20 --save --save-exact
npm mencari
lodash
versi 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
lodash
ke 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
lodash
langsung dari npmjs.com dan tidak akan mengimpor paket ke salah satu repositori.npm juga memperbarui
package.json
file Anda denganlodash
dependensi, dan membuatnode_modules
direktori yang berisilodash
dan semua dependensinya. -
-
Uji yang berhasil
lodash
diimpor ke Lingkungan Pengembang Anda. Masukkan:npm list
Pesan berikut muncul, menunjukkan impor yang berhasil:
`-- lodash@4.17.20
-
(Opsional) Buka
hello-world-app/package.json
dan verifikasi bahwa baris dired bold
telah ditambahkan:{ "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.js
dengan 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
lodash
ditampilkan. 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-app
direktori, dan kemudian jalankan aplikasi:node index.js
Sebuah
Hello World
pesan muncul. Node.js menjalankan aplikasi menggunakanlodash
paket yang Anda download ke Dev Environment Anda pada langkah sebelumnya.
Untuk mengabaikan direktori 'node_modules' dan komit 'Hello World'
-
Abaikan
node_modules
direktori. Masukkan:echo "node_modules/" >> .gitignore
Ini 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 push
Aplikasi '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
. RunHelloWorldApp
Tindakan ini mencakup perintah dan bagian penting berikut:
-
Packages
Bagian ini menunjukkan nama repositori CodeCatalyst paket yang harus dihubungkan oleh tindakan saat menjalankan.
npm install
-
- Run: npm install
Perintah ini memberitahu npm untuk menginstal dependensi yang ditentukan dalam file.
package.json
Satu-satunya ketergantungan yang ditentukan dalampackage.json
file adalahlodash
. npm mencarilodash
di 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 list
Perintah ini mencetak versi mana
lodash
yang diunduh ke gambar Docker yang menjalankan tindakan. -
- Run: node index.js
Perintah 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 YAMLdi dekat bagian atas.
-
Hapus kode YAML sampel.
-
Tambahkan YAML kode 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-repository
Pada kode sebelumnya, ganti
codecatalyst-package-repository
dengan 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 YAML.
-
(Opsional) Pilih Validasi untuk memastikan YAML kode 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.js
log.Pesan berikut muncul:
[Container] 2024/04/24 21:15:41.545650 Running command node index.js Hello World
Munculnya
Hello Word
(bukanhello-world
) menunjukkan bahwalodash
ketergantungan berhasil digunakan. -
Perluas
npm list
log.Pesan yang mirip dengan berikut ini muncul:
└── lodash@4.17.20
Pesan ini menunjukkan bahwa
lodash
versi 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, 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.yaml
file 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
lodash
versi ke 4.17.21 seperti yang ditunjukkan padared 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.json
file (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.json
mencari dependensi dan melihat bahwa versi 4.17.21 darilodash
diperlukan 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.
lodash
Karena 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 install
log.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.log
Kesalahan 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.
lodash
Alur 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 list
log dan verifikasi bahwa pesan yang mirip dengan yang berikut ini muncul:└── lodash@4.17.21
Pesan ini menunjukkan bahwa
lodash
versi 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
lodash
dan pastikan versinya4.17.21
.catatan
Meskipun versi 4.17.20 tidak tercantum di halaman ini, Anda dapat menemukannya dengan memilih
lodash
dan 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-project
proyek 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 PAT token:
-
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.