Azure Artifacts Yukarı Akış Kaynakları

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Yukarı akış kaynaklarını kullanarak, çeşitli kaynaklardan gelen paketleri tek bir akışta rahatça depolayabilirsiniz. Bu, yayımladığınız paketleri ve dış akışlardan ve NuGet.org, npmjs.com, Maven Central ve PyPI gibi genel kayıt defterlerinden tüketen paketleri içerir. Yukarı akış kaynaklarını etkinleştirdikten sonra, bu yukarı akış kaynaklarından yüklenen tüm paketler, akışınıza otomatik olarak bir kopya kaydedilir.

Not

Yukarı akışlardan paketleri kaydetmek için Akış ve Yukarı Akış Okuyucusu (Ortak Çalışan) rolüne veya daha yüksek bir role sahip olmanız gerekir. Daha fazla bilgi için bkz . İzinler.

Avantajlar

Yukarı akış kaynaklarını etkinleştirmek, ürününüzün bağımlılıklarını tek bir akış içinde yönetmek için çeşitli avantajlar sunar:

  • Basitlik: Tüm paketlerinizi tek bir akışta yayımladığınızda NuGet.config, npmrc veya settings.xml gibi yapılandırma dosyalarınızı basitleştirir. Yapılandırma dosyanızda yalnızca bir akışla hata ve hata olasılığını azaltarak kurulumunuzu basite alırsınız.

  • Determinizm: Akışınız paket isteklerini sırayla çözümleyerek kodunuzu yeniden oluştururken daha fazla tutarlılık sağlar.

  • Provenance: Akışınız, yukarı akış kaynaklarından kaydettiği paketler hakkındaki bilgileri saklar. Bu, kopya veya kötü amaçlı olabilecek bir sürümü değil, özgün paketi kullandığınızı doğrulamanıza olanak tanır.

  • İçinizin rahat olması: Yukarı akış kaynaklarından yüklenen her paket otomatik olarak akışınıza kaydedilir. Başka bir deyişle, yukarı akış kaynağı devre dışı bırakılsa, kaldırılsa veya bakımdan geçirilse bile, akışınızda bu paketin bir kopyası olduğundan geliştirmeye ve oluşturmaya güvenle devam edebilirsiniz.

En iyi yöntemler - paket tüketicileri

Paket tüketicisi olarak yukarı akış kaynaklarının avantajlarından tam olarak yararlanmak için şu en iyi yöntemleri izleyin:

Yapılandırma dosyanızda tek bir akış kullanın:

Akışınızın belirlenimci bir geri yükleme sağlaması için nuget.config veya .npmrc gibi yapılandırma dosyanızın yukarı akış kaynaklarının etkinleştirildiği tek bir akışa başvurduğunu doğrulayın. Aşağıdaki örneğe bakın:

<packageSources>
  <clear />
  <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" />
</packageSources>

Not

NuGet, uygulanacak seçeneklerin tamamını belirlemek için birkaç yapılandırma dosyası derler. kullanarak <clear />, üst düzey yapılandırma dosyalarında belirtilen diğer tüm paket kaynaklarını etkili bir şekilde yoksayabilirsiniz.

registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/
always-auth=true

Yukarı akış kaynaklarınızı kasıtlı olarak sırala:

Yalnızca nuget.org veya npmjs.com gibi genel kayıt defterlerini kullanıyorsanız, yukarı akış kaynaklarınızın sırası önemli değildir. Akışa yapılan istekler, arama sırası bölümünde ayrıntılarıyla belirtilen sırayı izler.

Ancak, akışların ve genel kayıt defterlerinin bir bileşimini içerebilen birden çok kaynağı yönetirken, her yukarı akış kaynağı akışın yapılandırma ayarlarında listelendiği sırayla aranabilir. Bu durumda, genel kayıt defterlerini yukarı akış kaynakları listesinde ilk sırada yerleştirmenizi öneririz.

Bazı benzersiz senaryolarda, bazı kuruluşlar açık kaynak yazılım (OSS) paketlerini özelleştirmeyi tercih eder. Bu, güvenlik sorunlarını ele almayı, işlevselliği geliştirmeyi veya paketi doğrudan genel bir depodan almak yerine dahili olarak yeniden derlemeyi gerektiren belirli gereksinimleri karşılamayı içerebilir. Kuruluşunuz bu uygulamayı izlerse, bu değiştirilmiş işletim sistemi paketlerini içeren yukarı akış kaynağını genel paket yöneticilerinin önüne yerleştirmeniz önerilir. Bu düzenleme, kuruluşunuzun özelleştirilmiş sürümlerinin kullanılmasını sağlar.

