Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Azure DevOps Services
En pipeline består av steg. En pipelineförfattare kan styra om en fas ska köras genom att definiera villkor på fasen. Ett annat sätt att styra om och när en fas ska köras är genom godkännanden och kontroller.
Godkännanden och andra kontroller definieras inte i yaml-filen. Användare som ändrar yaml-pipelinefilen kan inte ändra de kontroller som utförs innan en fas påbörjas. Administratörer av resurser hanterar kontroller med hjälp av webbgränssnittet för Azure Pipelines.
Pipelines förlitar sig på resurser som miljöer, tjänstanslutningar, agentpooler, variabelgrupper och säkra filer. Kontroller gör det möjligt för resursägaren att kontrollera om och när en fas i en pipeline kan förbruka en resurs. Som ägare av en resurs kan du definiera kontroller som måste uppfyllas innan en fas som förbrukar resursen kan starta. En manuell godkännandekontroll i en miljö säkerställer till exempel att distributionen till den miljön endast sker efter att den utsedda användaren har granskat de ändringar som distribueras.
En fas kan bestå av många jobb och varje jobb kan förbruka flera resurser. Innan körningen av en fas kan påbörjas måste alla kontroller av alla resurser som används i den fasen vara uppfyllda. Azure Pipelines pausar körningen av en pipeline före varje steg och väntar tills alla väntande kontroller har slutförts.
Det finns fem kategorier av godkännanden och kontroller och de körs i den ordning de skapades inom varje kategori. Kontrollerna utvärderas på nytt baserat på det återförsöksintervall som anges i varje kontroll. Om alla kontroller inte lyckas förrän tidsgränsen har angetts körs inte den fasen. Om någon av kontrollerna misslyckas terminalt (till exempel om du avvisar ett godkännande för en av resurserna) körs inte den fasen.
Du kan försöka igen när godkännanden och checkar ut tidsgränsen.
Statiska kontroller körs först och sedan körs förhandskontrollgodkännanden. Kategorierna i ordning är:
Du kan också se körningsordningen på fliken Godkännanden och kontroller .
Viktigt
Kontroller kan konfigureras för miljöer, tjänstanslutningar, lagringsplatser, variabelgrupper, säkra filer och agentpooler.
Tjänstanslutningar kan inte anges med variabel.
Du kan manuellt styra när en fas ska köras med godkännande och kontroller. Den här kontrollen används ofta för att styra distributioner till produktionsmiljöer.
Logga in på din Azure DevOps-organisation och navigera sedan till projektet.
Välj Pipelines-miljöer> och välj sedan din miljö.
Välj fliken Godkännanden och kontroller och välj + sedan tecknet för att lägga till en ny kontroll.
Välj Godkännanden och välj sedan Nästa.
Lägg till användare eller grupper som dina utsedda godkännare och, om så önskas, ange instruktioner för godkännarna. Ange om du vill tillåta eller begränsa godkännare från att godkänna sina egna körningar och ange önskad tidsgräns. Om godkännanden inte har slutförts inom den angivna tidsgränsen markeras fasen som överhoppad.
Välj Skapa när du är klar.
När godkännandekontrollen har utlösts visas ett promptfönster, som visas i följande exempel, i användargränssnittet. Det här fönstret innehåller alternativet för godkännare att antingen avvisa eller godkänna körningen, tillsammans med eventuella tillhörande instruktioner.
Listan över användare som kan granska ett godkännande har åtgärdats när godkännanden och kontroller börjar köras. Det innebär att ändringar i listan över användare och grupper av en godkännandekontroll som gjorts när kontrollerna börjar köras inte hämtas.
Anteckning
Om en grupp har utsetts till godkännare behöver endast en användare i gruppen godkänna körningen för att köras.
Det finns situationer när tiden när ett godkännande ges och den tid då distributionen ska starta inte matchar. Du kanske till exempel vill vänta med att distribuera en ny version tills en låg trafiktid på kvällen.
För att åtgärda det här scenariot kan du skjuta upp ett godkännande och ange den tid då godkännandet träder i kraft.
Välj Skjut upp godkännande.
Ange godkännandetiden.
Godkännandet visas i panelen Kontroller som ett förhandsgodkännande. Godkännandet gäller vid den angivna tidpunkten.
Med kontrollkontrollen för grenen kan du se till att alla resurser som är länkade med pipelinen skapas från de tillåtna grenarna och att grenarna har skydd aktiverat. Den här kontrollen hjälper dig att kontrollera distributionernas beredskap och kvalitet. Om flera resurser är länkade till pipelinen verifieras källan för alla resurser. Om du har länkat en annan pipeline verifieras grenen av den specifika körning som distribueras för skydd.
Så här definierar du kontrollen för grenkontroll:
I ditt Azure DevOps-projekt går du till den resurs (till exempel miljö) som måste skyddas.
Gå till Godkännanden och Söker efter resursen.
Välj kontrollen Grenkontroll och ange en kommaavgränsad lista över tillåtna grenar. Du kan kräva att grenen ska ha skydd aktiverat. Du kan också definiera beteendet för kontrollen om skyddsstatusen för en av grenarna inte är känd. En gren anses vara skyddad om minst en princip har tillämpats (inklusive principer som tillämpas på lagringsplatsnivå).
Vid körningen validerar kontrollen grenar för alla länkade resurser i körningen mot listan över tillåtna. Om någon av grenarna inte matchar kriterierna misslyckas kontrollen och fasen markeras som misslyckad.
Anteckning
Kontrollen kräver att grennamnen är fullständigt kvalificerade. Kontrollera att formatet för grennamnet är refs/heads/<branch name>
Om du bara vill att alla distributioner till din miljö ska ske under en viss tidsperiod är kontorstidskontroll den perfekta lösningen. När du kör en pipeline väntar körningen av fasen som använder resursen i kontorstid. Om du har flera körningar som körs samtidigt verifieras var och en av dem oberoende. I början av kontorstid markeras kontrollen som lyckad för alla körningar.
Om körningen av fasen inte har startat i slutet av kontorstid (som fördröjs av någon annan kontroll), återkallas godkännandet av kontorstid automatiskt och en omvärdering schemaläggs för nästa dag. Kontrollen misslyckas om körningen av fasen inte startar inom den tidsgräns som angetts för kontrollen och fasen markeras som misslyckad.
Azure-funktioner är den serverlösa beräkningsplattform som erbjuds av Azure. Med Azure-funktioner kan du köra små delar av koden (kallas "funktioner") utan att behöva bekymra dig om programinfrastrukturen. Med tanke på den höga flexibiliteten är Azure-funktioner ett bra sätt att skapa egna kontroller. Du inkluderar logiken för incheckningsfunktionen i Azure så att varje körning utlöses på http-begäran, har en kort körningstid och returnerar ett svar. När du definierar kontrollen kan du parsa svarstexten för att härleda om kontrollen lyckas. Utvärderingen kan upprepas regelbundet med inställningen Tid mellan utvärderingar i kontrollalternativ. Läs mer
Om kontrollen inte lyckas inom den konfigurerade tidsgränsen hoppas den associerade fasen över. Steg beroende på den hoppas också över. Mer information finns i Azure Function App-uppgiften.
Anteckning
Användardefinierade pipelinevariabler är tillgängliga för kontrollen som börjar med Sprint 215.
Läs mer om det rekommenderade sättet att använda anropa Azure-funktionskontroller. Kontroller måste följa specifika regler beroende på deras läge och antalet återförsök som ska vara kompatibla.
Genom att anropa REST API-kontrollen kan du integrera med någon av dina befintliga tjänster. Gör regelbundet ett anrop till ett REST API och fortsätt om det returnerar ett lyckat svar. Läs mer
Utvärderingen kan upprepas regelbundet med inställningen Tid mellan utvärderingar i kontrollalternativ. Om kontrollen inte lyckas inom den konfigurerade tidsgränsen hoppas den associerade fasen över. Steg beroende på den hoppas också över. Mer information finns i Anropa REST API-uppgift.
Anteckning
Användardefinierade pipelinevariabler är tillgängliga för kontrollen som börjar med Sprint 215.
Läs mer om det rekommenderade sättet att använda anropa REST API-kontroller.
Azure Monitor erbjuder visualisering, frågor, routning, aviseringar, autoskalning och automatisering av data från Azure-infrastrukturen och varje enskild Azure-resurs. Aviseringar är ett standardsätt för att identifiera problem med infrastrukturens eller programmets hälsotillstånd och vidta korrigerande åtgärder. Kanariedistributioner och mellanlagrade distributioner är vanliga distributionsstrategier som används för att minska risken för regressioner till kritiska program. När du har distribuerat till en fas (uppsättning kunder) observeras programmet under en tidsperiod. Hälsotillståndet för programmet efter distributionen används för att avgöra om uppdateringen ska göras till nästa steg eller inte.
Fråga Azure Monitor-aviseringar hjälper dig att observera Azure Monitor och se till att inga aviseringar genereras för programmet efter en distribution. Kontrollen lyckas om inga aviseringsregler aktiveras vid tidpunkten för utvärderingen. Läs mer
Utvärderingen upprepas efter tid mellan utvärderingsinställningen i kontrollalternativ. Kontrollerna misslyckas om fasen inte har startat körningen inom den angivna tidsgränsperioden .
Med den nödvändiga mallkontrollen kan du framtvinga pipelines för att använda en specifik YAML-mall. När den här kontrollen är på plats misslyckas en pipeline om den inte sträcker sig från den refererade mallen.
Så här definierar du ett obligatoriskt mallgodkännande:
I ditt Azure DevOps-projekt går du till den tjänstanslutning som du vill begränsa.
Öppna Godkännanden och kontroller på menyn bredvid Redigera.
I menyn Lägg till din första kontroll väljer du Obligatorisk mall.
Ange information om hur du kommer till den mallfil som krävs.
Du kan ha flera mallar som krävs för samma tjänstanslutning. I det här exemplet är production_template.yaml
mallen som krävs .
När du felsöker en kontroll kanske du tillfälligt vill inaktivera och sedan aktivera den igen. Så här inaktiverar eller aktiverar du en kontroll:
I ditt Azure DevOps-projekt går du till resursen med en kontroll.
Öppna fliken Godkännanden och kontroller .
I snabbmenyn väljer du Inaktivera eller Aktivera.
I vissa fall, till exempel en snabbkorrigeringsdistribution, kan du behöva kringgå en kontroll. Du kan bara kringgå en kontroll om du har administratörsbehörighet för resursen där kontrollen har definierats.
Om du vill kringgå ett godkännande, kontorstid, anropa Azure-funktionen eller anropa REST API-kontrollen väljer du Kringgå kontroll när resursen väntar på granskning. Här är ett exempel på hur du kringgår kontorstidskontrollen.
När du kringgår en kontroll ser du vem som förbigick kontrollen i kontrollpanelen.
Du kan utvärdera artefakter som ska distribueras till en miljö mot anpassade principer.
Anteckning
För närvarande fungerar detta endast med containeravbildningsartefakter
Om du vill definiera en anpassad principutvärdering över artefakterna följer du stegen nedan.
I ditt Azure DevOps Services-projekt navigerar du till den miljö som måste skyddas. Läs mer om att skapa en miljö.
Gå till Godkännanden och söka efter miljön.
Välj Utvärdera artefakt.
Klistra in principdefinitionen och välj Spara. Läs mer om att skriva principdefinitioner.
När du kör en pipeline pausar körningen av den körningen innan du går in i en fas som använder miljön. Den angivna principen utvärderas mot tillgängliga bildmetadata. Kontrollen godkänns när principen lyckas och annars misslyckas. Fasen har markerats som misslyckad om kontrollen misslyckas.
Du kan också se de fullständiga loggarna för principkontrollerna från pipelinevyn.
Med den exklusiva låskontrollen kan endast en enda körning från pipelinen fortsätta och kan ställas in på fas- eller pipelinenivå. Alla steg i alla körningar av pipelinen som använder resursen pausas. När fasen med låset har slutförts kan en annan fas fortsätta att använda resursen. Dessutom tillåts endast en fas att fortsätta.
Egenskapen lockBehavior
avgör hur andra steg hanterar lås. När du anger egenskapen lockBehavior
för en fas skapas automatiskt ett lås för den fasen. Det finns två möjliga lockBehavior
värden:
runLatest
– Endast den senaste körningen hämtar låset till resursen. runLatest
är standardvärdet om nej lockBehavior
har angetts.sequential
– Alla körningar hämtar låset till den skyddade resursen sekventiellt.Följ dessa steg om du vill använda en exklusiv låskontroll med sequential
distributioner eller runLatest
:
Aktivera den exklusiva låskontrollen i miljön (eller en annan skyddad resurs). Det exklusiva låsalternativet är en tillgänglig kontroll.
I YAML-filen för pipelinen anger du en egenskap med namnet lockBehavior
. Detta kan anges för hela pipelinen eller för en viss fas:
Ställ in på en scen:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Ställ in på pipelinen:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Om du inte anger en lockBehavior
och ett lås har angetts för en resurs används standardvärdet runLatest
för .
Med den exklusiva låskontrollen kan endast en enda körning från pipelinen fortsätta. Alla steg i alla körningar av pipelinen som använder resursen pausas. När fasen med låset har slutförts kan en annan fas fortsätta att använda resursen. Dessutom tillåts endast en fas att fortsätta. Alla andra steg som försökte ta låset avbryts.
Den här kontrollen kräver att ServiceNow Change Management-tillägget installeras från Marketplace
Kontrollen av servicenow-ändringshantering möjliggör integrering av ServiceNow-ändringshanteringsprocessen i pipelines. Genom att lägga till kontrollen kan en ny ändringsbegäran i ServiceNow skapas automatiskt i början av fasen. Pipelinen väntar på att ändringsprocessen ska slutföras innan fasen startas. Mer information finns här.
En fas kan bestå av många jobb och varje jobb kan förbruka flera resurser. Innan körningen av en fas kan påbörjas måste alla kontroller av alla resurser som används i den fasen vara uppfyllda. Azure Pipelines pausar körningen av en pipeline före varje steg och väntar tills alla väntande kontroller har slutförts.
Ett enda slutligt negativt beslut gör att pipelinen nekas åtkomst och att fasen misslyckas. Besluten för alla godkännanden och kontroller förutom att anropa Azure-funktionen/REST API och Exklusivt lås är slutgiltiga. Du kan köra om lyckade anrop av Azure-funktionen/REST API-kontroller.
När du använder anropa Azure-funktionen/REST API-kontroller på det rekommenderade sättet är deras åtkomstbeslut också slutgiltiga.
När du anger Tid mellan utvärderingar för en anropande Azure-funktion/REST API-kontroll som inte är noll, är kontrollens beslut inte slutgiltigt. Det här scenariot är värt att utforska.
Låt oss titta på ett exempel. Anta att YAML-pipelinen har en fas som använder en tjänstanslutning. Den här tjänstanslutningen har två kontroller konfigurerade för den:
En möjlig körning av kontroller visas i följande diagram.
I den här körningen:
Låt oss titta på ett annat exempel som omfattar två synkrona kontroller. Anta att YAML-pipelinen har en fas som använder en tjänstanslutning. Den här tjänstanslutningen har två kontroller konfigurerade för den:
En möjlig körning av kontroller visas i följande diagram.
I den här körningen:
Låt oss titta på ett exempel som omfattar ett godkännande och en synkron kontroll. Anta att du har konfigurerat en synkron kontroll och ett godkännande för en tjänstanslutning med en tid mellan utvärderingar på 5 minuter. Tills godkännandet har getts körs din kontroll var 5:e minut, oavsett beslut.
Utvärderingen av kontrollerna startar när fasvillkoren är uppfyllda. Du bör bekräfta körningen av fasen som startades efter att kontrollerna har lagts till på resursen och att resursen förbrukas i fasen.
Med hjälp av kontorstidskontrollen kan du styra tiden för start av faskörningen. Du kan uppnå samma beteende som fördefinierade scheman på en fas i designerversioner.
Det här scenariot kan aktiveras.
För att vänta tills säkerhetsgenomsökningen av artefakten har slutförts måste du använda en extern genomsökningstjänst som AquaScan. Artefakten som distribueras måste laddas upp på en plats som är tillgänglig för genomsökningstjänsten innan kontrollerna påbörjas och kan identifieras med hjälp av fördefinierade variabler. Med hjälp av kontrollen Anropa REST API kan du lägga till en kontroll för att vänta på API:et i säkerhetstjänsten och skicka artefaktidentifieraren som indata.
Som standard är endast fördefinierade variabler tillgängliga för kontroller. Du kan använda en länkad variabelgrupp för att komma åt andra variabler. Utdatavariabeln från föregående steg kan skrivas till variabelgruppen och nås i kontrollen.
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Utbildningsväg
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Certifiering
Microsoft-certifierad: DevOps-teknikerexpert - Certifications
Den här certifieringen mäter din förmåga att utföra följande tekniska uppgifter: Utforma och implementera processer och kommunikation, utforma och implementera en källkontrollstrategi, utforma och implementera bygg- och versionspipelines, utveckla en säkerhets- och efterlevnadsplan och implementera en instrumenteringsstrategi.