Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Bewaarbeleid bepaalt hoe lang pijplijnuitvoeringen, klassieke releases en testgegevens worden bewaard in Azure DevOps. Met deze instellingen kunt u het opslaggebruik, de naleving en de traceerbaarheid in balans houden door te definiëren wanneer u oudere gegevens moet verwijderen en welke gegevens u langer moet bewaren. In dit artikel worden de beschikbare bewaaropties uitgelegd en hoe deze van toepassing zijn op pijplijnen, releases en tests.
Vereisten
| Product | Requirements |
|---|---|
| Azure DevOps | - Een Azure DevOps organisatie. - Een Azure DevOps project. |
| toestemmingen | - Standaard kunt u bewaarbeleid beheren als u lid bent van de groepen Inzenders, Build Admins, Project Admins of Release Admins. - Voor het beheren van bewaarbeleid hebt u een van de volgende abonnementen nodig: Enterprise, Test Professional of MSDN Platforms. - U kunt ook maandelijks Azure Test Plans toegang aanschaffen en het toegangsniveau Basic + Test plans toewijzen. Zie Toegang testen op gebruikersrol voor meer informatie. |
Belangrijk
Azure-pipelines biedt geen ondersteuning meer voor bewaarbeleid per pijplijn. U wordt aangeraden bewaarregels op projectniveau te gebruiken.
Bewaarbeleid configureren
Voer de volgende stappen uit om de pagina's met bewaarinstellingen in uw project te openen en het beleidsgebied te kiezen dat u wilt beheren:
Meld u aan bij uw Azure DevOps-project.
Selecteer
>Projectinstellingen.Selecteer een van de volgende opties:
- Selecteer onder Pijplijneninstellingen voor het configureren van retentie voor uitvoeringen, artefacten, symbolen, bijlagen en pull-aanvraaguitvoeringen.
- Selecteer onder Pijplijnende optie Releaseretentie om bewaarinstellingen voor releases te configureren, inclusief wanneer releases worden verwijderd of permanent worden vernietigd.
- Selecteer onder TestenRetentie om te configureren hoe lang handmatige en geautomatiseerde testuitvoeringen worden bewaard.
Bewaarbeleid voor pijplijnuitvoeringen
In de meeste gevallen hoeft u voltooide runs niet op onbepaalde tijd te behouden. Met bewaarbeleid voor het uitvoeren kunt u definiëren hoe lang uitvoeringen en gerelateerde gegevens worden bewaard voordat ze worden verwijderd.
Ga naar het
>Instellingen tabblad van de instellingen van uw project.Selecteer Instellingen in de sectie Pijplijnen:
- Stel in hoeveel dagen artefacten, symbolen en bijlagen moeten worden bewaard.
- Stel in hoeveel dagen de uitvoeringen moeten worden bewaard.
- Stel in hoeveel dagen pull-aanvragen moeten worden uitgevoerd.
- Stel het aantal recente uitvoeringen in dat moet worden bewaard voor elke pijplijn.
Waarschuwing
Azure DevOps biedt geen ondersteuning meer voor bewaarregels per pijplijn. De enige manier om bewaarbeleid voor YAML- en klassieke pijplijnen te configureren, is via de eerder beschreven projectinstellingen. U kunt bewaarbeleid per pijplijn niet meer configureren.
Het aantal recente uitvoeringen dat voor elke pijplijninstelling moet worden bewaard , wordt anders geïnterpreteerd op basis van het type opslagplaats:
Azure-opslagplaatsen: Azure-pipelines behoudt het geconfigureerde aantal meest recente uitvoeringen voor de standaardvertakking van pipeline en voor elke beveiligde vertakking in de opslagplaats. Een beveiligde vertakking is een vertakking met vertakkingsbeleid dat is geconfigureerd.
Denk bijvoorbeeld aan een opslagplaats met twee vertakkingen:
mainenrelease. Als de standaardbranch van de pijplijnmainis enreleaseeen vertakkingsbeleid heeft, wordtreleasebeschouwd als een beveiligde vertakking. Als u retentie configureert om drie uitvoeringen te behouden, zal Azure-pipelines de meest recente drie uitvoeringen voormain, de meest recente drie uitvoeringen voorreleaseen de meest recente drie uitvoeringen voor de gehele pijplijn (ongeacht de vertakking) behouden.In het volgende voorbeeld wordt ervan uitgegaan dat de meest recente uitvoering eerst wordt vermeld. Hier ziet u welke uitvoeringen worden bewaard wanneer u retentie configureert om de laatste drie uitvoeringen te behouden (waarbij de instelling op basis van dagen wordt genegeerd).
Rennen # Filiaal Behouden/niet behouden Waarom? Voer 10 tests uit main Behouden Nieuwste 3 voor hoofd- en nieuwste 3 voor pijplijn Uitvoeren 9 branch1 Behouden De laatste 3 voor de pijplijn Voer 8 uit branch2 Behouden De laatste 3 voor de pijplijn Uitvoer 7 main Behouden Nieuwste 3 voor hoofdpagina Uitvoeren 6 main Behouden Nieuwste 3 voor hoofdpagina Voer 5 uit main Niet behouden Niet de nieuwste 3 voor hoofd- of pijplijn Uitvoeren 4 main Niet behouden Niet de nieuwste 3 voor hoofd- of pijplijn Run 3 branch1 Niet behouden Niet de nieuwste 3 voor hoofd- of pijplijn Uitvoering 2 loslaten Behouden Nieuwste 3 ter publicatie Voer 1 uit main Niet behouden Niet de nieuwste 3 voor hoofd- of pijplijn Het aantal dagen dat moet worden bewaard, wordt berekend vanaf de datum waarop de uitvoering is voltooid. Er zijn bijvoorbeeld twee uitvoeringen op een hoofdtak op 19 januari. De run die later is voltooid, wordt bewaard.
Alle andere Git-opslagplaatsen: Azure-pipelines behoudt het geconfigureerde aantal meest recente uitvoeringen voor de hele pijplijn.
Team Foundation Version Control (TFVC): Azure-pipelines behoudt het geconfigureerde aantal meest recente uitvoeringen voor de hele pijplijn, ongeacht de vertakking.
Welke onderdelen van de uitvoering worden verwijderd
Wanneer een uitvoering wordt verwijderd, worden de volgende gegevens verwijderd:
- Logboeken
- Alle pijplijn- en build-artefacten
- Alle symbolen
- Binaire bestanden
- Testresultaten
- Metagegevens uitvoeren
- Bronlabels (TFVC) of tags (Git)
Retentie van pijplijnuitvoering is niet van toepassing op Universal Packages, NuGet, npm en andere pakketten.
Wanneer worden runs verwijderd
Een uitvoering wordt verwijderd als aan alle volgende voorwaarden wordt voldaan:
- Het overschrijdt het aantal dagen dat is geconfigureerd in de bewaarinstellingen.
- Het is geen van de recente uitvoeringen zoals geconfigureerd in de bewaarinstellingen.
- Deze is niet gemarkeerd voor onbepaalde retentie.
- Het wordt niet bewaard door een release.
Bewaarbeleid wordt één keer per dag verwerkt. De verwerkingstijd varieert omdat het werk gedurende de dag wordt verdeeld voor taakverdeling. U kunt dit schema niet wijzigen.
Automatisch de retentielease instellen voor pijplijnuitvoeringen
Met retentieleases kunt u de levensduur van pijplijnuitvoeringen verlengen of beheren na geconfigureerde bewaarperioden. U kunt leases voor een pijplijnuitvoering toevoegen of verwijderen met behulp van de Lease-API. U kunt deze API vanuit een pijplijn aanroepen met behulp van een script en vooraf gedefinieerde variabelen voor runId en definitionId.
U kunt een lease voor een specifieke duur instellen. U kunt bijvoorbeeld een run behouden die voor een kortere periode wordt uitgerold in een testomgeving. U kunt een uitvoering die gedurende langere tijd in productie wordt geïmplementeerd, behouden.
Handmatig retentielease instellen voor pijplijnruns
U kunt een pijplijnuitvoering handmatig behouden via het menu Meer acties op de pagina Details van pijplijnuitvoering .
Een uitvoering verwijderen
U kunt uitvoeringen verwijderen uit het menu Meer acties op de pagina met details van de pijplijnuitvoering.
Notitie
Als bewaarbeleidsregels momenteel van toepassing zijn op de uitvoering, moet u deze verwijderen voordat u de uitvoering kunt verwijderen. Zie voor instructies details van pijplijnuitvoering: Een uitvoering verwijderen.
Bewaarbeleid voor releases
Retentiebeleid voor klassieke releasepijplijnen bepaalt hoe lang een release en de bijbehorende run worden bewaard. Met deze beleidsregels kunt u beide configureren:
- Het aantal dagen dat elke release moet worden bewaard nadat deze voor het laatst is gewijzigd of geïmplementeerd.
- Het minimale aantal releases dat voor elke pijplijn moet worden bewaard.
De retentietimer wordt opnieuw ingesteld telkens wanneer een release wordt gewijzigd of geïmplementeerd in een stage. De instelling voor minimale releases heeft voorrang op de instelling op basis van dagen. Als u bijvoorbeeld het minimum instelt op drie releases, blijven de drie meest recente releases behouden, ongeacht het aantal dagen dat is geconfigureerd. U kunt deze releases nog steeds handmatig verwijderen wanneer u ze niet meer nodig hebt. Zie de veelgestelde vragen verderop in dit artikel voor meer informatie.
YAML en buildpipelines maken gebruik van hetzelfde bewaarbeleid voor runs. U kunt deze instellingen weergeven onder Project instellingen>Pipelines>Settings.
Beleid voor het bewaren van wereldwijde releases
In Azure DevOps Services kunt u deze instellingen bekijken, maar u kunt ze niet wijzigen op projectniveau.
U kunt de algemene bewaarinstellingen voor release bekijken via de Bewaarretentiepagina van uw project Project:
- Maximaal bewaarbeleid: definieert de bovengrens voor hoe lang u releases in alle release-pijplijnen kunt bewaren. Auteurs van pijplijnen kunnen geen retentie buiten deze limiet configureren.
- Standaardretentiebeleid: definieert de standaardretentiewaarden die worden toegepast op release-pijplijnen. Pijplijnauteurs kunnen deze standaardinstellingen overschrijven.
- Permanente vernietiging van releases: bepaalt hoe lang verwijderde releases worden bewaard vóór permanente verwijdering. Afzonderlijke release-pijplijnen kunnen dit beleid niet overschrijven.
Beleid voor het bewaren van wereldwijde releases
Als u Azure DevOps Server on-premises gebruikt, kunt u de standaardinstellingen en maximumwaarden op projectniveau configureren voor het bewaren van de release. U kunt ook instellen wanneer verwijderde releases permanent worden vernietigd. (Ze worden verwijderd uit het tabblad Verwijderd in Build Explorer.)
- Maximaal bewaarbeleid: definieert de bovengrens voor hoe lang u releases in alle release-pijplijnen kunt bewaren. Auteurs van pijplijnen kunnen geen retentie buiten deze limiet configureren.
- Standaardretentiebeleid: definieert de standaardretentiewaarden die worden toegepast op release-pijplijnen. Pijplijnauteurs kunnen deze standaardinstellingen overschrijven.
- Permanente vernietiging van releases: bepaalt hoe lang verwijderde releases worden bewaard vóór permanente verwijdering. Afzonderlijke release-pijplijnen kunnen dit beleid niet overschrijven.
Bewaarbeleid op verzamelingsniveau instellen
Als u een on-premises server gebruikt, kunt u ook retentie op verzamelingsniveau configureren met aangepaste regels. Deze instellingen zijn van toepassing op klassieke build-pijplijnen en definiëren de standaard- en maximumretentiewaarden voor de verzameling.
Gebruik de taak Bestanden kopiëren om gegevens langer op te slaan
Als u de build-uitvoer langer wilt bewaren dan de geconfigureerde bewaarperiode, kopieert u deze naar uw eigen opslaglocatie met behulp van de taak Bestanden kopiëren.
Gebruik Bestanden kopiëren in plaats van build-artifacten publiceren omdat gegevens die zijn gepubliceerd als build-artifacten nog steeds onderhevig zijn aan retentie-opschoning.
Veelgestelde vragen
Als ik een uitvoering of een release aanmerk die voor onbepaalde tijd moet worden bewaard, is het bewaarbeleid dan nog steeds van toepassing?
Nee Het bewaarbeleid van de pijplijn en de maximumlimieten die door de beheerder zijn ingesteld, worden niet toegepast wanneer u een afzonderlijke uitvoering of release markeert die voor onbepaalde tijd moet worden bewaard. Het blijft totdat je ermee stopt het blijvend te behouden.
Hoe kan ik aangeven dat uitvoeringen die zijn geïmplementeerd in productie langer moeten worden bewaard?
Als u klassieke releases gebruikt om in productie te implementeren, past u de bewaarperiode op de release-pijplijn aan. Stel in hoeveel dagen u releases die naar productie zijn gereleaset wilt behouden, en geef aan dat de uitvoeringen die aan deze releases zijn gekoppeld eveneens bewaard blijven. Deze instelling overschrijft het beleid voor het bewaren van uitvoeringen.
Als u YAML-pijplijnen met meerdere fasen gebruikt, kunt u retentie alleen configureren in projectinstellingen. U kunt retentie niet configureren per implementatieomgeving.
Ik heb geen runs gemarkeerd die voor onbepaalde tijd moeten worden bewaard, maar er worden veel runs bewaard. Hoe kan ik dit gedrag voorkomen?
Dit gedrag kan optreden vanwege een van de volgende redenen:
- Iemand in uw project heeft de runs gemarkeerd voor onbepaalde bewaring.
- Een release verbruikt de uitvoeringen en de release bevat een bewaarvergrendeling op deze uitvoeringen. Pas het bewaarbeleid voor de release aan zoals eerder uitgelegd.
Als de uitvoeringen niet meer nodig zijn of als de releases die ze behouden, al zijn verwijderd, kunt u de uitvoeringen handmatig verwijderen.
Hoe werkt de instelling voor het minimale aantal releases dat moet worden bewaard?
De minimumreleases om de waarde te behouden , worden gedefinieerd op faseniveau. Azure DevOps behoudt altijd dat aantal recent geïmplementeerde releases voor de fase, zelfs als ze buiten de bewaarperiode zijn. Een release telt alleen voor dit minimum wanneer de implementatie naar die fase wordt gestart. Zowel geslaagde als mislukte implementaties worden geteld. Releases die wachten op goedkeuring, worden niet meegeteld.
Hoe wordt de bewaarperiode bepaald wanneer de release wordt geïmplementeerd in meerdere fasen met verschillende bewaarperioden?
De laatste bewaarperiode wordt bepaald door de dagen voor het bewaren van instellingen voor alle fasen waarin de release wordt geïmplementeerd, met behulp van de maximumwaarde tussen deze fasen. Minimale releases die moeten worden bewaard , zijn fasespecifiek en worden niet gewijzigd op basis van of een release is geïmplementeerd in een of meerdere fasen. Gekoppelde artefacten behouden zijn alleen van toepassing wanneer een release wordt geïmplementeerd in een fase waarin deze optie is ingeschakeld.
Ik heb een fase verwijderd waarvoor ik een aantal oude uitgaven heb. Welke bewaarperiode wordt in aanmerking genomen voor deze case?
Nadat een fase is verwijderd, zijn de bewaarinstellingen op faseniveau niet meer van toepassing. In dat geval gebruikt Azure DevOps de standaardretentie-instellingen op projectniveau.
Mijn organisatie vereist dat we builds en releases langer bewaren dan is toegestaan in de instellingen. Hoe kan ik een langere retentie aanvragen?
Als u een uitvoering of release langer wilt bewaren dan de geconfigureerde bewaarlimieten, markeert u deze voor onbepaalde tijd. Er is geen instelling om handmatig een langere bewaarperiode te configureren. Neem voor hulp contact op met Azure DevOps Ondersteuning.
U kunt OOK REST API's gebruiken om uitvoeringsinformatie en artefacten te downloaden en deze vervolgens op te slaan in uw eigen opslagaccount of artefactopslagplaats.
Ik verloor wat punten. Is er een manier om ze terug te krijgen?
Als u denkt dat processen verloren zijn gegaan vanwege een servicefout, maakt u onmiddellijk een ondersteuningsaanvraag aan. Als een builddefinitie meer dan een week eerder handmatig is verwijderd, kunt u deze niet herstellen. Als runs zijn verwijderd zoals verwacht door het bewaarbeleid, kunt u ze niet herstellen.
Hoe gebruik ik de build.Cleanup-functie van agents?
Als u de Build.Cleanup mogelijkheid voor agents instelt, worden opschoontaken alleen naar die agents gerouteerd, waardoor andere agents beschikbaar blijven voor gewoon pijplijnwerk. Wanneer een pijplijnuitvoering wordt verwijderd, worden artefacten die buiten Azure DevOps zijn opgeslagen, opgeruimd via een agenttaak. Als opschoontaken uw pool overbelasten, wijst u een subset van agents aan als opschoonagents. Wanneer bij agenten Build.Cleanup is ingesteld, voeren alleen die agenten opschoningstaken uit. Als u deze instelling wilt inschakelen, gaat u naar Agent>mogelijkheden en stel Build.Cleanup in op 1.
Wat gebeurt er met bestandsshareartefacten wanneer de build wordt verwijderd?
Wanneer een build met bestandshare-artifacten wordt verwijderd, wordt een nieuwe build-taak klaargezet op een buildagent om die bestanden op te schonen. Er wordt een agent gekozen om deze taak uit te voeren op basis van de volgende criteria:
- Is er een agent beschikbaar met
Build.Cleanupmogelijkheid? - Is de agent die de build heeft uitgevoerd beschikbaar?
- Is er een agent uit dezelfde pool beschikbaar?
- Is er een agent uit een vergelijkbare pool beschikbaar?
- Is er een agent beschikbaar?
Worden geautomatiseerde testresultaten die worden gepubliceerd als onderdeel van een release bewaard totdat de release wordt verwijderd?
Testresultaten die in een releasefase worden gepubliceerd, worden bewaard volgens het bewaarbeleid voor testen, niet het bewaarbeleid voor de release. Als u testresultaten wilt behouden zolang de release is verstreken, stelt u automatische bewaarperiode voor testuitvoering in Project-instellingen in op Never delete. Deze instelling zorgt ervoor dat testresultaten alleen worden verwijderd wanneer de release wordt verwijderd.
Worden handmatige testresultaten verwijderd?
Nee Handmatige testresultaten worden niet verwijderd.
Hoe kan ik mijn labels of tags voor versiebeheer behouden?
Als labels of tags moeten worden bewaard nadat een build is verwijderd, past u deze toe in een pijplijntaak, voegt u deze handmatig toe buiten de pijplijn of behoudt u de build voor onbepaalde tijd.
Belangrijk
Versiebeheerlabels of -tags die worden toegepast tijdens een build-pijplijn die niet automatisch door de taak Bronnen worden gemaakt, blijven behouden, zelfs als de build wordt verwijderd. Labels of tags die automatisch door de taak Bronnen tijdens een build worden gemaakt, worden behandeld als buildartefacten en worden samen met de build verwijderd.
Wat gebeurt er met pijplijnen die worden gebruikt in andere pijplijnen?
Klassieke releases behouden pijplijnen die ze automatisch gebruiken.
Wat gebeurt er met pijplijnen die worden gebruikt in andere pijplijnen?
Klassieke releases behouden pijplijnen die ze automatisch gebruiken. Als u YAML gebruikt, kunt u ook een multi-stage YAML-pijplijn maken om uw release weer te geven en daarin een andere YAML-pijplijn als resource te gebruiken. De resourcepijplijn wordt automatisch bewaard zolang de release-pijplijn behouden blijft.