Övning – Lägga till en förhandsversionsfas i pipelinen
Du vill lägga till en extra fas i pipelinen så att du kan kontrollera vilka ändringar som kommer att göras i Din Azure-miljö.
Under processen gör du följande:
- Uppdatera YAML-pipelinefilen för att lägga till en ny förhandsversionsfas.
- Lägg till en miljö i Azure Pipelines.
- Konfigurera miljön så att den kräver ett godkännande.
- Uppdatera YAML-pipelinefilen så att den använder miljön för distributionsfasen.
- Visa konsekvensanalysresultatet och godkänn en pipelinekörning.
Uppdatera pipelinedefinitionen för att lägga till en förhandsversionsfas
Här lägger du till en ny fas i pipelinen som kör konsekvensåtgärden.
I Visual Studio Code öppnar du filen azure-pipelines.yml i distributionsmappen.
Mellan stegen Verifiera och distribuera lägger du till följande definition för förhandsversionssteget:
- stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType)
Spara ändringarna i filen.
Lägga till en miljö
I webbläsaren går du till Pipelines-miljöer>.
Välj Skapa miljö.
Ange Webbplats som miljönamn.
Lämna beskrivningen tom. För Resurs väljer du Ingen.
Kommentar
I Azure Pipelines används miljöer för att aktivera distributionsfunktioner. Vissa av dessa funktioner gäller endast när du distribuerar till Kubernetes eller till virtuella datorer. I den här modulen använder vi inte de här funktionerna och du kan ignorera dem.
Välj Skapa.
Lägga till en godkännandekontroll i miljön
Välj fliken Godkännanden och kontroller längst upp till vänster på skärmen.
Välj Godkännanden.
I textrutan Godkännare skriver du ditt eget namn och väljer dig själv.
Välj pilknappen bredvid Avancerat.
Observera att godkännare som standard får godkänna de körningar som de har utlöst. Eftersom du är den enda som arbetar med den här pipelinen lämnar du kryssrutan markerad.
Välj Skapa.
Uppdatera pipelinedefinitionen så att den kräver en miljö och ett godkännande
Här konfigurerar du distributionsfasen så att den körs mot den webbplatsmiljö som du skapade tidigare. Du konverterar distributionssteget för att köra ett distributionsjobb i stället för ett standardjobb och konfigurerar det så att det distribueras till miljön.
I filen azure-pipelines.yml i Visual Studio Code ersätter du definitionen för distributionssteg med följande kod:
- stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
Observera att du har definierat ett nytt
checkout
steg. Till skillnad från vanliga jobb måste distributionsjobb konfigureras för att checka ut (ladda ned) filerna från din Git-lagringsplats. Om du inte gör det här steget kan distributionsjobbet inte läsa Bicep-filen. Du kan i stället överväga att använda pipelineartefakter för att skicka filer mellan pipelinesteg. Vi länkar till mer information om artefakter i sammanfattningen.Spara filen.
Verifiera och checka in din pipelinedefinition
Kontrollera att filen azure-pipelines.yml ser ut som följande kod:
trigger: batch: true branches: include: - main pool: vmImage: ubuntu-latest variables: - name: deploymentDefaultLocation value: westus3 stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file deploy/main.bicep name: LintBicepCode displayName: Run Bicep linter - stage: Validate jobs: - job: ValidateBicepCode displayName: Validate Bicep code steps: - task: AzureResourceManagerTemplateDeployment@3 name: RunPreflightValidation displayName: Run preflight validation inputs: connectedServiceName: $(ServiceConnectionName) location: $(deploymentDefaultLocation) deploymentMode: Validation resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType) - stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType) - stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
Om den inte gör det uppdaterar du den så att den matchar det här exemplet och sparar det.
Checka in och skicka ändringarna till Git-lagringsplatsen genom att köra följande kommandon i Visual Studio Code-terminalen:
git add . git commit -m "Add preview stage" git push
Kör pipelinen och granska konsekvensutdata
Gå till din pipeline i webbläsaren.
Välj den senaste körningen av din pipeline.
Vänta tills pipelinen har slutfört faserna Lint, Validate och Preview . Även om Azure Pipelines automatiskt uppdaterar sidan med den senaste statusen är det en bra idé att uppdatera sidan ibland.
Om du uppmanas att bevilja behörighet att komma åt en resurs väljer du Visa och sedan Tillåt.
Observera att Azure Pipelines ber dig om ett godkännande. Du får också ett e-postmeddelande som informerar dig om att pipelinen behöver ditt godkännande.
Innan du godkänner fortsättningen av pipelinen granskar du konsekvensresultatet för att säkerställa att de matchar dina förväntningar.
Välj förhandsgranskningssteget.
Välj steget Kör vad händer om för att granska de ändringar som what-if-kommandot rapporterar om.
Observera att pipelineloggen innehåller konsekvensanalysresultat som liknar följande kod:
Resource and property changes are indicated with these symbols: + Create ~ Modify = Nochange The deployment will update the following scope: Scope: /subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/ToyWebsiteTest ~ Microsoft.Web/sites/toy-website-nbfnedv766snk [2021-01-15] + properties.siteConfig.localMySqlEnabled: false + properties.siteConfig.netFrameworkVersion: "v4.6" = Microsoft.Insights/components/toywebsite [2020-02-02] = Microsoft.Storage/storageAccounts/mystoragenbfnedv766snk [2021-04-01] = Microsoft.Web/serverfarms/toy-website [2021-01-15] Resource changes: 1 to modify, 3 no change.
Konsekvensåtgärden har identifierat en ändring av webbplatsresursen. De ändringar som har identifierats är dock brus. De representerar inte verkliga ändringar i din resurs. Med tiden arbetar Azure-teamet för att minska bruset. Under tiden kan du ignorera de identifierade ändringarna för dessa två specifika egenskaper.
Du kan också se ett objekt i konsekvensutdata för resurstypen
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
. Application Insights skapar den här resursen automatiskt. Konsekvenskommandot identifierar att resursen inte kommer att ändras.
Godkänn pipelinekörningen
Välj den vänstra pilen för att återgå till informationen för pipelinekörningen.
Välj knappen Granska på godkännandepanelen.
I rutan Kommentar anger du Granskat konsekvensresultat.
Välj godkänn.
Observera den lyckade distributionen
När du har godkänt pipelinekörningen ser du att distributionssteget börjar köras.
Vänta tills fasen är klar.
Observera att pipelinekörningen har slutförts.