Upstream-bronnen voor Azure-artefacten

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

Met behulp van upstream-bronnen kunt u gemakkelijk pakketten uit verschillende bronnen opslaan in één feed. Dit omvat pakketten die u publiceert en die u gebruikt van externe feeds en openbare registers, zoals NuGet.org, npmjs.com, Maven Central en PyPI. Zodra u upstream-bronnen hebt ingeschakeld, wordt elk pakket dat is geïnstalleerd vanuit deze upstream-bronnen, automatisch opgeslagen in uw feed.

Notitie

Als u pakketten wilt opslaan vanuit upstreams, moet u de rol Feed en Upstream Reader (Samenwerker) of hoger hebben. Zie Machtigingen voor meer informatie.

Voordelen

Het inschakelen van upstream-bronnen biedt verschillende voordelen voor het beheren van de afhankelijkheden van uw product binnen één feed:

  • Eenvoud: wanneer u al uw pakketten naar één feed publiceert, vereenvoudigt u uw configuratiebestanden zoals NuGet.config, npmrc of settings.xml. Met slechts één feed in uw configuratiebestand vermindert u de kans op fouten en fouten, waardoor uw installatie wordt gestreamd.

  • Determinisme: uw feed lost pakketaanvragen op volgorde op, wat resulteert in meer consistentie bij het herbouwen van uw code.

  • Herkomst: Uw feed bewaart informatie over de pakketten die zijn opgeslagen uit upstream-bronnen. Hiermee kunt u controleren of u het oorspronkelijke pakket gebruikt en niet een kopie of een mogelijk schadelijke versie.

  • Gemoedsrust: elk pakket dat is geïnstalleerd vanuit upstream-bronnen, wordt automatisch opgeslagen in uw feed. Dit betekent dat zelfs als de upstream-bron is uitgeschakeld, verwijderd of onderhoud ondergaat, u met vertrouwen kunt blijven ontwikkelen en bouwen omdat u een kopie van dat pakket in uw feed hebt.

Aanbevolen procedures - pakketgebruikers

Volg deze aanbevolen procedures om optimaal te profiteren van de voordelen van upstream-bronnen als pakketgebruiker:

Gebruik één feed in uw configuratiebestand:

Zorg ervoor dat uw configuratiebestand, zoals nuget.config of .npmrc, slechts één feed verwijst met de upstream-bronnen ingeschakeld om uw feed een deterministische herstelbewerking te geven. Zie het voorbeeld hieronder:

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

Notitie

NuGet compileert verschillende configuratiebestanden om de volledige set opties te bepalen die moeten worden toegepast. Met behulp van <clear />kunt u alle andere pakketbronnen die zijn opgegeven in configuratiebestanden op een hoger niveau, effectief negeren.

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

Bestel uw upstream-bronnen opzettelijk:

Als u uitsluitend openbare registers gebruikt, zoals nuget.org of npmjs.com, is de volgorde van uw upstream-bronnen niet relevant. Aanvragen voor de feed volgen de volgorde die wordt beschreven in de zoekvolgordesectie .

Wanneer u echter meerdere bronnen beheert, waaronder een combinatie van feeds en openbare registers, wordt elke upstream-bron doorzocht in de volgorde waarin deze wordt vermeld in de configuratie-instellingen van de feed. In dit geval raden we u aan de openbare registers eerst in de lijst met upstream-bronnen te plaatsen.

In sommige unieke scenario's kiezen bepaalde organisaties ervoor om OPENSOURCE-softwarepakketten (OSS) aan te passen. Dit kan betrekking hebben op beveiligingsproblemen, het verbeteren van de functionaliteit of het voldoen aan specifieke vereisten die het pakket intern moeten herbouwen in plaats van het pakket rechtstreeks te verkrijgen vanuit een openbare opslagplaats. Als uw organisatie deze praktijk volgt, is het raadzaam om de upstream-bron met deze gewijzigde OSS-pakketten vóór de openbare pakketbeheerders te plaatsen. Deze regeling zorgt ervoor dat de aangepaste versies van uw organisatie worden gebruikt.

Gebruik de voorgestelde standaardweergave:

