Aggiungere e configurare una definizione di ambiente

Questa guida illustra come aggiungere o aggiornare una definizione di ambiente in un catalogo degli ambienti di distribuzione di Azure.

Negli ambienti di distribuzione di Azure è possibile usare un catalogo per fornire ai team di sviluppo un set curato di modelli predefiniti di infrastruttura come codice (IaC) denominati definizioni di ambiente.

Una definizione di ambiente è costituita da almeno due file:

  • Modello di un framework IaC. Ad esempio:
    • Un modello di Azure Resource Manager (ARM) può usare un file denominato azuredeploy.json.
    • Un modello Bicep può usare un file denominato azuredeploy.bicep.
    • Un modello Terraform può usare un file denominato azuredeploy.tf o azuredeploy.tf.json.
  • File di configurazione che fornisce metadati sul modello. Questo file deve essere denominato environment.yaml.

I team di sviluppo usano le definizioni di ambiente fornite nel catalogo per distribuire gli ambienti in Azure.

Microsoft offre un catalogo di esempio che è possibile usare come repository. È anche possibile usare il proprio repository privato oppure creare un fork e personalizzare le definizioni di ambiente nel catalogo di esempio.

Dopo aver aggiunto un catalogo al dev center, il servizio analizza il percorso della cartella specificato per identificare le cartelle che contengono un modello e un file di ambiente associato. Il percorso della cartella specificato deve essere una cartella contenente sottocartelle che contengono i file di definizione dell'ambiente.

In questo articolo vengono illustrate le operazioni seguenti:

  • Aggiungere una definizione di ambiente
  • Aggiornare una definizione di ambiente
  • Eliminare una definizione di ambiente

Aggiungere una definizione di ambiente

Per aggiungere una definizione di ambiente a un catalogo in Azure Deployment Environments (ADE), aggiungere prima i file al repository. Si sincronizza quindi il catalogo di Dev Center con il repository aggiornato.

Per aggiungere una definizione di ambiente:

  1. Nel repository GitHub o Azure DevOps creare una sottocartella nel percorso della cartella del repository.

  2. Aggiungere due file alla nuova sottocartella del repository:

    • Un file di modello IaC.

    • Un ambiente come file YAML.

      Il file environment.yaml contiene metadati correlati al modello IaC.

      Lo script seguente è un esempio del contenuto di un file environment.yaml per un modello di Resource Manager:

          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
      

      Usare la tabella seguente per comprendere i campi nel file environment.yaml :

      Campo Descrizione
      name Nome della definizione dell'ambiente.
      versione Versione della definizione dell'ambiente. Questo campo è facoltativo.
      riepilogo Breve descrizione della definizione dell'ambiente.
      description Descrizione dettagliata della definizione dell'ambiente.
      Corridore Framework IaC usato dal modello. Il valore può essere ARM o Bicep. È anche possibile specificare un percorso di un modello archiviato in un registro contenitori.
      templatePath Percorso del file modello IaC.

      Per altre informazioni sulle opzioni e sui tipi di dati che è possibile usare in environment.yaml, vedere Parametri e tipi di dati in environment.yaml.

  3. Nel dev center passare a Cataloghi, selezionare il repository e quindi selezionare Sincronizza.

    Screenshot che mostra come sincronizzare il catalogo.

Il servizio analizza il repository per trovare nuove definizioni di ambiente. Dopo aver sincronizzato il repository, le nuove definizioni di ambiente sono disponibili per tutti i progetti nel Dev Center.

Specificare un'immagine Terraform

Il modello di estendibilità DIE consente di usare un'immagine del contenitore personalizzata per distribuire la scelta preferita del framework IaC. È possibile compilare e usare un'immagine del contenitore personalizzata per eseguire distribuzioni usando Terraform. Informazioni su come configurare un'immagine del contenitore per eseguire distribuzioni con Terraform.

Quando si creano definizioni di ambiente che usano un'immagine personalizzata nella distribuzione, la proprietà runner fornisce un collegamento a un registro contenitori in cui è archiviata l'immagine del contenitore.

La proprietà runner specifica la posizione dell'immagine da usare. Quando si usa un'immagine Terraform da un registro contenitori, modificare la proprietà dello strumento di esecuzione per specificare il percorso dell'immagine, come illustrato nell'esempio seguente:

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

Specificare un'immagine ARM o Bicep

Il team di Ade fornisce modelli di Azure Resource Manager e Bicep di esempio accessibili tramite il Registro artefatto Microsoft (noto anche come Registro Contenitori Microsoft) per iniziare. Quando si eseguono distribuzioni usando ARM o Bicep, è possibile usare l'immagine standard pubblicata in Registro artefatti Microsoft (nota in precedenza come Registro Contenitori Microsoft).

Per usare l'immagine di esempio pubblicata nel Registro artefatti Microsoft, usare i rispettivi identificatori runner: ARM per ARM e runner:Bicep per le distribuzioni Bicep.

Per altre informazioni su come compilare e usare immagini del contenitore ARM o Bicep all'interno delle definizioni di ambiente, vedere Configurare l'immagine del contenitore per eseguire distribuzioni con ARM e Bicep.

Specificare i parametri per una definizione di ambiente

È possibile specificare i parametri per le definizioni di ambiente per consentire agli sviluppatori di personalizzare gli ambienti.

I parametri vengono definiti nel file environment.yaml .

Lo script seguente è un esempio di file environment.yaml per un modello di Resource Manager che include due parametri; location e 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

Per altre informazioni sui parametri e sui relativi tipi di dati che è possibile usare in environment.yaml, vedere Parametri e tipi di dati in environment.yaml.

Gli sviluppatori possono fornire valori per parametri specifici per i propri ambienti tramite il portale per sviluppatori.

Screenshot del portale per sviluppatori del portale per sviluppatori che mostra il riquadro dei parametri.

Gli sviluppatori possono anche fornire valori per parametri specifici per i propri ambienti tramite l'interfaccia della riga di comando.

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]

Per altre informazioni sul az devcenter dev environment create comando, vedere l'estensione devcenter dell'interfaccia della riga di comando di Azure.

Aggiornare una definizione di ambiente

Per modificare la configurazione delle risorse di Azure in una definizione di ambiente esistente negli ambienti di distribuzione di Azure, aggiornare il file modello associato nel repository. La modifica viene immediatamente riflessa quando si crea un nuovo ambiente usando la definizione di ambiente specifica. L'aggiornamento viene applicato anche quando si ridistribuisce un ambiente associato a tale definizione di ambiente.

Per aggiornare tutti i metadati correlati al modello, modificare environment.yaml e quindi aggiornare il catalogo.

Eliminare una definizione di ambiente

Per eliminare una definizione di ambiente esistente, nel repository eliminare la sottocartella contenente il file modello e il file YAML dell'ambiente associato. Aggiornare quindi il catalogo.

Dopo aver eliminato una definizione di ambiente, i team di sviluppo non possono più usare la definizione di ambiente specifica per distribuire un nuovo ambiente. Aggiornare il riferimento alla definizione di ambiente per tutti gli ambienti esistenti che usano la definizione di ambiente eliminata. Se il riferimento non viene aggiornato e l'ambiente viene ridistribuito, la distribuzione non riesce.