View a markdown version of this page

Meminta versi paket dengan repositori hulu - Amazon CodeCatalyst

Amazon CodeCatalyst tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Lihat informasi yang lebih lengkap di Cara bermigrasi dari CodeCatalyst.

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

Meminta versi paket dengan repositori hulu

Contoh berikut menunjukkan skenario yang mungkin terjadi ketika manajer paket meminta paket dari repositori CodeCatalyst paket yang memiliki repositori hulu.

Untuk contoh ini, manajer paket, sepertinpm, meminta versi paket dari repositori paket bernama downstream yang memiliki beberapa repositori hulu. Ketika paket diminta, hal berikut dapat terjadi:

  • Jika downstream berisi versi paket yang diminta, akan dikembalikan ke klien.

  • Jika downstream tidak berisi versi paket yang diminta, cari CodeCatalyst di repositori downstream hulu, dalam urutan pencarian yang dikonfigurasi. Jika versi paket ditemukan, referensi untuk itu akan disalin ke downstream, dan versi paket dikembalikan ke klien.

  • Jika tidak downstream satu pun atau repositori hulu berisi versi paket, Not Found respons HTTP 404 dikembalikan ke klien.

Jumlah maksimum repositori hulu langsung yang diizinkan untuk satu repositori adalah 10. Jumlah maksimum CodeCatalyst pencarian repositori ketika versi paket diminta adalah 25.

Retensi paket dari repositori hulu

Jika versi paket yang diminta ditemukan di repositori hulu, referensi untuk itu dipertahankan dan selalu tersedia di repositori yang memintanya. Ini memastikan bahwa Anda memiliki akses ke paket Anda jika ada pemadaman tak terduga dari repositori hulu. Versi paket yang dipertahankan tidak terpengaruh oleh salah satu dari berikut ini:

  • Menghapus repositori hulu.

  • Memutuskan koneksi repositori hulu dari repositori hilir.

  • Menghapus versi paket dari repositori hulu.

  • Mengedit versi paket di repositori hulu (misalnya, dengan menambahkan aset baru ke dalamnya).

Mengambil paket melalui hubungan hulu

CodeCatalyst dapat mengambil paket melalui beberapa repositori tertaut yang disebut repositori hulu. Jika repositori CodeCatalyst paket memiliki koneksi upstream ke repositori CodeCatalyst paket lain yang memiliki koneksi upstream ke repositori gateway, permintaan untuk paket yang tidak ada di repositori hulu disalin dari repositori eksternal. Misalnya, pertimbangkan konfigurasi berikut: repositori bernama repo-A memiliki koneksi hulu ke repositori gateway,npm-public-registry-gateway. npm-public-registry-gatewaymemiliki koneksi hulu ke repositori paket publik, https://npmjs.com.

Diagram repositori hulu sederhana menunjukkan tiga repositori yang dirangkai bersama.

Jika npm dikonfigurasi untuk menggunakan repo-A repositori, menjalankan npm install memulai penyalinan paket dari https://npmjs.com kenpm-public-registry-gateway. Versi yang dipasang juga ditarik ke dalam repo-A. Contoh berikut menginstal lodash.

$ npm config get registry https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/ $ npm install lodash + lodash@4.17.20 added 1 package from 2 contributors in 6.933s

Setelah dijalankannpm install, hanya repo-A berisi versi terbaru (lodash 4.17.20) karena itulah versi yang diambil oleh npm darirepo-A.

Karena npm-public-registry-gateway memiliki koneksi hulu eksternal ke https://npmjs.com, semua versi paket yang diimpor https://npmjs.com disimpan dinpm-public-registry-gateway. Versi paket ini dapat diambil oleh repositori hilir mana pun dengan koneksi hulu yang mengarah ke. npm-public-registry-gateway

Isi npm-public-registry-gateway menyediakan cara bagi Anda untuk melihat semua paket dan versi paket yang diimpor dari waktu ke https://npmjs.com waktu.

Retensi paket dalam repositori menengah

CodeCatalyst memungkinkan Anda untuk merantau repositori hulu. Misalnya, repo-A dapat memiliki repo-B sebagai repositori hulu dan repo-B dapat memiliki repo-C sebagai repositori hulu. Konfigurasi ini membuat versi paket di repo-B dan repo-C tersedia dari repo-A.

Diagram repositori hulu sederhana menunjukkan tiga repositori yang dirangkai bersama.

Ketika manajer paket terhubung ke repositori repo-A dan mengambil versi paket dari repositorirepo-C, versi paket tidak disimpan di repositorirepo-B. Versi paket hanya dipertahankan di repositori hilir terjauh, yang dalam contoh ini adalahrepo-A. Itu tidak disimpan dalam repositori perantara mana pun. Ini juga berlaku untuk rantai yang lebih panjang; misalnya, jika ada empat repositori: repo-Arepo-B,repo-C,repo-D, dan, dan manajer paket terhubung repo-A untuk mengambil versi paket darirepo-D, versi paket akan dipertahankan repo-A tetapi tidak di repo-B atau. repo-C

Perilaku retensi paket serupa saat menarik versi paket dari repositori paket publik, kecuali bahwa versi paket selalu dipertahankan di repositori gateway yang memiliki koneksi hulu langsung ke repositori publik. Misalnya, repo-A memiliki repo-B sebagai repositori hulu. repo-Bmemiliki npm-public-registry-gateway sebagai repositori hulu, yang memiliki koneksi hulu ke repositori publik, npmjs.com; lihat diagram di bawah ini.

Diagram repositori hulu menunjukkan tiga repositori yang dirantai bersama dengan koneksi hulu eksternal ke npmjs.com.

Jika manajer paket yang terhubung repo-A meminta versi paket tertentu, lodash 4.17.20 misalnya, dan versi paket tidak ada di salah satu dari tiga repositori, itu akan diambil dari npmjs.com. Ketika lodash 4.17.20 diambil, itu dipertahankan karena itu adalah repositori hilir terjauh dan npm-public-registry-gateway karena memiliki koneksi hulu ke repositori eksternal publik, npmjs.com. repo-A lodash 4.17.20 tidak disimpan repo-B karena itu adalah repositori perantara.