Agregar y configurar una definición de entorno

En esta guía se explica cómo agregar o actualizar una definición de entorno en un catálogo de Azure Deployment Environments.

En Azure Deployment Environments, puede usar un catálogo para proporcionar a los equipos de desarrollo un conjunto mantenido de infraestructura predefinida como código (IaC) plantillas denominadas definiciones de entorno.

Una definición de entorno se compone de al menos dos archivos:

  • Una plantilla de un marco de IaC. Por ejemplo:
    • Una plantilla de Azure Resource Manager (ARM) podría usar un archivo denominado azuredeploy.json.
    • Una plantilla de Bicep podría usar un archivo denominado azuredeploy.bicep.
    • Una plantilla de Terraform puede usar un archivo denominado azuredeploy.tf, o azuredeploy.tf.json.
  • Un archivo de configuración que proporciona metadatos sobre la plantilla. Este archivo debe denominarse environment.yaml.

Los equipos de desarrollo usan las definiciones de entorno que se proporcionan en el catálogo para implementar entornos en Azure.

Microsoft ofrece un catálogo de ejemplo que puede usar como repositorio. También puede usar su propio repositorio privado, o puede bifurcar y personalizar las definiciones de entorno en el catálogo de ejemplo.

Después de agregue un catálogo al centro de desarrollo, el servicio examina la ruta de acceso de carpeta especificada para identificar las carpetas que contienen una plantilla y un archivo de entorno asociado. La ruta de acceso de carpeta especificada debe ser una carpeta que contenga subcarpetas que contengan los archivos de definición de entorno.

En este artículo aprenderá a:

  • Adición de una definición de entorno
  • Actualización de una definición de entorno
  • Eliminación de una definición de entorno

Adición de una definición de entorno

Para agregar una definición de entorno a un catálogo en Azure Deployment Environments (ADE), primero agregue los archivos al repositorio. A continuación, sincronizará el catálogo del centro de desarrollo con el repositorio actualizado.

Para agregar una definición de entorno:

  1. En el repositorio GitHub o Azure DevOps, cree una subcarpeta en la ruta de acceso de la carpeta del repositorio.

  2. Agregue dos archivos a la nueva subcarpeta del repositorio:

    • Un archivo de plantilla IaC.

    • Un entorno como un archivo YAML.

      El archivoenvironment.yaml contiene metadatos relacionados con la plantilla de IaC.

      El siguiente script es un ejemplo del contenido de un archivo environment.yaml para una plantilla de ARM:

          name: WebApp
          version: 1.0.0
          summary: Azure Web App Environment
          description: Deploys a web app in Azure without a datastore
          runner: ARM
          templatePath: azuredeploy.json
      

      Use la tabla siguiente para comprender los campos del archivoenvironment.yaml:

      Campo Descripción
      nombre Nombre de la definición del entorno.
      version Versión de la definición del entorno. Este campo es opcional.
      summary Una breve descripción de la definición del entorno.
      descripción Descripción detallada de la definición del entorno.
      Corredor Marco IaC que usa la plantilla. El valor puede ser ARM o Bicep. También puede especificar una ruta de acceso a una plantilla almacenada en un registro de contenedor.
      templatePath Ruta de acceso al archivo de plantilla de IaC.

      Para obtener más información sobre las opciones y los tipos de datos que puede usar en environment.yaml, consulte Parámetros y tipos de datos en environment.yaml.

  3. En el centro de desarrollo, vaya a Catálogos, seleccione el repositorio y, a continuación, seleccione Sincronizar.

    Captura de pantalla que muestra cómo sincronizar el catálogo.

El servicio examina el repositorio para buscar nuevas definiciones de entorno. Después de sincronizar el repositorio, las nuevas definiciones de entorno están disponibles para todos los proyectos del centro de desarrollo.

Especificación de una imagen de Terraform

El modelo de extensibilidad de ADE le permite usar su propia imagen de contenedor personalizada para implementar su elección preferida de marco de IaC. Puede compilar y usar su propia imagen de contenedor para ejecutar implementaciones mediante Terraform. Aprenda a configurar una imagen de contenedor para ejecutar implementaciones con Terraform.

Al crear definiciones de entorno que usan una imagen personalizada en su implementación, la propiedad runner proporciona un vínculo a un registro de contenedor donde se almacena esta imagen de contenedor.

La propiedad runner especifica la ubicación de la imagen que desea usar. Cuando use una imagen de Terraform desde un registro de contenedor, edite la propiedad runner para especificar la ubicación que se muestra en el ejemplo siguiente:

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

Especificación de una imagen de ARM o Bicep

El equipo de ADE proporciona plantillas de ARM y Bicep de ejemplo accesibles a través del registro de artefactos de Microsoft (también conocido como Microsoft Container Registry) para ayudarle a empezar. Al realizar implementaciones mediante ARM o Bicep, puede usar la imagen estándar publicada en Registro de artefactos Microsoft (anteriormente conocida como Microsoft Container Registry).

Para usar la imagen de ejemplo publicada en el Registro de artefactos de Microsoft, use los identificadores respectivos para ARM runner: ARM y runner:Bicep para las implementaciones de Bicep.

Para obtener más información sobre cómo compilar y usar imágenes de contenedor de ARM o Bicep en definiciones de entorno, consulte Configuración de la imagen de contenedor para ejecutar implementaciones con ARM y Bicep.

Especificar parámetros para una definición de entorno

Puede especificar parámetros para las definiciones de entorno para permitir a los desarrolladores personalizar sus entornos.

Los parámetros se definen en el archivo environment.yaml.

El siguiente script es un ejemplo de un archivoenvironment.yaml para una plantilla de ARM que incluye dos parámetros; location y name:

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

Para obtener más información sobre los parámetros y sus tipos de datos que puede usar en environment.yaml, consulte Parámetros y tipos de datos en environment.yaml.

Los desarrolladores pueden proporcionar valores para parámetros específicos para sus entornos desde el portal para desarrolladores.

Captura de pantalla del portal para desarrolladores del portal para desarrolladores que muestra el panel de parámetros.

Los desarrolladores también pueden proporcionar valores para parámetros específicos para sus entornos desde la CLI.

az devcenter dev environment create --environment-definition-name
                                    --catalog-name
                                    --dev-center
                                    --environment-name
                                    --environment-type
                                    --project
                                    [--description]
                                    [--no-wait]
                                    [--parameters]
                                    [--tags]
                                    [--user]
                                    [--user-id]

Para obtener más información sobre el comandoaz devcenter dev environment create, consulte la Extensión de la CLI de Azure para devcenter.

Actualización de una definición de entorno

Para modificar la configuración de recursos de Azure en una definición de entorno existente en Azure Deployment Environments, actualice el archivo de plantilla asociado en el repositorio. El cambio se refleja inmediatamente al crear un nuevo entorno mediante la definición de entorno específica. La actualización también se aplica cuando se vuelve a implementar un entorno asociado a esa definición de entorno.

Para actualizar los metadatos relacionados con la plantilla, modifique environment.yaml, y a continuación, actualice el catálogo.

Eliminación de una definición de entorno

Para eliminar una definición de entorno existente, en el repositorio, elimine la subcarpeta que contiene el archivo de plantilla y el archivo YAML del entorno asociado. A continuación, actualice el catálogo.

Después de eliminar una definición de entorno, los equipos de desarrollo ya no pueden usar la definición de entorno específica para implementar un nuevo entorno. Actualice la referencia de definición de entorno para cualquier entorno existente que use la definición de entorno eliminada. Si la referencia no se actualiza y se vuelve a implementar el entorno, se produce un error en la implementación.