Exercice – Publier une spec de modèle

Effectué

Votre équipe a des fichiers Bicep à la sécurité renforcée conformes au nouveau modèle de gouvernance de votre entreprise. L’un des fichiers Bicep renforcés déploie une application Azure App Service basée sur Linux. Dans cet exercice, vous utilisez un pipeline de déploiement pour publier le fichier Bicep en tant que spécification de modèle.

Pendant ce processus, vous allez :

  • Ajoutez une étape de lint au pipeline.
  • Ajoutez une étape de pipeline pour publier la spec de modèle.
  • Vérifiez que le pipeline démarre et se termine correctement.
  • Vérifiez la spécification de modèle publiée dans Azure.

Ajouter une étape de lint à votre pipeline

Votre dépôt contient un brouillon d’une définition de pipeline que vous pouvez utiliser comme point de départ.

  1. Dans Visual Studio Code, développez le dossier template-specs/linux-app-service à la racine du dépôt.

  2. Ouvrez le fichier pipeline.yml.

    Capture d’écran de Visual Studio Code montrant l’emplacement du fichier de définition du pipeline.

  3. En bas du fichier, remplacez # To be added, par la définition d’étape lint suivante :

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

    Votre dépôt a un fichier bicepconfig.json qui configure le linter pour émettre des erreurs au lieu d’avertissements. Les échecs au cours de l’étape lint entraînent l’échec du pipeline.

    Conseil

    Les fichiers YAML sont sensibles à l’indentation. Si vous tapez ou que vous collez ce code, veillez à ce que l’indentation soit correcte. Plus loin dans cet exercice, vous examinerez la définition complète du pipeline YAML pour vérifier que votre fichier y correspond.

Ajouter une étape de publication à votre pipeline

Vous pouvez maintenant ajouter une deuxième étape pour publier la spec de modèle sur Azure.

  1. Ajoutez le code suivant à la fin du fichier 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
    

    Cette étape extrait le code de votre référentiel et se connecte à Azure à l’aide d’une connexion de service que vous avez créée. Elle exécute ensuite la commande az ts create pour publier la spec de modèle sur Azure.

    Conseil

    Pour simplifier les choses, votre pipeline utilise le numéro de build du pipeline comme numéro de version de la spec de modèle. Dans l’unité suivante, vous découvrirez un schéma de contrôle de version plus complexe.

  2. Enregistrez les modifications apportées au fichier.

Vérifier et commiter votre définition de pipeline

  1. Vérifiez que votre fichier pipelines.yml se présente comme dans l’exemple suivant :

    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
    

    Si ce n’est pas le cas, modifiez-le d’après cet exemple, puis enregistrez-le.

  2. Commitez et poussez (push) vos modifications à votre dépôt Git en exécutant les commandes suivantes dans le terminal Visual Studio Code :

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

    Immédiatement après votre envoi, Azure Pipelines démarre une nouvelle exécution du pipeline.

Surveiller le pipeline

  1. Dans votre navigateur, sélectionnez Pipelines>Pipelines.

    Capture d’écran d’Azure Pipelines montrant l’élément de menu du pipeline.

  2. Sélectionnez l’exécution de pipeline active.

  3. L’exécution du pipeline s’affiche.

    Attendez la fin de l’exécution du pipeline. La spec de modèle est alors publiée sur Azure.

    Capture d’écran d’Azure Pipelines montrant une exécution de pipeline réussie et met en surbrillance le numéro de build.

  4. Notez le numéro de build du pipeline, qui inclut la date d’aujourd’hui et un numéro de révision unique. Dans l’exemple de la capture d’écran, le numéro de build est 20230407.1.

Passer en revue la spec de modèle dans Azure

Vous pouvez également afficher la spécification de modèle publiée dans le Portail Azure.

  1. Dans votre navigateur, accédez au Portail Azure.

  2. Accédez au groupe de ressources ToyReusable, puis sélectionnez la spécification de modèle linux-app-service.

    Capture d’écran du Portail Azure qui montre le groupe de ressources, avec la spec de modèle mise en surbrillance.

  3. Examinez les détails de la spécification de modèle.

    Capture d’écran du Portail Azure affichant les détails de la spec de modèle.

    Notez que la dernière version et le numéro de version sont identiques au numéro de build du pipeline. Votre pipeline utilise le numéro de build du numéro de version de la spec de modèle.