Tutorial: Tarik dari repositori paket - Amazon CodeCatalyst

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 npm. lodashPaket 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). Anda kemudian menguji apakah versi tambahan berhasil 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

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
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Arahkan ke proyek Anda,codecatalyst-package-project.

  3. Di panel navigasi, pilih Kode, lalu pilih Repositori sumber.

  4. Pilih Tambahkan repositori, lalu pilih Buat repositori.

  5. Dalam nama Repositori, masukkan:

    hello-world-app
  6. 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
  1. Di panel navigasi, pilih Paket.

  2. Pilih Buat repositori paket.

  3. Dalam nama Repositori, masukkan:

    codecatalyst-package-repository
  4. Pilih + Pilih repositori upstream.

  5. Pilih repositori Gateway.

  6. Di dalam npm-public-registry-gatewaykotak, pilih Buat.

  7. Pilih Pilih.

  8. 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
  1. Di panel navigasi, pilih Kode, lalu pilih Lingkungan Dev.

  2. Di dekat bagian atas pilih Create Dev Environment, lalu pilih AWS Cloud9 (di browser).

  3. 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.

  4. Biarkan kedua tab CodeCatalyst browser terbuka, dan pergi ke prosedur berikutnya.

Untuk membuat aplikasi Node.js 'Hello World'
  1. Pergi ke Lingkungan Pengembang Anda.

  2. Pada prompt terminal, ubah ke direktori root repositori hello-world-app sumber:

    cd hello-world-app
  3. Menginisialisasi proyek Node.js:

    npm init -y

    Inisialisasi membuat package.json file di direktori root. hello-world-app

  4. Hubungkan klien npm di Lingkungan Dev Anda ke repositori CodeCatalyst paket Anda:

    1. Beralih ke CodeCatalyst konsol.

    2. Di panel navigasi, pilih Paket.

    3. Pilih codecatalyst-package-repository.

    4. Pilih Connect to repository.

    5. Pilih Buat token. Token akses pribadi (PAT) dibuat untuk Anda.

    6. Pilih Salin untuk menyalin perintah.

    7. Beralih ke Lingkungan Pengembang Anda.

    8. Pastikan Anda berada di hello-world-app direktori.

    9. 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
  5. 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 dengan lodash dependensi, dan membuat node_modules direktori yang berisi lodash dan semua dependensinya.

  6. Uji yang berhasil lodash diimpor ke Lingkungan Pengembang Anda. Masukkan:

    npm list

    Pesan berikut muncul, menunjukkan impor yang berhasil:

    `-- lodash@4.17.20
  7. (Opsional) Buka hello-world-app/package.json dan verifikasi bahwa baris di red boldtelah 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" } }
  8. Di/hello-world-app, buat file yang disebut index.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
  1. Beralih ke CodeCatalyst konsol.

  2. Di panel navigasi, pilih Paket.

  3. Pilih npm-public-registry-gateway.

  4. Pastikan lodash ditampilkan. Kolom versi terbaru menunjukkan4.17.20.

  5. Ulangi prosedur ini untukcodecatalyst-package-repository. Anda mungkin perlu menyegarkan jendela browser untuk melihat paket yang diimpor.

Untuk menguji 'Hello World' di Lingkungan Dev Anda
  1. Beralih ke Lingkungan Pengembang Anda.

  2. Pastikan Anda masih dalam hello-world-app direktori, dan kemudian jalankan aplikasi:

    node index.js

    Sebuah Hello World pesan muncul. Node.js menjalankan aplikasi menggunakan lodash paket yang Anda download ke Dev Environment Anda pada langkah sebelumnya.

Untuk mengabaikan direktori 'node_modules' dan komit 'Hello World'
  1. 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.

  2. 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. RunHelloWorldAppTindakan 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 dalam package.json file adalahlodash. npm mencari lodash di lokasi berikut:

    • Pada gambar Docker menjalankan aksi. Itu tidak dapat menemukannya di sini.

    • Dalam repositori CodeCatalyst paket. Ia menemukannya di sini.

    Setelah npm menemukanlodash, 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
  1. Beralih ke CodeCatalyst konsol.

  2. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  3. Pilih Buat alur kerja.

  4. Untuk repositori Sumber, pilih. hello-world-app

  5. Untuk Cabang, pilihmain.

    File definisi alur kerja akan dibuat di repositori dan cabang sumber yang dipilih.

  6. Pilih Buat.

  7. Pilih YAMLdi dekat bagian atas.

  8. Hapus kode YAML sampel.

  9. 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 gateway

    Untuk informasi tentang properti dalam file ini, lihatMembangun dan menguji tindakan YAML.

  10. (Opsional) Pilih Validasi untuk memastikan YAML kode valid sebelum melakukan.

  11. Pilih Terapkan.

  12. Pada kotak dialog Commit workflow, masukkan yang berikut ini:

    1. Untuk nama file Workflow, pertahankan default,codecatalyst-package-workflow.

    2. Untuk pesan Commit, masukkan:

      add initial workflow file
    3. Untuk Repositori, pilih. hello-world-app

    4. Untuk nama Branch, pilih main.

    5. Pilih Terapkan.

    Anda sekarang telah membuat alur kerja.

Untuk menjalankan alur kerja
  1. Di samping alur kerja yang baru saja Anda buat (codecatalyst-package-workflow), pilih Tindakan lalu pilih Jalankan.

    Jalankan alur kerja dimulai.

  2. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip denganView Run-1234.

    Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan RunHelloWorldApptindakan.

  3. Pilih kotak RunHelloWorldApptindakan untuk melihat kemajuan tindakan.

  4. 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
  1. Dalam diagram alur kerja, pilih RunHelloWorldAppkotak.

    Daftar pesan log muncul.

  2. 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 bahwa lodash ketergantungan berhasil digunakan.

  3. 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
  1. Di panel navigasi, pilih Paket.

  2. Pilih npm-publish-registry-gateway.

  3. Pilih lodash.

  4. Di dekat bagian atas, pilih Kontrol asal.

  5. Di bawah Upstream, pilih Blokir.

  6. 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
  1. Beralih ke Lingkungan Pengembang Anda.

  2. 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'
  1. Buka /hello-world-app/package.json.

  2. Ubah lodash versi 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.json file (4.17.21) dan versi di gateway dan repositori CodeCatalyst paket (4.17.20).

  3. 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'
  1. Jalankan alur kerja dengan ketidakcocokan versi:

    1. Beralih ke CodeCatalyst konsol.

    2. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

    3. Di sampingcodecatalyst-package-workflow, pilih Tindakan, lalu pilih Jalankan.

      npm package.json mencari dependensi dan melihat bahwa versi 4.17.21 dari lodash 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.

  2. Verifikasi bahwa alur kerja gagal:

    1. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip denganView Run-2345.

    2. Dalam diagram alur kerja, pilih RunHelloWorldAppkotak.

    3. 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
  1. Di panel navigasi, pilih Paket.

  2. Pilih npm-publish-registry-gateway.

  3. Pilih lodash.

  4. Di dekat bagian atas, pilih Kontrol asal.

  5. Di bawah Upstream, pilih Izinkan.

  6. 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
  1. Jalankan alur kerja Anda lagi. Kali ini alur kerja harus berhasil karena impor 4.17.21 sekarang harus berfungsi. Untuk menjalankan alur kerja lagi:

    1. Pilih CI/CD dan kemudian pilih Workflows.

    2. Di sampingcodecatalyst-package-workflow, pilih Tindakan dan pilih Jalankan.

    3. Di notifikasi hijau di bagian atas, di sebelah kanan, pilih tautan ke run. Tautannya terlihat mirip denganView Run-3456.

      Diagram alur kerja muncul, menunjukkan siapa yang memulai proses dan RunHelloWorldApptindakan.

    4. Pilih kotak RunHelloWorldApptindakan untuk melihat kemajuan tindakan.

    5. 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.

  2. Verifikasi bahwa versi 4.17.21 telah diimpor ke repositori CodeCatalyst dan gateway Anda:

    1. Di panel navigasi, pilih Paket.

    2. Pilih npm-public-registry-gateway.

    3. 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.

    4. 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
  1. Hapuscodecatalyst-package-project:

    1. Di CodeCatalyst konsol, naivate ke codecatalyst-package-project proyek jika Anda belum ada di sana.

    2. Di panel navigasi, pilih Pengaturan proyek.

    3. Pilih Hapus proyek, masukkandelete, dan pilih Hapus proyek.

      CodeCatalyst menghapus semua sumber daya proyek, termasuk sumber, gateway, dan repositori CodeCatalyst paket. Lingkungan Dev juga dihapus.

  2. Hapus PAT token:

    1. Pilih nama pengguna Anda di sebelah kanan, lalu pilih Pengaturan saya.

    2. 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.