Øvelse – Udgiv en skabelonspecifikation

Fuldført

Dit team har nogle sikkerhedshærdet Bicep-filer, der overholder din virksomheds nye styringsmodel. En af de hærdede Bicep-filer installerer en Linux-baseret Azure App Service-app. I denne øvelse skal du bruge en udrulningspipeline til at publicere Bicep-filen som en skabelonspecifikation.

Under processen skal du:

  • Føj en lintfase til pipelinen.
  • Tilføj en pipelinefase for at publicere skabelonspecifikationen.
  • Kontrollér, at pipelinen starter og afsluttes.
  • Kontrollér specifikationerne for den publicerede skabelon i Azure.

Føj en lintfase til din pipeline

Dit lager indeholder et udkast til en pipelinedefinition, som du kan bruge som udgangspunkt.

  1. I Visual Studio Code skal du udvide mappen template-specs/linux-app-service mappe i roden af lageret.

  2. Åbn filen pipeline.yml.

    Skærmbillede af Visual Studio Code, der viser placeringen af pipelinedefinitionsfilen.

  3. Erstat # To be added med følgende definition af lintfase nederst i filen:

    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    

    Dit lager har en bicepconfig.json fil, der konfigurerer linteren til at udsende fejl i stedet for advarsler. Eventuelle fejl under lintfasen medfører, at pipelinen mislykkes.

    Drikkepenge

    YAML-filer er følsomme for indrykning. Uanset om du skriver eller indsætter denne kode, skal du sørge for, at indrykningen er korrekt. Senere i denne øvelse får du vist den komplette YAML-pipelinedefinition, så du kan kontrollere, at filen stemmer overens.

Føj en publiceringsfase til din pipeline

Nu kan du tilføje endnu en fase for at publicere skabelonspecifikationen til Azure.

  1. Tilføj følgende kode i slutningen af filen pipeline.yml:

    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    I denne fase tjekkes koden ud fra dit lager, og der logges på Azure ved hjælp af den tjenesteforbindelse, du har oprettet. Derefter køres kommandoen az ts create for at publicere skabelonspecifikationen på Azure.

    Drikkepenge

    For at gøre tingene enkle bruger pipelinen pipelinens buildnummer som versionsnummeret for skabelonspecifikationen. I det næste undermodul får du mere at vide om et mere komplekst versionsstyringsskema.

  2. Gem ændringerne i filen.

Bekræft og bekræft din pipelinedefinition

  1. Kontrollér, at din pipeline.yml-fil ligner følgende eksempel:

    trigger:
      batch: true
      branches:
        include:
        - main
      paths:
        include:
        - 'template-specs/linux-app-service/**'
    
    variables:
    - name: ServiceConnectionName
      value: ToyReusable
    - name: AzureResourceGroupName
      value: ToyReusable
    - name: AzureRegion
      value: westus3
    - name: TemplateSpecName
      value: linux-app-service
    - name: TemplateSpecFilePath
      value: template-specs/linux-app-service/main.bicep
    
    pool:
      vmImage: ubuntu-latest
    
    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file $(TemplateSpecFilePath)
            name: LintBicepCode
            displayName: Run Bicep linter
    
    - stage: Publish
      jobs:
      - job: Publish
        steps:
          - task: AzureCLI@2
            name: Publish
            displayName: Publish template spec
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az ts create \
                  --resource-group $(AzureResourceGroupName) \
                  --name $(TemplateSpecName) \
                  --version $(Build.BuildNumber) \
                  --template-file $(TemplateSpecFilePath) \
                  --location $(AzureRegion) \
                  --yes
    

    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 lint and publish stages to Linux App Service template spec pipeline"
    git push
    

    Umiddelbart efter du har pushet, starter Azure Pipelines en ny pipelinekørsel.

Overvåg pipelinen

  1. Vælg Pipelines>Pipelinesi browseren.

    Skærmbillede af Azure Pipelines, der viser menupunktet Pipelines.

  2. Vælg den aktive pipelinekørsel.

  3. Pipelinekørslen vises.

    Vent, indtil pipelinen er færdig. Når den gør det, publiceres skabelonspecifikationen på Azure.

    Skærmbillede af Azure Pipelines, der viser en vellykket pipelinekørsel og fremhæver buildnummeret.

  4. Bemærk pipelinens buildnummer, som omfatter dags dato og et entydigt revisionsnummer. På eksempelskærmbillede er buildnummeret 20230407.1.

Gennemse skabelonspecifikationen i Azure

Du kan også få vist de publicerede skabelonspecifikationer på Azure Portal.

  1. I din browser skal du gå til Azure Portal.

  2. Gå til ressourcegruppen ToyReusable, og vælg skabelonen linux-app-service.

    Skærmbillede af Azure Portal, der viser ressourcegruppen, hvor skabelonspecifikationen er fremhævet.

  3. Undersøg detaljerne i skabelonspecifikationen.

    Skærmbillede af Azure Portal, der viser oplysninger om skabelonspecifikationen.

    Bemærk, at seneste version og version er det samme som pipelinens buildnummer. Din pipeline bruger buildnummeret til skabelonspecifikationens versionsnummer.