Agregar y configurar una definición de entorno

En este artículo, se explica cómo agregar, actualizar o eliminar una definición de entorno en un catálogo de Azure Deployment Environments. También se explica cómo hacer referencia a una imagen de contenedor para implementar el entorno.

En Azure Deployment Environments, se usa un catálogo para proporcionar a los equipos de desarrollo un conjunto mantenido de plantillas de infraestructura predefinida como código (IaC) 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 puede usar un archivo denominado main.bicep.
    • Una plantilla de Terraform podría usar un archivo denominado azuredeploy.tf.
  • 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.

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.

Uso de imágenes de contenedor para implementar entornos

ADE usa imágenes de contenedor para definir cómo se implementan las plantillas para entornos de implementación. ADE admite ARM y Bicep de forma nativa, por lo que puede configurar una definición de entorno que implemente recursos de Azure para un entorno de implementación agregando los archivos de plantilla (azuredeploy.json y environment.yaml) al catálogo. Luego, ADE usa una imagen de contenedor estándar de ARM o Bicep para crear el entorno de implementación.

Puede crear imágenes de contenedor personalizadas para implementaciones de entorno más avanzadas. Por ejemplo, puede ejecutar scripts antes o después de la implementación. ADE admite imágenes de contenedor personalizadas para implementaciones de entorno, lo que puede ayudar a implementar marcos de IaC como Pulumi y Terraform.

El equipo de ADE proporciona imágenes de contenedor de ARM y Bicep de ejemplo accesibles a través del Registro de artefactos Microsoft (también conocido como Microsoft Container Registry) para ayudarle a empezar.

Para obtener más información sobre cómo crear una imagen de contenedor personalizada, consulte:

Especificación de la imagen de contenedor de ejemplo de ARM o Bicep

En el archivo environment.yaml, la propiedad de ejecutor especifica la ubicación de la imagen que desea usar. Para usar la imagen de ejemplo publicada en el Registro de artefactos Microsoft, use los identificadores de ejecutor respectivos, como se enumera en la tabla siguiente.

Marco IaC Valor del ejecutor
ARM ARM
Bicep Bicep
Terraform Sin imagen de ejemplo. En su lugar, use una imagen de contenedor personalizada.

En el ejemplo siguiente, se muestra un ejecutor que hace referencia a la imagen de contenedor de Bicep de ejemplo:

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

Especificación de una imagen de contenedor personalizada

Para usar una imagen de contenedor personalizada almacenada en un repositorio, use el siguiente formato de ejecutor en el archivo environment.yaml:

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

Edite el valor del ejecutor para hacer referencia al repositorio y a la imagen personalizada, como se muestra en el ejemplo siguiente:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
    templatePath: azuredeploy.json
Propiedad Descripción
YOUR_REGISTRY Registro que almacena la imagen personalizada.
YOUR_REPOSITORY El repositorio de ese registro.
YOUR_TAG Una etiqueta; por ejemplo, un número de versión.

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.