Ö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 bir dizi kullanılabilir paket oluşturmasını sağlar. Daha fazla ayrıntı için bkz . Yukarı akışlar kullanılabilir paketler kümesini nasıl oluşturur?

En iyi yöntemler: akış sahipleri/paket yayımcıları

Akışınızın kolayca yukarı akış kaynağı olarak 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:

Yeni oluşturulan tüm akışlar için varsayılan görünüm, akışınızda yayımlanan veya yukarı akış kaynaklarından kaydedilen tüm paketleri içeren görünümdür @Local .

Yeni yayımlanan paket sürümleri için görünüm gibi diğer görünümleri kullanmak istiyorsanız, paketinizi görünüme @Release yükseltebilir ve ardından bu görünümü paket tüketicileriniz için kullanılabilir hale getirebilirsiniz.

Paket grafı oluşturma:

Paket grafı oluşturmak için akışın varsayılan görünümüne bağlanın ve paylaşmak istediğiniz paketi yükleyin. Paket varsayılan görünüme kaydedildiğinde, kullanmak isteyen kullanıcılar paket grafiğini çözümleyip istenen paketi yükleyebilir. Yukarı akış kaynaklarından gelen paketler, ilgili yukarı akış kaynağı için yapılandırılmış görünüme göre görüntülenir.

Arama sırası

NuGet ve Maven gibi birden çok akışı destekleyen genel paket yöneticileri için akışların sorgulanma sırası bazen belirsiz veya belirsiz olabilir. Örneğin NuGet'te, paralel sorgular yapılandırma dosyasındaki tüm akışlara gönderilir ve yanıtlar ilk gelen ilk çıkar (FIFO) şekilde işlenir.

Yukarı akış kaynakları, akışı ve yukarı akış kaynaklarını aşağıdaki sırayla arayarak bu belirleyici olmayan davranışı ele alır:

  1. Doğrudan akışa yayımlanan paketler.

  2. Yukarı akış kaynağından kaydedilmiş paketler.

  3. Yukarı akış kaynaklarından sağlanan paketler. Her yukarı akış kaynağı, akışın yapılandırmasında listelendiği sırayla aranıyor.

Hızlı arama özelliğinden tam olarak yararlanmak için yapılandırma dosyanıza yalnızca bir akış eklemenizi öneririz.

Not

NuGet Paket Gezgini'ni kullanarak yukarı akış kaynaklarında paketlerin aranması desteklenmez.

Yukarı akış kaynaklarından paketleri kaydetme

Akışınız için yukarı akış kaynaklarını etkinleştirdiğinizde ve bir yukarı akış kaynağından paket yüklediğinizde, bu paketin otomatik bir kopyası akışınıza kaydedilir. Bu uygulama indirme performansını artırır ve ağ bant genişliğini korur.

Örneğin, npm install express gibi bir komut kullanarak paketleri doğrudan yukarı akış kaynağından yükleyebilirsiniz. Alternatif olarak, paketler bir bağımlılık çözümleme işleminin parçası olarak yüklenebilir. İkinci senaryoda express'i yüklemek, kabuller gibi bağımlılıklarını da kaydeder.

Not

Özel yukarı akış kaynakları yalnızca npm paketleri için desteklenir.

Yukarı akış kaynaklarından gelen paketleri geçersiz kılma

Yukarı akış kaynaklarını etkinleştirirken, bir yukarı akış kaynağında zaten var olan bir paket sürümünü yayımlamanın mümkün olmadığını unutmayın. Örneğin, NuGet.org yukarı akışını etkinleştirirseniz Newtonsoft.Json 10.0.3 paketini tam sürüm zaten NuGet.org mevcut olduğundan yayımlayamazsınız.

Yukarı akış kaynaklarınızdan birinde zaten mevcut olan bir paket sürümünü yayımlamanız gerekiyorsa şu adımları izlemeniz gerekir:

  1. İlgili yukarı akış kaynağını devre dışı bırakın.
  2. Paketinizi yayımlayın.
  3. Yukarı akış kaynağını yeniden etkinleştirin.

Not

Paket sürümleri sabittir. Yukarı akış kaynağı devre dışı bırakılsa veya kaldırılsa bile kaydedilen paketler akışta kalır.

Yukarı akış kaynaklarının sistem durumu