Wanneer u een externe feed toevoegt als een upstream-bron, moet u de weergave van de feed selecteren. Hierdoor kunnen de upstream-bronnen een set beschikbare pakketten samenstellen. Zie Hoe upstreams de set beschikbare pakketten samenstellen voor meer informatie.

Aanbevolen procedures: eigenaren/pakketuitgevers van feed

Als u ervoor wilt zorgen dat uw feed eenvoudig is geconfigureerd als een upstream-bron, kunt u overwegen de volgende aanbevolen procedures toe te passen:

Gebruik de standaardweergave:

De standaardweergave voor alle nieuw gemaakte feeds is de @Local weergave, die alle pakketten bevat die zijn gepubliceerd in uw feed of die zijn opgeslagen vanuit upstream-bronnen.

Als u andere weergaven wilt gebruiken, zoals een weergave voor nieuw uitgebrachte pakketversies, kunt u het pakket promoveren naar de @Release weergave en die weergave vervolgens beschikbaar maken voor uw pakketgebruikers.

Maak een pakketgrafiek:

Als u een pakketgrafiek wilt maken, maakt u gewoon verbinding met de standaardweergave van de feed en installeert u het pakket dat u wilt delen. Wanneer het pakket wordt opgeslagen in de standaardweergave, kunnen gebruikers die het pakket willen gebruiken, de pakketgrafiek oplossen en het gewenste pakket installeren. Pakketten van upstream-bronnen worden weergegeven op basis van de geconfigureerde weergave voor de bijbehorende upstream-bron.

Zoekvolgorde

Voor openbare pakketbeheerders die ondersteuning bieden voor meerdere feeds zoals NuGet en Maven, kan de volgorde waarin feeds worden opgevraagd soms onduidelijk of niet-deterministisch zijn. In NuGet worden bijvoorbeeld parallelle query's verzonden naar alle feeds in het configuratiebestand en worden de antwoorden op een fifo-manier (first-in, first-out) verwerkt.

Upstream-bronnen pakken dit niet-deterministisch gedrag aan door de feed en de upstream-bronnen ervan in de volgende volgorde te doorzoeken:

  1. Pakketten die rechtstreeks naar de feed zijn gepubliceerd.

  2. Pakketten die zijn opgeslagen vanuit een upstream-bron.

  3. Pakketten die beschikbaar zijn vanuit upstream-bronnen. Elke upstream-bron wordt doorzocht in de volgorde waarin deze wordt vermeld in de configuratie van de feed.

Als u optimaal gebruik wilt maken van de functie voor snel zoeken, raden we u aan slechts één feed op te nemen in uw configuratiebestand.

Notitie

Het zoeken naar pakketten in upstream-bronnen met behulp van NuGet Package Explorer wordt niet ondersteund.

Pakketten opslaan vanuit upstream-bronnen

Wanneer u upstream-bronnen voor uw feed inschakelt en een pakket installeert vanuit een upstream-bron, wordt een automatische kopie van dat pakket opgeslagen in uw feed. Deze procedure verbetert de downloadprestaties en bespaart netwerkbandbreedte.

U kunt bijvoorbeeld pakketten rechtstreeks vanuit de upstream-bron installeren met behulp van een opdracht zoals npm install express. Pakketten kunnen ook worden geïnstalleerd als onderdeel van een proces voor afhankelijkheidsoplossing. In het laatste scenario slaat de installatie van Express ook de afhankelijkheden op, zoals accepteren.

Notitie

Aangepaste upstream-bronnen worden alleen ondersteund voor npm-pakketten.

Pakketten van upstream-bronnen overschrijven

Wanneer u upstream-bronnen inschakelt, is het belangrijk te weten dat het publiceren van een pakketversie die al bestaat in een upstream-bron niet mogelijk is. Als u bijvoorbeeld de NuGet.org upstream inschakelt, kunt u het newtonsoft.Json 10.0.3-pakket niet publiceren, omdat die exacte versie al in NuGet.org bestaat.

Als u een pakketversie wilt publiceren die al aanwezig is in een van uw upstream-bronnen, moet u de volgende stappen uitvoeren:

  1. Schakel de relevante upstream-bron uit.
  2. Publiceer uw pakket.
  3. Schakel de upstream-bron opnieuw in.

Notitie

