Gérer les variables d’environnement

Les variables d’environnement ont un impact sur la façon dont les ressources sont approvisionnées et déployées sur Azure. Cela est particulièrement utile lors de l’exécution d’azd dans des scénarios de workflow CI/CD.

Substitution des paramètres d’entrée

Les variables d’environnement peuvent être référencées dans les fichiers de paramètres (*.parameters.json pour Bicep, *.tfvars.json pour Terraform) dans le cadre de l’approvisionnement. Lorsqu’une syntaxe de substitution d’une variable d’environnement est détectée, azd remplace automatiquement la référence par le jeu de valeurs de variable d’environnement réel. La substitution se produit également pour certains paramètres de configuration dans azure.yaml (propriétés documentées avec « Prise en charge de la substitution des variables d’environnement »), et dans les fichiers de configuration de déploiement, tels que les manifestes de déploiement pour aks.

Exemple de substitution de paramètre d’entrée (Bicep)

Supposons la variable d’environnement AZURE_LOCATION soit définie :

export AZURE_LOCATION=westus3
$env:AZURE_LOCATION='westus3'

Dans le fichier main.parameters.json, vous pouvez référencer AZURE_LOCATION et autoriser la substitution de l’environnement à l’aide de la syntaxe suivante :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value": "${AZURE_LOCATION}"
    }
  }
}

Fichier .env spécifique à l’environnement

Les sorties pour l’approvisionnement d’infrastructure sont automatiquement stockées en tant que variables d’environnement dans un fichier .env, située sous .azure/<environment name>/.env. Cette configuration permet à une application locale ou à des scripts de déploiement d’utiliser des variables stockées dans le fichier .env pour référencer les ressources hébergées par Azure si nécessaire. Pour afficher ces sorties, exécutez azd env get-values, ou azd env get-values --output json pour la sortie JSON.

Variables d’environnement fournies par azd

Les variables suivantes sont automatiquement fournies par azd :

Nom Description Exemples Si disponible
AZURE_ENV_NAME Nom de la variable d’environnement en cours d’utilisation. todo-app-dev Lorsqu’un environnement est créé (après avoir exécuté azd init ou azd env new, par exemple).
AZURE_LOCATION Emplacement de l’environnement en cours d’utilisation. eastus2 Juste avant l’approvisionnement d’un environnement pour la première fois.
AZURE_PRINCIPAL_ID Principal de l’utilisateur/du service en cours d’exécution. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Déterminé automatiquement lors de l’approvisionnement (éphémère).
AZURE_SUBSCRIPTION_ID Abonnement cible. 925cff12-ffff-4e9f-9580-8c06239dcaa4 Juste avant l’approvisionnement d’un environnement pour la première fois.
SERVICE_<service>_IMAGE_NAME Nom complet de l’image conteneur publiée dans Azure Container Registry pour les services d’application conteneur. todoapp/web-dev:azdev-deploy-1664988805 Après la publication réussie d’une image containerapp

Variables d’environnement fournies par l’utilisateur

Les variables fournies par l’utilisateur peuvent être déclarées en tant que paramètres de sortie d’infrastructure (qui est automatiquement stocké dans .env) dans le fichier main.bicep ou définies directement par l’utilisateur dans l’environnement (azd env set <key> <value>). azd lit les valeurs en tant que configuration et se comporte différemment.

Nom Description Exemples Effets
AZURE_AKS_CLUSTER_NAME Nom du cluster Azure Kubernetes Service à cibler. aks-my-cluster Propriété requise pour le déploiement d’un service aks.
AZURE_RESOURCE_GROUP Groupe de ressources spécifique à cibler. Tapez chaîne. rg-todo-dev azd n’effectue pas de découverte de groupe de ressources et fait référence à ce groupe de ressources. azd ne contrôle pas non plus les fichiers de configuration de l’IaC créés, de sorte que des modifications des fichiers de l’IaC peuvent s’avérer nécessaires.
AZURE_CONTAINER_REGISTRY_ENDPOINT Point de terminaison Azure Container Registry pour publier l’image Docker. Tapez chaîne. myexampleacr.azurecr.io Propriété requise pour le déploiement d’un service containerapp ou aks.
SERVICE_<service>_ENDPOINTS Points de terminaison du service particulier. Tapez array (bicep) / list-equivalent (terraform). ['endpoint1', 'endpoint2'] Définit les points de terminaison publics pour le service particulier qui seront utilisés par azd pour l’affichage. Par défaut, azd découvre les noms d’hôte attribués automatiquement pour un hôte donné, par exemple *.azurewebsites.net pour appservice.

Activer le mode démo

azd inclut un mode de démonstration qui masque votre ID d’abonnement dans la sortie de la console. Cette fonctionnalité est utile pour les scénarios dans lesquels vous souhaitez faire une démonstration ou présenter des commandes azd dans un paramètre public.

Le mode de démonstration introduit la variable d’environnement : AZD_DEMO_MODE. Pour activer le mode de démonstration, exécutez :

export AZD_DEMO_MODE true

Si vous souhaitez que le mode de démonstration persiste entre les redémarrages, vous pouvez également exécuter :

setx AZD_DEMO_MODE true

ou dans PowerShell :

$env:AZD_DEMO_MODE="true"