Akışın yukarı akış kaynağı başarısız olursa, aynı protokoldeki paketlere yönelik meta veriler artık yenilenemez. Yukarı akış kaynaklarınızın sistem durumunu denetlemek için şu adımları izleyin:

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Yapıtlar'ı seçin ve ardından açılan menüden akışınızı seçin.

  3. Dişli simgesini dişli simgesiseçerek Akış ayarlarınıza gidin ve yukarı akış kaynakları'nı seçin.

    Yukarı akış kaynaklarının son eşitleme durumunu gösteren ekran görüntüsü.

  4. Herhangi bir hata oluşursa bir uyarı iletisi görüntülenir. Başarısız durumuna tıklanması, hatanın nedeni ve nasıl çözüleceğiyle ilgili yönergeler de dahil olmak üzere ek ayrıntılar sağlar.

    Eşitleme hatasının ayrıntılarını gösteren ekran görüntüsü.

Not

NuGet.org gibi genel kayıt defterleri söz konusu olduğunda, paketin genel kayıt defterine gönderilmesiyle indirilebilir duruma gelmesi arasında 3-6 saatlik bir gecikme vardır. Bu gecikme, iş zamanlamasına ve veri yayma işlemine bağlıdır. Ancak yukarı akış kaynağı bir Azure Artifacts akışı olduğunda gecikme süresi genellikle birkaç dakikadan fazla değildir.

Çevrimdışı yukarı akış kaynakları

Yukarı akış kaynakları, tüketicileriniz ve altyapınız için değerli bir koruma görevi görür ve bunları öngörülemeyen kesintilere karşı korur. Yukarı akış kaynağından bir paket yüklediğinizde, bu paketin bir kopyası akışınıza kaydedilir. Yukarı akış kaynağının kapalı kalma süresiyle karşılaşması, bakımdan geçmesi veya geçici olarak kullanılamaz duruma gelmesi durumunda, akışınızdan gerekli paketleri almaya ve geliştirmeye devam edebilirsiniz.

SSS

S: Akışımın yukarı akışlarından birinde göremesem bile paketimi bulamıyorum?

Y: Yukarı akış kaynaklarından gelen paketler yayımlanır yayımlanmaz aşağı akışa sunulur. Ancak paket yalnızca alındıktan sonra akışınızın kullanıcı arabiriminde görünür. Akış ve Yukarı Akış Okuyucusu (Collaborator) veya üzeri bir sürüm yukarı akıştan paket sürümünü yüklediğinde alım tetikleniyor.

S: Akış görünümleri nedir?

Y: Görünümler, geliştiricilerin test edilmiş ve doğrulanmış paket sürümlerinin bir alt kümesini seçmeli olarak paylaşmasına olanak sağlar; bu, hala geliştirme aşamasında olan veya kalite ölçütlerini karşılamamış paketler hariçtir. Daha fazla bilgi için bkz . Akış görünümleri nedir?

S: Yukarı akış kaynağı olarak yapılandırmak istediğim akışı bulamıyorum?

Y: Akışın sahibinin bir görünümü yukarı akış kaynağı olarak paylaştığından emin olun.

S: Akış Okuyucusu rolüne sahip bir kullanıcı yukarı akış kaynağından paketleri indirebilir mi?

Y: Hayır. Azure Artifacts akışında Akış Okuyucusu rolüne sahip bir kullanıcı yalnızca akışa kaydedilmiş paketleri indirebilir. Akış ve Yukarı Akış Okuyucusu (Ortak Çalışan), Akış Yayımcısı (Katkıda Bulunan) veya Akış Sahibi bu paketleri yukarı akıştan yüklediğinde paketler akışa kaydedilir.

S: Kullanıcı yukarı akış kaynağından kaydedilmiş bir paketi sildiğinde veya yayımdan kaldırdığında ne olur?

Y: Paket akıştan indirilemez hale gelir ve sürüm numarası kalıcı olarak ayrılır. Ayrıca, paket artık yukarı akış kaynağından kaydedilmez. Paketin önceki ve sonraki sürümleri etkilenmez.

S: Kullanıcı yukarı akış kaynağından kaydedilmiş bir paketi kullanımdan kaldırdığında ne olur?

Y: Kullanıcı paketi kullanımdan kaldırdığında, paketin meta verilerine bir uyarı iletisi eklenir ve bu ileti paket akıştan görüntülendiğinde veya yüklendiğinde görüntülenir.