Ćwiczenie — publikowanie specyfikacji szablonu

Ukończone

Twój zespół ma pewne pliki Bicep ze wzmocnionymi zabezpieczeniami, które są zgodne z nowym modelem zapewniania ładu w firmie. Jeden z wzmocnionych plików Bicep wdraża aplikację usługi aplikacja systemu Azure Service opartą na systemie Linux. W tym ćwiczeniu użyjesz potoku wdrażania, aby opublikować plik Bicep jako specyfikację szablonu.

Podczas tego procesu wykonasz następujące czynności:

  • Dodaj etap lint do potoku.
  • Dodaj etap potoku, aby opublikować specyfikację szablonu.
  • Sprawdź, czy potok jest uruchamiany i kończy się pomyślnie.
  • Sprawdź opublikowaną specyfikację szablonu na platformie Azure.

Dodawanie etapu lint do potoku

Repozytorium zawiera wersję roboczą definicji potoku, której można użyć jako punktu początkowego.

  1. W programie Visual Studio Code rozwiń folder template-specs/linux-app-service w katalogu głównym repozytorium.

  2. Otwórz plik pipeline.yml.

    Zrzut ekranu programu Visual Studio Code przedstawiający lokalizację pliku definicji potoku.

  3. W dolnej części pliku zastąp następującą # To be added definicją etapu lint:

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

    Repozytorium zawiera plik bicepconfig.json , który konfiguruje linter tak, aby emitował błędy zamiast ostrzeżeń. Wszelkie błędy podczas etapu lint spowodują niepowodzenie potoku.

    Napiwek

    Pliki YAML są wrażliwe na wcięcia. Bez względu na to, czy wpiszesz, czy wklejasz ten kod, upewnij się, że wcięcie jest poprawne. W dalszej części tego ćwiczenia zobaczysz kompletną definicję potoku YAML, aby sprawdzić, czy plik jest zgodny.

Dodawanie etapu publikowania do potoku

Teraz możesz dodać drugi etap, aby opublikować specyfikację szablonu na platformie Azure.

  1. Dodaj następujący kod na końcu pliku 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
    

    Ten etap sprawdza kod z repozytorium i loguje się do platformy Azure przy użyciu utworzonego połączenia z usługą. Następnie uruchamia az ts create polecenie , aby opublikować specyfikację szablonu na platformie Azure.

    Napiwek

    Aby zachować prostotę, potok używa numeru kompilacji potoku jako numeru wersji specyfikacji szablonu. W następnej lekcji dowiesz się więcej o bardziej złożonym schemacie przechowywania wersji.

  2. Zapisz zmiany w pliku.

Weryfikowanie i zatwierdzanie definicji potoku

  1. Sprawdź, czy plik pipeline.yml wygląda następująco:

    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
    

    Jeśli tak nie jest, zaktualizuj go tak, aby był zgodny z tym przykładem, a następnie zapisz go.

  2. Zatwierdź i wypchnij zmiany do repozytorium Git, uruchamiając następujące polecenia w terminalu programu Visual Studio Code:

    git add .
    git commit -m "Add lint and publish stages to Linux App Service template spec pipeline"
    git push
    

    Natychmiast po wypchnięciu usługa Azure Pipelines uruchamia nowe uruchomienie potoku.

Monitor the pipeline (Monitorowanie potoku)

  1. W przeglądarce wybierz pozycję Potoki>.

    Zrzut ekranu usługi Azure Pipelines przedstawiający element menu Potoki.

  2. Wybierz aktywne uruchomienie potoku.

  3. Zostanie wyświetlone uruchomienie potoku.

    Poczekaj na zakończenie przebiegu potoku. Gdy tak się stanie, specyfikacja szablonu zostanie opublikowana na platformie Azure.

    Zrzut ekranu usługi Azure Pipelines przedstawiający pomyślne uruchomienie potoku i wyróżniony numer kompilacji.

  4. Zanotuj numer kompilacji potoku, który zawiera bieżącą datę i unikatowy numer poprawki. Na przykładowym zrzucie ekranu numer kompilacji to 20230407.1.

Przeglądanie specyfikacji szablonu na platformie Azure

Możesz również wyświetlić opublikowaną specyfikację szablonu w witrynie Azure Portal.

  1. W przeglądarce przejdź do witryny Azure Portal.

  2. Przejdź do grupy zasobów ToyReusable i wybierz specyfikację szablonu linux-app-service .

    Zrzut ekranu witryny Azure Portal przedstawiający grupę zasobów z wyróżnioną specyfikacją szablonu.

  3. Sprawdź szczegóły specyfikacji szablonu.

    Zrzut ekranu witryny Azure Portal przedstawiający szczegóły specyfikacji szablonu.

    Zwróć uwagę, że numer najnowszej wersji i wersji jest taki sam jak numer kompilacji potoku. Potok używa numeru kompilacji dla numeru wersji specyfikacji szablonu.