Pakketversies zijn onveranderbaar. Opgeslagen pakketten blijven in de feed staan, zelfs als de upstream-bron is uitgeschakeld of verwijderd.

Status van Upstream-bronnen

Als een feed een mislukte upstream-bron heeft, kunnen de metagegevens voor pakketten van hetzelfde protocol niet meer worden vernieuwd. Volg deze stappen om de status van uw upstream-bronnen te controleren:

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens uw feed in de vervolgkeuzelijst.

  3. Selecteer het tandwielpictogram tandwielpictogram om naar uw feedinstellingen te navigeren en selecteer vervolgens Upstream-bronnen.

    Een schermopname van de upstream-bronnen die de laatste synchronisatiestatus hebben.

  4. Als er fouten optreden, wordt er een waarschuwingsbericht weergegeven. Als u op de status Mislukt klikt, krijgt u aanvullende informatie, waaronder de oorzaak van de fout en instructies voor het oplossen ervan.

    Een schermopname met details van de synchronisatiefout.

Notitie

In het geval van openbare registers zoals NuGet.org, is er een vertraging van 3 tot 6 uur tussen de tijd dat een pakket naar het openbare register wordt gepusht en wanneer het beschikbaar is voor downloaden. Deze vertraging is afhankelijk van tijdsinstellingen en gegevensdoorgifte van taken. Wanneer de upstream-bron echter een Azure Artifacts-feed is, is de latentie meestal niet langer dan een paar minuten.

Offline upstream-bronnen

Upstream-bronnen dienen als een waardevolle bescherming voor uw consumenten en infrastructuur, waardoor ze worden afgeschermd tegen onvoorziene storingen. Wanneer u een pakket installeert vanuit een upstream-bron, wordt een kopie van dat pakket opgeslagen in uw feed. Als de upstream-bron downtime ondergaat, onderhoud ondergaat of tijdelijk niet beschikbaar is, kunt u nog steeds de benodigde pakketten ophalen uit uw feed en uw ontwikkeling voortzetten.

Veelgestelde vragen

V: Ik kan mijn pakket niet vinden, ook al zie ik het in een van de upstreams van mijn feed?

A: Pakketten van upstream-bronnen worden downstream beschikbaar zodra ze zijn gepubliceerd. Het pakket wordt echter alleen weergegeven in de gebruikersinterface van uw feed nadat het is opgenomen. Opname wordt geactiveerd wanneer een feed en upstreamlezer (samenwerker) of hoger de pakketversie van upstream installeert.

V: Wat zijn feedweergaven?

A: Met weergaven kunnen ontwikkelaars selectief een subset van pakketversies delen die zijn getest en gevalideerd, met uitzondering van pakketten die nog in ontwikkeling zijn of die niet voldoen aan de kwaliteitscriteria. Zie Wat zijn feedweergaven voor meer informatie.

V: Ik kan de feed die ik wil configureren niet vinden als een upstream-bron?

A: Zorg ervoor dat de eigenaar van de feed een weergave deelt als een upstream-bron.

V: Kan een gebruiker met de rol FeedLezer pakketten downloaden van een upstream-bron?

A: Nee. Een gebruiker met de rol Feedlezer in een Azure Artifacts-feed kan alleen pakketten downloaden die zijn opgeslagen in de feed. Pakketten worden opgeslagen in de feed wanneer een feed en upstreamlezer (samenwerker), een feeduitgever (inzender) of een feedeigenaar deze pakketten vanuit upstream installeren.

V: Wat gebeurt er wanneer een gebruiker een pakket verwijdert of ongedaan maakt dat is opgeslagen uit een upstream-bron?

A: Het pakket is niet meer beschikbaar voor downloaden uit de feed en het versienummer is permanent gereserveerd. Daarnaast wordt het pakket niet meer opgeslagen vanuit de upstream-bron. Eerdere en latere versies van het pakket blijven ongewijzigd.

V: Wat gebeurt er wanneer een gebruiker een pakket verwijdert dat is opgeslagen uit een upstream-bron?

A: Wanneer een gebruiker een pakket verwijdert, wordt er een waarschuwingsbericht toegevoegd aan de metagegevens van het pakket, die wordt weergegeven wanneer het pakket wordt bekeken of geïnstalleerd vanuit de feed.