Øvelse – Føj en prøveversionsfase til din pipeline

Fuldført

Du vil føje en ekstra fase til din pipeline, så du kan kontrollere, hvilke ændringer der foretages i dit Azure-miljø.

Under processen skal du:

  • Opdater YAML-pipelinefilen for at tilføje en ny prøveversionsfase.
  • Føj et miljø til Azure Pipelines.
  • Konfigurer miljøet for at kræve en godkendelse.
  • Opdater YAML-pipelinefilen for at bruge miljøet til udrulningsfasen.
  • Få vist what if-resultaterne, og godkend en pipelinekørsel.

Opdater pipelinedefinitionen for at tilføje en prøveversionsfase

Her skal du føje en ny fase til din pipeline, der kører what if-handlingen.

  1. I Visual Studio Code skal du åbne filen azure-pipelines.yml i mappen installere.

  2. Mellem faserne Valider og Installér skal du tilføje følgende definition for fase i prøveversion:

    - 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)
    
  3. Gem ændringerne i filen.

Tilføj et miljø

  1. Gå til Pipelines>Miljøeri din browser.

    Skærmbillede af Azure DevOps-grænsefladen, der viser menuen Pipelines, hvor elementet Miljøer er fremhævet.

  2. Vælg Opret miljø.

    Skærmbillede af Azure DevOps-grænsefladen, der viser siden Miljøer, hvor knappen til oprettelse af et miljø er fremhævet.

  3. Angiv websted som miljønavn.

    Lad beskrivelsen være tom. Vælg Ingenfor ressource.

    Seddel

    I Azure Pipelines bruges miljøer til at aktivere udrulningsfunktioner. Nogle af disse funktioner gælder kun, når du udruller til Kubernetes eller til virtuelle maskiner. I dette modul bruger vi ikke disse funktioner, og du kan ignorere dem.

  4. Vælg Opret.

    Skærmbillede af siden Azure DevOps for et nyt miljø, hvor detaljerne er fuldført, og knappen Opret er fremhævet.

Føj en godkendelseskontrol til miljøet

  1. Vælg fanen Godkendelser og kontroller øverst til venstre på skærmen.

    Skærmbillede af Azure DevOps-grænsefladen, der viser webstedsmiljøet, hvor fanen Godkendelser og kontroller er fremhævet.

  2. Vælg Godkendelser.

    Skærmbillede af Azure DevOps-grænsefladen, der viser siden til tilføjelse af en kontrol, hvor elementet Godkendelser er fremhævet.

  3. I tekstfeltet Godkendere skal du skrive dit eget navn og vælge dig selv.

  4. Vælg pileknappen ud for Advanced.

    Bemærk, at godkendere som standard har tilladelse til at godkende de kørsler, de har udløst. Da du er den eneste, der arbejder med denne pipeline, skal du lade dette afkrydsningsfelt være markeret.

  5. Vælg Opret.

    Skærmbillede af Azure DevOps-grænsefladen, der viser siden til tilføjelse af en godkendelseskontrol, hvor detaljerne er fuldført, og knappen Opret er fremhævet.

Opdater pipelinedefinitionen for at kræve et miljø og en godkendelse

Her skal du konfigurere fasen Installér til at køre i det websted miljø, du oprettede tidligere. Du konverterer fasen Udrul for at køre et installationsjob i stedet for et standardjob og konfigurere det til at blive udrullet i miljøet.

  1. I azure-pipelines.yml-filen i Visual Studio Code skal du erstatte definitionen af Deploy fase med følgende kode:

    - 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)
    

    Bemærk, at du har defineret et nyt checkout trin. I modsætning til normale job skal installationsjob konfigureres til at tjekke (downloade) filerne fra dit Git-lager ud. Hvis du ikke udfører dette trin, kan installationsjobbet ikke læse din Bicep-fil. Du kan i stedet overveje at bruge pipelineartefakter til at sende filer mellem pipelinefaser. Vi linker til flere oplysninger om artefakter i oversigten.

  2. Gem filen.

Bekræft og bekræft din pipelinedefinition

  1. Kontrollér, at din azure-pipelines.yml-fil ligner følgende kode:

    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)
    

    Hvis den ikke gør det, skal du opdatere den, så den stemmer overens med dette eksempel, og derefter gemme den.

  2. Bekræft og send dine ændringer til Git-lageret ved at køre følgende kommandoer i Visual Studio Code-terminalen:

    git add .
    git commit -m "Add preview stage"
    git push
    

Kør pipelinen, og gennemse what if-output

  1. I din browser skal du gå til din pipeline.

  2. Vælg den seneste kørsel af pipelinen.

    Vent, indtil pipelinen fuldfører faserne Lint, Validateog Preview. Selvom Azure Pipelines automatisk opdaterer siden med den seneste status, er det en god idé at opdatere siden lejlighedsvist.

  3. Hvis du bliver bedt om at give tilladelse til at få adgang til en ressource, skal du vælge Vis og derefter vælge Tillad.

  4. Bemærk, at Azure Pipelines beder dig om en godkendelse. Du modtager også en mail, der informerer dig om, at pipelinen skal godkendes.

    Skærmbillede af Azure DevOps-grænsefladen, der viser pipelinekørslen, hvor godkendelseskravet er fremhævet.

    Før du godkender fortsættelsen af pipelinen, skal du gennemse what if-resultaterne for at sikre, at de stemmer overens med dine forventninger.

  5. Vælg prøveversion fase.

  6. Vælg trinnet Kør what if- for at undersøge de ændringer, som what if-kommandoen rapporterer om.

  7. Bemærk, at pipelineloggen indeholder what if-resultater, der ligner følgende kode:

    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.
    

    What if-handlingen har registreret en ændring af webstedsressourcen. De ændringer, den har registreret, er dog støj. De repræsenterer ikke reelle ændringer af din ressource. Azure-teamet arbejder med tiden for at reducere støj. I mellemtiden kan du for disse to specifikke egenskaber ignorere de registrerede ændringer.

    Du kan også se et element i what if-outputtet for ressourcetypen microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite. Application Insights opretter denne ressource automatisk. What if-kommandoen registrerer, at der ikke foretages nogen ændring af ressourcen.

Godkend pipelinekørslen

  1. Vælg den venstre pil for at vende tilbage til detaljerne for pipelinekørslen.

    Skærmbillede af Azure DevOps-grænsefladen, der viser pipelinelogmenuen, hvor pilen tilbage er fremhævet.

  2. Vælg knappen Gennemse i godkendelsespanelet.

  3. I feltet kommentar skal du angive Gennemsede what if-resultater.

  4. Vælg Godkend.

    Skærmbillede af Azure DevOps-grænsefladen, der viser siden med pipelinegodkendelse, hvor knappen Godkend er fremhævet.

Se, om udrulningen er fuldført

  1. Når du har godkendt pipelinekørslen, kan du se, at fasen Udrul begynder at køre.

    Vent på, at fasen afsluttes.

  2. Bemærk, at pipelinekørslen er fuldført.