Exercice – Publier une spec de modèle
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.
Dans Visual Studio Code, développez le dossier template-specs/linux-app-service à la racine du dépôt.
Ouvrez le fichier pipeline.yml.
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.
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.
Enregistrez les modifications apportées au fichier.
Vérifier et commiter votre définition de pipeline
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.
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
Dans votre navigateur, sélectionnez Pipelines>Pipelines.
Sélectionnez l’exécution de pipeline active.
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.
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.
Dans votre navigateur, accédez au Portail Azure.
Accédez au groupe de ressources ToyReusable, puis sélectionnez la spécification de modèle linux-app-service.
Examinez les détails de la spécification 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.