Øvelse – Føj en prøveversionsfase til din pipeline
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.
I Visual Studio Code skal du åbne filen azure-pipelines.yml i mappen installere.
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)
Gem ændringerne i filen.
Tilføj et miljø
Gå til Pipelines>Miljøeri din browser.
Vælg Opret miljø.
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.
Vælg Opret.
Føj en godkendelseskontrol til miljøet
Vælg fanen Godkendelser og kontroller øverst til venstre på skærmen.
Vælg Godkendelser.
I tekstfeltet Godkendere skal du skrive dit eget navn og vælge dig selv.
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.
Vælg Opret.
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.
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.Gem filen.
Bekræft og bekræft din pipelinedefinition
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.
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
I din browser skal du gå til din pipeline.
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.
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.
Bemærk, at Azure Pipelines beder dig om en godkendelse. Du modtager også en mail, der informerer dig om, at pipelinen skal godkendes.
Før du godkender fortsættelsen af pipelinen, skal du gennemse what if-resultaterne for at sikre, at de stemmer overens med dine forventninger.
Vælg prøveversion fase.
Vælg trinnet Kør what if- for at undersøge de ændringer, som what if-kommandoen rapporterer om.
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
Vælg den venstre pil for at vende tilbage til detaljerne for pipelinekørslen.
Vælg knappen Gennemse i godkendelsespanelet.
I feltet kommentar skal du angive Gennemsede what if-resultater.
Vælg Godkend.
Se, om udrulningen er fuldført
Når du har godkendt pipelinekørslen, kan du se, at fasen Udrul begynder at køre.
Vent på, at fasen afsluttes.
Bemærk, at pipelinekørslen er fuldført.