Ejercicio: Adición de una fase de vista previa a la canalización
Quiere agregar una fase adicional a la canalización para poder comprobar qué cambios se realizarán en el entorno de Azure.
Durante el proceso, hará lo siguiente:
- Actualizar el archivo YAML de canalización para agregar una nueva fase de vista previa.
- Agregar un entorno a Azure Pipelines.
- Configurar el entorno para exigir una aprobación.
- Actualice el archivo YAML de canalización a fin de usar el entorno para la fase de implementación.
- Ver los resultados hipotéticos y aprobar una ejecución de canalización.
Actualización de la definición de canalización para agregar una fase de vista previa
Aquí, agregará una nueva fase a la canalización que ejecuta la operación hipotética.
En Visual Studio Code, abra el archivo azure-pipelines.yml en la carpeta deploy.
Entre las fases Validate (Validación) y Deploy (Implementación), agregue la definición siguiente para la fase Preview (Vista previa):
- stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType)
Guarde los cambios en el archivo.
Adición de un entorno
En el explorador, vaya a Canalizaciones>Entornos.
Seleccione Crear entorno.
Escriba Website como nombre de entorno.
Deje la descripción en blanco. En Recurso, seleccione Ninguno.
Nota:
En Azure Pipelines, los entornos se usan para habilitar características de implementación. Algunas de estas características solo se aplican cuando la implementación se realiza en Kubernetes o en máquinas virtuales. En este módulo, estas características no se usan y puede omitirlas.
Seleccione Crear.
Adición de una comprobación de aprobación al entorno
Seleccione la pestaña Aprobaciones y comprobaciones en la parte superior izquierda de la pantalla.
Seleccione Aprobaciones.
En el cuadro de texto Aprobadores, escriba su nombre y selecciónelo.
Seleccione el botón de flecha situado junto a Avanzado.
Tenga en cuenta que, de forma predeterminada, los aprobadores pueden aprobar las ejecuciones que han desencadenado. Como es la única persona que trabajará con esta canalización, deje activada esta casilla.
Seleccione Crear.
Actualización de la definición de canalización para requerir un entorno y una aprobación
Aquí, configurará la fase Implementación para que se ejecute en el entorno Website que ha creado antes. Convertirá la fase Implementación para ejecutar un trabajo de implementación en lugar de un trabajo estándar y lo configurará para implementarlo en el entorno.
En el archivo azure-pipelines.yml de Visual Studio Code, reemplace la definición de la fase Deploy (Implementación) por el código siguiente:
- stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
Observe que ha definido un nuevo paso
checkout
. A diferencia de los trabajos normales, los trabajos de implementación se deben configurar para que extraigan del repositorio (descarguen) los archivos del repositorio de Git. Si no lleva a cabo este paso, el trabajo de implementación no podrá leer el archivo de Bicep. En su lugar, podría considerar la posibilidad de usar artefactos de canalización para enviar archivos entre fases de canalización. En el resumen se incluye un vínculo a más información sobre los artefactos.Guarde el archivo.
Comprobación y confirmación de la definición de canalización
Compruebe que el archivo azure-pipelines.yml es similar al código siguiente:
trigger: batch: true branches: include: - main pool: vmImage: ubuntu-latest variables: - name: deploymentDefaultLocation value: westus3 stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file deploy/main.bicep name: LintBicepCode displayName: Run Bicep linter - stage: Validate jobs: - job: ValidateBicepCode displayName: Validate Bicep code steps: - task: AzureResourceManagerTemplateDeployment@3 name: RunPreflightValidation displayName: Run preflight validation inputs: connectedServiceName: $(ServiceConnectionName) location: $(deploymentDefaultLocation) deploymentMode: Validation resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType) - stage: Preview jobs: - job: PreviewAzureChanges displayName: Preview Azure changes steps: - task: AzureCLI@2 name: RunWhatIf displayName: Run what-if inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az deployment group what-if \ --resource-group $(ResourceGroupName) \ --template-file deploy/main.bicep \ --parameters environmentType=$(EnvironmentType) - stage: Deploy jobs: - deployment: DeployWebsite displayName: Deploy website environment: Website strategy: runOnce: deploy: steps: - checkout: self - task: AzureResourceManagerTemplateDeployment@3 name: DeployBicepFile displayName: Deploy Bicep file inputs: connectedServiceName: $(ServiceConnectionName) deploymentName: $(Build.BuildNumber) location: $(deploymentDefaultLocation) resourceGroupName: $(ResourceGroupName) csmFile: deploy/main.bicep overrideParameters: > -environmentType $(EnvironmentType)
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 preview stage" git push
Ejecución de la canalización y revisión de las salidas hipotéticas
En el explorador, vaya a la canalización.
Seleccione la ejecución más reciente de la canalización.
Espere hasta que la canalización complete las fases Lint, Validate (Validación) y Preview (Vista previa). Aunque Azure Pipelines actualiza de forma automática la página con el estado más reciente, es recomendable actualizarla ocasionalmente.
Si se le pide que conceda permiso para acceder a un recurso, seleccione Ver y, a continuación, seleccione Permitir.
Observe que Azure Pipelines le pide una aprobación. También recibirá un correo electrónico en el que se le informa de que la canalización necesita su aprobación.
Antes de aprobar la continuación de la canalización, revisará los resultados hipotéticos para asegurarse de que coincidan con las expectativas.
Seleccione la fase Preview (Vista previa).
Seleccione el paso Run what-if (Ejecutar hipótesis) para inspeccionar los cambios sobre los que informa el comando hipotético.
Observe que el registro de canalización proporciona resultados hipotéticos similares al código siguiente:
Resource and property changes are indicated with these symbols: + Create ~ Modify = Nochange The deployment will update the following scope: Scope: /subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/ToyWebsiteTest ~ Microsoft.Web/sites/toy-website-nbfnedv766snk [2021-01-15] + properties.siteConfig.localMySqlEnabled: false + properties.siteConfig.netFrameworkVersion: "v4.6" = Microsoft.Insights/components/toywebsite [2020-02-02] = Microsoft.Storage/storageAccounts/mystoragenbfnedv766snk [2021-04-01] = Microsoft.Web/serverfarms/toy-website [2021-01-15] Resource changes: 1 to modify, 3 no change.
La operación hipotética ha detectado un cambio en el recurso del sitio web. Pero los cambios que ha detectado son ruido. No representan cambios reales en el recurso. Con el tiempo, el equipo de Azure trabaja para reducir el ruido. Mientras tanto, para estas dos propiedades específicas, puede omitir los cambios detectados.
Es posible que también vea un elemento en la salida hipotética para el tipo de recurso
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
. Application Insights crea este recurso automáticamente. El comando hipotético detecta que no se realizará ningún cambio en el recurso.
Aprobación de la ejecución de canalización
Seleccione la flecha izquierda para volver a los detalles de ejecución de canalización.
Seleccione el botón Revisar en el panel de aprobación.
En el cuadro Comentario, escriba Resultados hipotéticos revisados.
Seleccione Aprobar.
Observación de la implementación correcta
Después de aprobar la ejecución de canalización, observe que la fase Deploy (Implementación) empieza a ejecutarse.
Espere a que finalice la fase.
Observe que la ejecución de canalización finaliza correctamente.