Ejercicio: Publicación de una especificación de plantilla
El equipo tiene algunos archivos de Bicep protegidos por la seguridad que son compatibles con el nuevo modelo de gobernanza de su empresa. Uno de los archivos de Bicep protegidos implementa una aplicación de Azure App Service basada en Linux. En este ejercicio se usa una canalización de implementación para publicar el archivo de Bicep como especificación de plantilla.
Durante el proceso, hará lo siguiente:
- Agregue una fase de lint a la canalización.
- Agregue una fase de canalización para publicar la especificación de plantilla.
- Compruebe que la canalización se inicia y finaliza correctamente.
- Compruebe la especificación de plantilla publicada en Azure.
Agregación de una fase de lint a la canalización
El repositorio contiene un borrador de definición de canalización que puede usar como punto de partida.
En Visual Studio Code expanda la carpeta template-specs/linux-app-service en la raíz del repositorio.
Abra el archivo pipeline.yml.
En la parte inferior del archivo, reemplace
# To be added
por la siguiente definición de fase de lint:stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file $(TemplateSpecFilePath) name: LintBicepCode displayName: Run Bicep linter
El repositorio contiene un archivo bicepconfig.json que configura el linter para que emita errores en lugar de advertencias. Cualquier error durante la fase de lint hará que se produzca un error en la canalización.
Sugerencia
Los archivos YAML son sensibles a la sangría. Tanto si escribe o pega este código, asegúrese de que la sangría es correcta. Más adelante en este ejercicio verá la definición de canalización YAML completa para que pueda comprobar que el archivo coincide.
Agregación de una fase de publicación a la canalización
Ahora puede agregar una segunda fase para publicar la especificación de plantilla en Azure.
Agregue el siguiente código al final del archivo 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
En esta fase se extrae el código del repositorio y se inicia sesión en Azure mediante la conexión de servicio que ha creado. A continuación, ejecuta el comando
az ts create
para publicar la especificación de plantilla en Azure.Sugerencia
Para simplificar las cosas, la canalización usa el número de compilación de la canalización como número de versión de la especificación de plantilla. En la unidad siguiente obtendrá información sobre un sistema de control de versiones más complejo.
Guarde los cambios en el archivo.
Comprobación y confirmación de la definición de canalización
Compruebe que el archivo azure-pipelines.yml es similar al del ejemplo siguiente:
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 no es así, actualícelo para que coincida con este ejemplo y después guárdelo.
Confirme e inserte los cambios en el repositorio de Git mediante la ejecución de los comandos siguientes en el terminal de Visual Studio Code:
git add . git commit -m "Add lint and publish stages to Linux App Service template spec pipeline" git push
Inmediatamente después de la inserción, Azure Pipelines inicia una nueva ejecución de canalización.
Supervisar la canalización
En el explorador seleccione Canalizaciones>Canalizaciones.
Seleccione la ejecución de canalización activa.
Se muestra la ejecución de canalización.
Espere a que finalice la ejecución de la canalización. La especificación de plantilla se publica en Azure.
Observe el número de compilación de la canalización, que incluye la fecha de hoy y un número de revisión único. En el ejemplo que se muestra en la captura de pantalla, el número de compilación es 20230407.1.
Revisar la especificación de plantilla en Azure
También puede ver la especificación de plantilla publicada en el Portal de Azure.
En el explorador, vaya a Azure Portal.
Vaya al grupo de recursos ToyReusable y seleccione la especificación de plantilla linux-app-service.
Examine los detalles de la especificación de plantilla.
Observe que la versión más reciente y el número de versión son los mismos que el número de compilación de la canalización. La canalización usa el número de compilación para el número de versión de la especificación de plantilla.