Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article répond aux questions fréquemment posées sur l’utilisation des variables d’environnement et de l’interface de ligne de commande du développeur Azure (azd).
Conseil / Astuce
Pour obtenir un guide complet sur la création et la gestion d’environnements dans Azure Developer CLI, consultez Utiliser des environnements dans Azure Developer CLI.
Quelles sont les différences entre azd les variables d’environnement et les variables d’environnement système ?
azd les variables d’environnement sont stockées dans le .env fichier dans le .azure/<environment name> répertoire de votre projet et sont séparées de vos variables d’environnement système/système d’exploitation.
azd les variables d’environnement configurent les tâches d’approvisionnement et de déploiement de modèles et sont accessibles à l’aide de commandes telles que azd env ou azd env get-values.
Les variables d’environnement système ne sont pas directement accessibles via azd des commandes et doivent être gérées avec des scripts Shell ou PowerShell personnalisés, généralement à l’aide azdde hooks.
Les commandes peuvent-elles azd lire et écrire directement des variables d’environnement système ?
Non, azd les commandes ne peuvent pas lire ou écrire des variables d’environnement système. Commandes telles que azd env set ou azd env get-values fonctionnent sur des valeurs stockées dans le fichier de modèle .env pour un environnement spécifique azd .
azd les environnements sont gérés à l’aide de sous-dossiers dans le .azure/<environment name> répertoire de votre modèle de projet, ce qui permet à votre modèle d’avoir plusieurs environnements. Les sous-dossiers d’environnement contiennent des fichiers de configuration tels que .env ceux qui décrivent l’environnement.
Utilisez un interpréteur de commandes personnalisé ou des scripts PowerShell avec azddes hooks pour lire ou écrire des variables d’environnement au niveau du système.
Quelle est la relation entre les variables de sortie définies dans les variables de fichier et azd d’environnement main.bicep ?
Les variables de sortie définies dans le main.bicep fichier sont automatiquement stockées dans le .env fichier de votre azd modèle. Tenez compte des variables de sortie suivantes dans un fichier d’infrastructure main.bicep de modèle :
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Après une réussite azd up ou azd provision, azd écrit ces deux variables dans le .env fichier dans le .azure/<environment name> répertoire de votre projet :
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Vous pouvez ensuite accéder à ces variables à partir du fichier à l’aide .envazd env get-valuesde .
Quelles variables d’environnement sont définies dans le .env fichier par défaut ?
Les variables d’environnement suivantes sont définies dans le .env fichier par défaut :
| Nom | Descriptif | Exemples de valeurs | Lorsqu’il est disponible |
|---|---|---|---|
AZURE_ENV_NAME |
Nom de l’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 d’utilisateur/de 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 ciblé. | 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 une publication réussie d’une containerapp image |
Quelle est l’approche recommandée pour récupérer des azd variables d’environnement à partir du .env fichier ? Pourquoi dois-je le faire ?
Récupérez des azd variables d’environnement à l’aide de la azd env get-values commande.
azd env get-values
Les raisons courantes d’accéder azd aux variables d’environnement sont les suivantes :
- Effectuez une configuration supplémentaire dans les scripts de hook.
- Exposez les
.envvaleurs du modèle à l’infrastructure de code d’application, comme Node.js ou .NET. - Écrivez les valeurs dans les
.envvariables d’environnement système.
Conseil / Astuce
Soyez prudent lorsque vous définissez des variables d’environnement système, car elles peuvent provoquer des conflits avec d’autres modèles qui partagent les mêmes noms de variables d’environnement.
Comment définir manuellement une nouvelle azd variable d’environnement ?
Définissez des variables d’environnement supplémentaires azd à l’aide de la azd env set commande, en fournissant la clé et la valeur de votre variable.
Les raisons courantes de définir azd des variables d’environnement sont les suivantes :
- Accédez aux informations de ressource Azure créées lors de l’approvisionnement nécessaire pendant le déploiement.
- Remplacez ou modifiez les valeurs de variable d’environnement par défaut
azd. - Fournissez des valeurs de configuration personnalisées supplémentaires à utiliser dans l’approvisionnement, le déploiement ou les scripts personnalisés.
azd env set MY_KEY MyValue
Comment copier ou écrire azd des variables d’environnement en tant que variables d’environnement système ?
Dans certains scénarios, vous pouvez copier azd des variables d’environnement dans un autre fichier d’environnement ou dans votre environnement système pour une utilisation par les frameworks de langage. Par exemple, vous pouvez utiliser des URL de point de terminaison à partir de services Azure provisionnés pour vous connecter à ces services dans votre code d’application. Utilisez des scripts personnalisés pour récupérer azd des variables d’environnement, puis définissez-les en tant que variables d’environnement système. Il est courant d’exécuter ces scripts en tant que hooks pendant le azd cycle de vie, comme indiqué dans l’exemple suivant :
Remarque
Soyez prudent lors de la copie de variables d’environnement azd dans votre système local ou dans d’autres environnements d’exploitation. Les variables d’environnement système avec des noms correspondants peuvent être récupérées et azd provoquer des conflits entre différents azd modèles ou différents azd environnements.
postprovision:
windows:
shell: pwsh
run: ./scripts/map-env-vars.ps1
interactive: false
continueOnError: false
posix:
shell: sh
run: ./scripts/map-env-vars.sh
interactive: false
continueOnError: false
Le script shell référencé pour Linux récupère les azd variables d’environnement et les exporte en tant que variables d’environnement système :
echo "Loading azd .env file from current environment..."
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
Le script PowerShell référencé pour Windows récupère les azd variables d’environnement et les exporte en tant que variables d’environnement système :
Write-Host "Loading azd .env file from current environment"
foreach ($line in (& azd env get-values)) {
if ($line -match "([^=]+)=(.*)") {
$key = $matches[1]
$value = $matches[2] -replace '^"|"$'
[Environment]::SetEnvironmentVariable($key, $value)
}
}