Sumber Upstream Artefak Azure
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Dengan menggunakan sumber hulu, Anda dapat dengan mudah menyimpan paket dari berbagai sumber dalam satu umpan. Ini termasuk paket yang Anda terbitkan dan yang Anda gunakan dari umpan eksternal dan registri publik seperti NuGet.org, npmjs.com, Maven Central, dan PyPI. Setelah Anda mengaktifkan sumber hulu, paket apa pun yang diinstal dari sumber hulu ini, salinan akan secara otomatis disimpan ke umpan Anda.
Catatan
Untuk menyimpan paket dari hulu, Anda harus memiliki peran Umpan dan Pembaca Upstream (Kolaborator) atau yang lebih tinggi. Lihat Mengelola Izin untuk detail selengkapnya.
Kelebihan
Mengaktifkan sumber hulu menawarkan beberapa keuntungan untuk mengelola dependensi produk Anda dalam satu umpan:
Kesederhanaan: Saat Anda menerbitkan semua paket Anda ke satu umpan, itu menyederhanakan file konfigurasi Anda seperti NuGet.config, npmrc, atau settings.xml. Hanya dengan satu umpan dalam file konfigurasi, Anda mengurangi kemungkinan kesalahan dan bug, menyederhanakan penyiapan Anda.
Determinisme: umpan Anda menyelesaikan permintaan paket secara berurutan, menghasilkan lebih banyak konsistensi saat membangun kembali kode Anda.
Pembuktian: Umpan Anda menyimpan informasi tentang paket yang disimpannya dari sumber hulu. Ini memungkinkan Anda memverifikasi bahwa Anda menggunakan paket asli dan bukan salinan atau versi yang berpotensi berbahaya.
Ketenangan pikiran: Setiap paket yang diinstal dari sumber hulu secara otomatis disimpan ke umpan Anda. Ini berarti bahwa meskipun sumber hulu dinonaktifkan, dihapus, atau menjalani pemeliharaan, Anda dapat terus mengembangkan dan membangun dengan percaya diri karena Anda memiliki salinan paket tersebut di umpan Anda.
Praktik terbaik - konsumen paket
Untuk memanfaatkan sepenuhnya manfaat sumber hulu sebagai konsumen paket, ikuti praktik terbaik berikut:
Gunakan satu umpan dalam file konfigurasi Anda:
Agar umpan Anda memberikan pemulihan deterministik, pastikan bahwa file konfigurasi Anda seperti nuget.config atau .npmrc hanya mereferensikan satu umpan dengan sumber upstream diaktifkan. Lihat contoh di bawah ini:
<packageSources>
<clear />
<add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" />
</packageSources>
Catatan
NuGet mengkompilasi beberapa file konfigurasi untuk menentukan kumpulan opsi lengkap yang akan diterapkan. Dengan menggunakan <clear />
, Anda dapat secara efektif mengabaikan semua sumber paket lain yang ditentukan dalam file konfigurasi tingkat yang lebih tinggi.
registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/
always-auth=true
Pesan sumber upstram Anda dengan sengaja:
Jika Anda secara eksklusif menggunakan registri publik seperti nuget.org atau npmjs.com, urutan sumber hulu Anda tidak relevan. Permintaan ke umpan mengikuti urutan yang dirinci di bagian urutan pencarian.
Namun, saat Anda mengelola beberapa sumber, yang mungkin menyertakan kombinasi umpan dan registri publik, setiap sumber hulu dicari dalam urutan yang tercantum dalam pengaturan konfigurasi umpan. Dalam hal ini, sebaiknya tempatkan registri publik terlebih dahulu dalam daftar sumber hulu.
Dalam beberapa skenario unik, organisasi tertentu memilih untuk menyesuaikan paket perangkat lunak sumber terbuka (OSS). Ini dapat melibatkan mengatasi masalah keamanan, meningkatkan fungsionalitas, atau memenuhi persyaratan khusus yang mengharuskan pembangunan kembali paket secara internal daripada langsung mendapatkannya dari repositori publik. Jika organisasi Anda mengikuti praktik ini, disarankan untuk memposisikan sumber hulu yang berisi paket OSS yang dimodifikasi ini di depan manajer paket publik. Pengaturan ini memastikan penggunaan versi organisasi Anda yang disesuaikan.
Gunakan tampilan default yang disarankan:
Saat Anda menambahkan umpan jarak jauh sebagai sumber hulu, Anda harus memilih tampilan umpannya. Hal ini memungkinkan sumber upstream untuk membuat sekumpulan paket yang tersedia. Lihat Cara upstram membuat kumpulan paket yang tersedia untuk detail selengkapnya.
Praktik terbaik: pemilik umpan/penerbit paket
Untuk memastikan umpan Anda mudah dikonfigurasi sebagai sumber hulu, pertimbangkan untuk menerapkan praktik terbaik berikut:
Gunakan tampilan default:
Tampilan default untuk semua umpan yang baru dibuat adalah @Local
tampilan, yang berisi semua paket yang diterbitkan ke umpan Anda atau disimpan dari sumber hulu.
Jika Anda ingin menggunakan tampilan lain seperti tampilan untuk versi paket yang baru dirilis, Anda dapat mempromosikan paket Anda ke @Release
tampilan lalu membuat tampilan tersebut tersedia untuk konsumen paket Anda.
Buat grafik paket:
Untuk membuat grafik paket, cukup sambungkan ke tampilan default umpan dan instal paket yang ingin Anda bagikan. Ketika paket disimpan ke tampilan default, pengguna yang ingin menggunakannya akan dapat menyelesaikan grafik paket dan menginstal paket yang diinginkan. Paket dari sumber hulu ditampilkan berdasarkan tampilan yang dikonfigurasi untuk sumber hulu yang sesuai.
Urutan pencarian
Untuk manajer paket publik yang mendukung beberapa umpan seperti NuGet dan Maven, urutan di mana umpan dikueri terkadang tidak jelas atau tidak mendeterministik. Misalnya, dalam NuGet, kueri paralel dikirim ke semua umpan dalam file konfigurasi, dan respons diproses dengan cara first-in, first-out (FIFO).
Sumber upstram mengatasi perilaku non-deterministik ini dengan mencari umpan dan sumber hulunya dalam urutan berikut:
Paket yang telah diterbitkan langsung ke umpan.
Paket yang telah disimpan dari sumber hulu.
Paket tersedia dari sumber hulu. Setiap sumber hulu dicari dalam urutan yang tercantum dalam konfigurasi umpan.
Untuk memanfaatkan sepenuhnya fitur pencarian cepat, kami sarankan Anda hanya menyertakan satu umpan dalam file konfigurasi Anda.
Catatan
Mencari paket di sumber upstream menggunakan NuGet Package Explorer tidak didukung.
Menyimpan paket dari sumber upstream
Saat Anda mengaktifkan sumber upstream untuk umpan Anda dan menginstal paket dari sumber upstram, salinan otomatis paket tersebut disimpan ke umpan Anda. Praktik ini meningkatkan performa unduhan dan menghemat bandwidth jaringan.
Misalnya, Anda dapat menginstal paket langsung dari sumber upstream menggunakan perintah seperti npm install express. Atau, paket mungkin diinstal sebagai bagian dari proses resolusi dependensi. Dalam skenario terakhir, menginstal ekspres juga akan menyimpan dependensinya, seperti menerima.
Catatan
Sumber upstream kustom hanya didukung untuk paket npm.
Mengambil alih paket dari sumber upstream
Saat mengaktifkan sumber hulu, penting untuk dicatat bahwa menerbitkan versi paket yang sudah ada di sumber hulu tidak akan dimungkinkan. Misalnya, jika Anda mengaktifkan NuGet.org upstream, Anda tidak akan dapat menerbitkan paket Newtonsoft.Json 10.0.3 , karena versi yang tepat sudah ada di NuGet.org.
Jika Anda perlu menerbitkan versi paket yang sudah ada di salah satu sumber hulu, Anda harus mengikuti langkah-langkah berikut:
- Nonaktifkan sumber hulu yang relevan.
- Terbitkan paket Anda.
- Aktifkan kembali sumber upstram.
Catatan
Versi paket tidak dapat diubah. Paket tersimpan tetap berada di umpan meskipun sumber hulu dinonaktifkan atau dihapus.
Status kesehatan sumber hulu
Jika umpan memiliki sumber hulu yang gagal, metadata untuk paket protokol yang sama tidak dapat lagi disegarkan. Untuk memeriksa status kesehatan sumber hulu Anda, ikuti langkah-langkah berikut:
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Artefak, lalu pilih umpan Anda dari menu dropdown.
Pilih ikon
gigi untuk menavigasi ke pengaturan Umpan Anda, lalu pilih Sumber hulu.
Jika terjadi kegagalan, pesan peringatan akan ditampilkan. Mengklik status Gagal akan memberikan detail tambahan, termasuk penyebab kegagalan dan instruksi tentang cara mengatasinya.
Catatan
Dalam kasus registri publik seperti NuGet.org, ada penundaan 3-6 jam antara waktu paket didorong ke registri publik dan ketika tersedia untuk diunduh. Penundaan ini tergantung pada waktu pekerjaan dan penyebaran data. Namun, ketika sumber hulu adalah umpan Azure Artifacts, latensi biasanya tidak lebih dari beberapa menit.
Sumber upstream offline
Sumber hulu berfungsi sebagai perlindungan berharga bagi konsumen dan infrastruktur Anda, melindungi mereka dari pemadaman yang tidak terduga. Saat Anda menginstal paket dari sumber upstream, salinan paket tersebut disimpan ke umpan Anda. Jika sumber hulu mengalami waktu henti, menjalani pemeliharaan, atau menjadi tidak tersedia untuk sementara waktu, Anda masih dapat mengambil paket yang diperlukan dari umpan Anda dan melanjutkan pengembangan Anda.
Tanya Jawab Umum
T: Saya tidak dapat menemukan paket saya meskipun saya dapat melihatnya di salah satu upstream umpan saya?
A: Paket dari sumber upstream tersedia di umpan hilir segera setelah diterbitkan. Namun, paket hanya akan terlihat oleh pembaca setelah disimpan ke umpan. Paket disimpan saat pengguna dengan izin Umpan dan Pembaca Upstream (Kolaborator) atau yang lebih tinggi menginstal versi di umpan hilir. Ini memicu hilir untuk menyimpan salinan paket dari hulu, setelah itu disimpan secara permanen dan tersedia di hilir ke semua pembaca. Ini adalah ketika versi paket menjadi terlihat di bagian versi paket dari UI web.
T: Apa itu tampilan umpan?
J: Tampilan memungkinkan pengembang untuk secara selektif berbagi subset versi paket yang telah diuji dan divalidasi, tidak termasuk paket apa pun yang masih dalam pengembangan atau belum memenuhi kriteria kualitas. Untuk informasi selengkapnya, lihat Apa itu tampilan umpan.
T: Saya tidak dapat menemukan umpan yang ingin saya konfigurasi sebagai sumber upstram?
A: Pastikan pemilik umpan berbagi tampilan sebagai sumber hulu.
T: Dapatkah pengguna dengan paket unduhan peran Pembaca Umpan dari sumber hulu?
J: Tidak. Pengguna dengan peran Pembaca Umpan di umpan Azure Artifacts hanya dapat mengunduh paket yang telah disimpan ke umpan. Paket disimpan ke umpan saat Umpan dan Pembaca Upstream (Kolaborator), Penerbit Umpan (Kontributor), atau Pemilik Umpan menginstal paket tersebut dari hulu.
T: Apa yang terjadi saat pengguna menghapus atau membatalkan penerbitan paket yang disimpan dari sumber upstream?
A: Paket menjadi tidak tersedia untuk diunduh dari umpan, dan nomor versi dicadangkan secara permanen. Selain itu, paket tidak akan lagi disimpan dari sumber hulu. Versi paket yang lebih lama dan yang lebih baru akan tetap tidak terpengaruh.
T: Apa yang terjadi ketika pengguna menghentikan paket yang disimpan dari sumber hulu?
A: Saat pengguna menghentikan paket, pesan peringatan ditambahkan ke metadata paket, yang ditampilkan setiap kali paket dilihat atau diinstal dari umpan.