Yukarı akış kaynakları
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017
yukarı akış kaynakları farklı kaynaklardan paketleri depolamak için tek bir akış kullanmanıza olanak sağlar: yayımladıklarınız ve NuGet. org, npmjs.com, maven Central ve pypi gibi genel kayıt defterleri. Bir yukarı akış kaynağını etkinleştirdikten sonra, akışınızdan bağlanılan tüm kullanıcılar bir paketi yukarı akış 'dan yükleyebilir ve bir kopya akışınıza kaydedilir.
Not
Özel yukarı akış kaynakları şu anda yalnızca NPM için desteklenir.
Avantajlar
Yukarı akış kaynakları, tüm ürününüzün bağımlılıklarını tek bir akışta yönetmenizi sağlar. Tüm paketlerinizin tek bir akışa yayımlanması birkaç avantaj sağlar:
- Basitlik: NuGet.config,. npmrc veya settings.xml gibi yapılandırma dosyanız, hatalara ve hatalara karşı daha az bir akışa sahip olacak şekilde yalnızca bir akış içerir.
- Determinronizm: akışınız paket isteklerini sırayla çözdüğünde kodunuzu yeniden oluşturmak daha tutarlıdır.
- Provenance: akışınız, yukarı akış kaynaklarından kaydettiği paketlerin bir kısmını biliyor, böylece özgün paketi kullandığınızı ve bir kopya veya kötü amaçlı paket değil olduğunu doğrulayabilirsiniz.
- İçiniz: bir kopya, yukarı akış kaynaklarından yüklenen herhangi bir paket için akışınıza kaydedilir. Bu nedenle, yukarı akış kaynağı devre dışı bırakılmış, kaldırılmış veya bakım devam ediyorsa, akışınızda bu paketin bir kopyasına sahip olduğunuzdan, geliştirmeye ve oluşturmaya devam edebilirsiniz.
En iyi yöntemler-paket tüketicileri
Bir paket tüketicisi olarak yukarı akış kaynaklarının avantajlarından tam olarak yararlanmak için aşağıdaki en iyi yöntemleri izleyin:
Yapılandırma dosyanızda tek bir akış kullanın
Akışınızın belirleyici geri yüklemesağlaması için nuget.config veya. npmrc gibi yapılandırma dosyanızın yalnızca yukarı akış kaynakları etkinleştirilmiş bir akışa başvurduğundan emin olmanız önemlidir.
Örnek:
nuget.config
<packageSources> <clear /> <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" /> </packageSources>
Not
<clear />etiket gereklidir çünkü NuGet, kullanılacak tüm seçenek kümesini belirlemede <clear /> oluşturur. <clear />NuGet <packageSources> , daha üst düzey yapılandırma dosyalarında tanımlanan diğer tüm tanımlı dosyaları yok saymasını söyler.
. npmrc:
registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/ always-auth=true
Yukarı akış kaynaklarınızı bilinçli olarak sıralama
Yalnızca nuget.org veya npmjs.com gibi ortak kayıt defterleri kullanıyorsanız, yukarı akış Kaynaklarınızın sırası ilgisiz olur. Akışa yönelik istekler arama sırasınıizler.
Akışların ve ortak kayıt defterlerinin karışımı gibi birden çok kaynak kullanıyorsanız, her yukarı akış, akışın yapılandırma ayarlarında listelendiği sırada aranır. Bu durumda, önce genel kayıt defterlerini yukarı akış kaynakları listesine yerleştirmenizi öneririz.
Nadir durumlarda bazı kuruluşlar, güvenlik sorunlarını gidermek, işlevsellik eklemek ve paketin doğrudan ortak depodan tüketilmesi yerine dahili olarak sıfırdan oluşturulduğu gereksinimleri karşılamak için OSS paketlerini değiştirmeyi tercih ediyor. Kuruluşunuz bu düzeni izliyorsa, kuruluşunuzun değiştirilmiş sürümlerini kullandığınızdan emin olmak için, bu değiştirilmiş OSS paketlerini içeren yukarı akış kaynağını ortak paket yöneticileriyle önce yerleştirin.
Önerilen varsayılan görünümü kullanın
Bir uzak akışı yukarı akış kaynağı olarak eklediğinizde, akışın görünümünü seçmeniz gerekir. Bu, yukarı akış kaynaklarının kullanılabilir bir paket kümesi oluşturmasına olanak sağlar. Daha fazla ayrıntı için bkz. paket grafiklerini doldurun .
En iyi Yöntemler: akış sahipleri/paket yayımcıları
Not
Genel akışlardaki yukarı akış kaynakları desteklenmez.
Akışlarınızın bir yukarı akış kaynağı olarak kolayca yapılandırıldığından emin olmak için aşağıdaki en iyi yöntemleri uygulamayı göz önünde bulundurun:
Varsayılan görünümü kullanın
@localGörünüm, yeni oluşturulan tüm akışlar için varsayılan görünümüdür. Akışınızdan yayınlanan veya yukarı akış kaynaklarından kaydettiğiniz tüm paketleri içerir.
Yeni Paket sürümlerini serbest bırakmak için görünümleri kullanmak istiyorsanız, paketinizi gibi bir görünüme yükseltebilir @release ve Tüketicileriniz için kullanılabilir hale getirebilirsiniz.
Bir paket grafiği oluşturun
bir akış bir paket için yukarı akış kaynağını sorgulayıp, bu, söz konusu yukarı akış kaynağı için yapılandırılmış görünümdeki paketleri döndürür Azure Artifacts. Bir paket grafiği oluşturmak için akışın varsayılan görünümüne bağlanıp paylaştırmak istediğiniz paketi yüklemelisiniz. Paket varsayılan görünümde doğru şekilde yüklendiğinde, onu kullanmak isteyen kullanıcılar paket grafiğini çözümleyebilir ve istenen paketi yükleyebilecektir.
Arama sırası
birden çok akışı (NuGet ve maven) destekleyen ortak paket yöneticileri için, akışların sorgulandığı sıra bazen belirsiz veya belirleyici olmayan bir şekilde belirlenir. örneğin NuGet ' de, paralel sorgular yapılandırma dosyasındaki tüm akışlara yapılır ve yanıtlar ilk ın, ilk çıkar fıfo olarak işlenir.
Yukarı akış kaynakları, aşağıdaki sırayı kullanarak akış ve yukarı akış kaynaklarını arayarak bu belirleyici olmayan davranışı önler:
, Akışa gönderilen paketler.
Bir yukarı akış kaynağından kaydedilen paketler.
Yukarı akış kaynaklarından kullanılabilir paketler: her yukarı akış, akışın yapılandırmasında listelendiği sırada aranır
Hızlı arama özelliğinden tam olarak yararlanmak için, yapılandırma dosyanıza yalnızca bir akış dahil etmenizi öneririz.
Paketleri yukarı akış kaynaklarından Kaydet
Akışınız için yukarı akış kaynaklarını etkinleştirdiğinizde, yukarı akış kaynaklarından yüklenen paketler otomatik olarak akışınıza kaydedilir. Bu paketler, doğrudan yukarı akış ile aşağıdaki gibi yüklenebilir npm install express veya bağımlılık çözümünün bir parçası olarak yüklenebilir (yükleme express gibi bağımlılıkları da kaydeder accepts ).
Paketleri kaydetme, özellikle iç ağlardaki TFS sunucuları için indirme performansını iyileştirebilir ve ağ bant genişliğini kaydedebilir.
Yukarı akış kaynaklarından paketleri geçersiz kıl
Yukarı akış kaynaklarını etkinleştirdiğinizde, yukarı akış içinde zaten mevcut olan bir paket sürümünün yayınlanmayacağına dikkat etmeniz gerekir. örneğin, NuGet. org ' ı etkinleştirdiğinizde, Newtonsoft.Json 10.0.3 aynı paket sürümü zaten NuGet. org olduğundan paketi yayımlayamazsınız.
Yukarı akış kaynaklarınızdan birinde zaten bulunan bir paket sürümünü yayımlamanız gerekiyorsa, bu yukarı akış kaynağını devre dışı bırakmanız, paketinizi yayımlamanız ve sonra yukarı akış kaynağını yeniden etkinleştirmeniz gerekir.
Not
Yalnızca daha önce yukarı akış üzerinden kaydedilmemiş bir paket sürümü yayımlayabilirsiniz. Yukarı akış kaynağı devre dışı bırakılmış veya kaldırılmış olsa bile kayıtlı paketler akışta kalır.
Sistem durumu
Bir akışta başarısız bir yukarı akış kaynağı varsa, meta veriler artık aynı protokolün paketleri için yenilenemez. Yukarı akış kaynağınızın sistem durumunu görüntülemek için dişli simgesi
seçerek akış ayarlarınızaerişin ve ardından yukarı akış kaynakları' nı seçin.
Herhangi bir hata oluşursa, bir uyarı iletisi görüntülenir. Ayarlar sayfası, yukarı akış kaynaklarından hangisinin başarısız olduğunu da belirtir. Başarısız olan yukarı akış seçildiğinde hatanın nedeni ve nasıl çözülecektir hakkında daha fazla ayrıntı sağlanır.
Not
NuGet. org gibi ortak kayıt defterleri için, bir paketin ortak kayıt defterine gönderildiği ve akışınız tarafından indirileceği zaman arasında 3-6 saat gecikme vardır. Bu gecikme iş zamanlaması ve veri yayılmaya bağlıdır. yukarı akış kaynağı bir Azure Artifacts akışı olduğunda gecikme süresi yoktur.
Çevrimdışı yukarı akış kaynakları
Yukarı akış kaynakları, tüketicilerinizi ve altyapınızı planlanmamış kesintilerden korumanın harika bir yoludur. Bir yukarı akış kaynağından bir paket yüklediğinizde, bu paketin bir kopyası akışınıza kaydedilir. Yukarı akış kaynağı kapalıysa, bakım sırasında veya kullanılabilir değilse, akışınızda ihtiyacınız olan paketlere erişmeye devam edebilirsiniz.
SSS
S: dosyamı, akışımın uplarının birinde görebildiğim halde göremiyorum.
Y: bir yukarı akışa ait paketler yayımlandıktan sonra yakında aşağı akış olarak kullanılabilir. Ancak, paket, aşağı akış akışında paket sürümünün yüklenmesini gerektiren bir kez alındıktan sonra yalnızca akışın Kullanıcı arabiriminde görüntülenir.
S: akış görünümleri nedir?
A: görünümler, geliştiricilerin test edilmiş ve doğrulanan paket sürümlerinin yalnızca geliştirme ve/veya kalite çubuğunu karşılayamamakta olan paketleri dışlamasını sağlar. Daha fazla ayrıntı için bkz. akış görünümleri nedir .
S: yukarı akış olarak yapılandırmak istediğim akışı bulamıyorum musunuz?
Y: akışın sahibinin bir görünümü yukarı akış kaynağı olarak paylaştığınızdan emin olun.