Cet article répond aux questions fréquemment posées sur Azure Developer CLI.
Général
Comment faire désinstaller Azure Developer CLI ?
Il existe différentes options de désinstallation azd
en fonction de la façon dont vous l’avez installée à l’origine. Pour plus d’informations, consultez la page d’installation.
Quelle est la différence entre Azure Developer CLI et Azure CLI ?
Azure Developer CLI () et Azure CLI (az
azd
) sont des outils en ligne de commande, mais ils vous aident à effectuer différentes tâches.
azd
se concentre sur le flux de travail de développeur de haut niveau. Outre l’approvisionnement/la gestion des ressources Azure, azd
permet de relier les composants cloud, la configuration du développement local et l’automatisation des pipelines dans une solution complète.
Azure CLI est un outil de plan de contrôle permettant de créer et d’administrer une infrastructure Azure telle que des machines virtuelles, des réseaux virtuels et du stockage. Azure CLI est conçu autour de commandes granulaires pour des tâches administratives spécifiques.
Qu’est-ce qu’un nom d’environnement ?
Azure Developer CLI utilise un nom d’environnement pour définir la variable d’environnement AZURE_ENV_NAME
utilisée par des modèles Azure Developer CLI. AZURE_ENV_NAME est également utilisé pour préfixer le nom du groupe de ressources Azure. Étant donné que chaque environnement dispose de son propre ensemble de configurations, Azure Developer CLI stocke tous les fichiers de configuration dans des répertoires d’environnement.
├── .Azure [This directory displays after you run add init or azd up]
│ ├── <your environment1> [A directory to store all environment-related configurations]
│ │ ├── .env [Contains environment variables]
│ │ └── main.parameters.json [A parameter file]
│ └── <your environment2> [A directory to store all environment-related configurations]
│ │ ├── .env [Contains environment variables]
│ │ └── main.parameters.json [A parameter file]
│ └──config.json
Comment puis-je configurer plusieurs environnements ?
Oui. Vous pouvez configurer différents environnements (par exemple, dev, test, production). Vous pouvez utiliser azd env
pour gérer ces environnements.
Dans quel emplacement le fichier de configuration de l’environnement (.env) est-il stocké ?
Le chemin d’accès du fichier .env est <your-project-directory-name>\.azure\<your-environment-name>\.env
.
Comment le fichier .env est-il utilisé ?
Dans Azure Developer CLI, les azd
commandes font référence au fichier .env pour la configuration de l’environnement. Les commandes telles que azd deploy
mettre à jour le fichier .env avec, par exemple, la base de données chaîne de connexion et le point de terminaison Azure Key Vault.
J’ai exécuté « azd up » dans Codespaces. Puis-je poursuivre mon travail dans un environnement de développement local ?
Oui. Vous pouvez continuer le travail de développement localement.
- Exécutez pour cloner
azd init -t <template repo>
le projet de modèle sur votre ordinateur local. - Pour extraire l’env existante créée à l’aide de Codespaces, exécutez
azd env refresh
. Veillez à fournir le même nom d’environnement, l’abonnement et l’emplacement que précédemment.
Comment le fichier azure.yaml est-il utilisé ?
Le fichier azure.yaml décrit les applications et les types de ressources Azure incluses dans le modèle.
Quel est le comportement de la fonction « secretOrRandomPassword » ?
La secretOrRandomPassword
fonction récupère un secret à partir d’Azure Key Vault si les paramètres du nom et du secret du coffre de clés sont fournis. Si ces paramètres ne sont pas fournis ou qu’un secret ne peut pas être récupéré, la fonction retourne à la place un mot de passe généré de manière aléatoire à utiliser.
L’exemple suivant illustre un cas d’usage courant du secretOrRandomPassword
fichier.main.parameters.json
Les ${AZURE_KEY_VAULT_NAME}
variables et sqlAdminPassword
les variables sont passées en tant que paramètres pour les noms du coffre de clés et du secret. Si la valeur ne peut pas être récupérée, un mot de passe aléatoire est généré à la place.
"sqlAdminPassword": {
"value": "$(secretOrRandomPassword ${AZURE_KEY_VAULT_NAME} sqlAdminPassword)"
}
La sortie de doit également être enregistrée dans Key Vault à l’aide de secretOrRandomPassword
Bicep pour les exécutions ultérieures. La récupération et la réutilisation des mêmes secrets entre les déploiements peuvent empêcher les erreurs ou les comportements inattendus qui peuvent apparaître lors de la génération répétée de nouvelles valeurs. Pour créer un coffre de clés et stocker le secret généré dans celui-ci, utilisez le code Bicep ci-dessous. Vous pouvez afficher l’exemple de code complet de ces modules dans le dépôt GitHub de l’interface de ligne de commande Azure Developer.
module keyVault './core/security/keyvault.bicep' = {
name: 'keyvault'
scope: resourceGroup
params: {
name: '${take(prefix, 17)}-vault'
location: location
tags: tags
principalId: principalId
}
}
module keyVaultSecrets './core/security/keyvault-secret.bicep' = {
name: 'keyvault-secret-sqlAdminPassword'
scope: resourceGroup
params: {
keyVaultName: keyVault.outputs.name
name: 'sqlAdminPassword'
secretValue: sqlAdminPassword
}
}]
Cette configuration de Bicep active le flux de travail suivant pour la gestion de vos secrets :
- Si le secret spécifié existe, il est récupéré à partir de Key Vault à l’aide de la
secretOrRandomPassword
fonction. - Si le secret n’existe pas, un coffre de clés est créé et le secret généré de manière aléatoire est stocké à l’intérieur de celui-ci.
- Lors des déploiements futurs, la
secretOrRandomPassword
méthode récupère le secret stocké maintenant qu’il existe dans Key Vault. Le coffre de clés ne sera pas recréé s’il existe déjà, mais la même valeur secrète sera stockée à nouveau pour l’exécution suivante.
Puis-je utiliser un abonnement Gratuit Azure ?
Oui, mais chaque emplacement Azure ne peut avoir qu’un seul déploiement. Si vous avez déjà utilisé l’emplacement Azure sélectionné, l’erreur de déploiement s’affiche :
InvalidTemplateDeployment: The template deployment '<env_name>' isn't valid according to the validation procedure. The tracking ID is '<tracking_id>'. See inner errors for details.
Vous pouvez sélectionner un autre emplacement Azure pour résoudre le problème.
Mon application hébergée avec Azure App Service déclenche un avertissement « Site trompeur en avance », comment puis-je le corriger ?
Cela peut se produire en raison de notre méthode d’affectation de noms aux ressources.
Nos modèles créés « Azure Dev » permettent de configurer le nom de la ressource. Pour ce faire, vous pouvez ajouter une entrée au main.parameters.json
infra
dossier. Par exemple :
"webServiceName": {
"value": "my-unique-name"
}
Cette entrée crée une ressource nommée « my-unique-name » au lieu d’une valeur aléatoire telle que « app-web-aj84u2adj » la prochaine fois que vous approvisionnez votre application. Vous pouvez supprimer manuellement l’ancien groupe de ressources à l’aide du portail Azure ou exécuter azd down
pour supprimer tous les déploiements précédents. Après avoir supprimé les ressources, exécutez-les azd provision
pour les recréer avec le nouveau nom.
Ce nom doit être globalement unique. Sinon, vous recevrez une erreur ARM lors azd provision
de sa tentative de création de la ressource.
Commande : azd provision
Comment la commande sait-elle quelles ressources approvisionner ?
La commande utilise des modèles Bicep, qui sont trouvés sous <your-project-directory-name>/infra
pour approvisionner des ressources Azure.
Où puis-je trouver les ressources approvisionnées dans Azure ?
Accédez à https://portal.azure.com votre groupe de ressources, puis rg-<your-environment-name>
recherchez votre groupe de ressources.
Comment faire trouver plus d’informations sur les erreurs Azure ?
Nous utilisons des modèles Bicep, qui sont trouvés sous <your-project-directory-name>/infra
, pour approvisionner des ressources Azure. En cas de problème, nous incluons le message d’erreur dans la sortie CLI.
Vous pouvez également accéder à votre groupe de ressources, c’est-à-dire https://portal.azure.comrg-<your-environment-name>
. Si l’un des déploiements échoue, sélectionnez le lien d’erreur pour obtenir plus d’informations.
Pour d’autres ressources, consultez Résoudre les erreurs courantes de déploiement Azure - Azure Resource Manager.
Existe-t-il un fichier journal pour « azd provision » ?
Prochainement disponible. Cette fonctionnalité est prévue pour une version ultérieure.
Commande : azd deploy
Puis-je réexécuter cette commande ?
Oui.
Comment azd trouve-t-elle la ressource Azure dans laquelle déployer mon code ?
Pendant le déploiement, azd
découvre d’abord tous les groupes de ressources qui composent votre application en recherchant des groupes marqués avec azd-env-name
et avec une valeur qui correspond au nom de votre environnement. Ensuite, elle énumère toutes les ressources de chacun de ces groupes de ressources, en recherchant une ressource marquée avec azd-service-name
une valeur qui correspond au nom de votre service à partir de azure.yaml
.
Bien que nous vous recommandons d’utiliser des étiquettes sur les ressources, vous pouvez également utiliser la resourceName
propriété pour azure.yaml
fournir un nom de ressource explicite. Dans ce cas, la logique ci-dessus n’est pas exécutée.
Commande : azd up
Puis-je réexécuter 'azd up' ?
Oui. Nous utilisons le mode de déploiement incrémentiel.
Comment faire trouver le fichier journal pour « azd up » ?
Prochainement disponible. Cette fonctionnalité est prévue pour une version ultérieure.
Commande : pipeline azd
Qu’est-ce qu’un principal de service Azure ?
Un principal de service Azure est une identité créée pour une utilisation avec des applications, des services hébergés et des outils automatisés pour accéder aux ressources Azure. Cet accès est limité par les rôles attribués au principal de service, ce qui vous permet de contrôler les ressources auxquelles vous pouvez accéder et à quel niveau. Pour plus d’informations sur l’authentification d’Azure vers GitHub, consultez Connecter GitHub et Azure | Microsoft Docs.
Dois-je créer un principal de service Azure avant d’exécuter « azd pipeline config » ?
Non. La azd pipeline config
commande s’occupe de la création du principal de service Azure et de l’exécution des étapes nécessaires pour stocker les secrets dans votre dépôt GitHub.
Quels sont tous les secrets stockés dans GitHub ?
La commande stocke quatre secrets dans GitHub : AZURE_CREDENTIALS, AZURE_ENV_NAME, AZURE_LOCATION et AZURE_SUBSCRIPTION_ID. Vous pouvez remplacer la valeur de chaque secret en accédant à https://github.com/<your-GH-account>/<your-repo>/secrets/actions
.
Qu’est-ce qu’OpenID Connecter (OIDC) et est-il pris en charge ?
Avec OpenID Connect, vos workflows peuvent échanger des jetons de courte durée directement depuis Azure.
Bien que OIDC soit pris en charge comme valeur par défaut pour GitHub Actions et Azure Pipeline (défini comme fédéré), il n’est pas pris en charge pour Azure DevOps ou Terraform.
- Pour Azure DevOps, l’appel
--auth-type
federated
explicite entraîne une erreur. - Pour Terraform :
- S’il
--auth-type
n’est pas défini, il revientclientcredentials
et entraîne un avertissement. - S’il
--auth-type
est définifederated
explicitement sur , cela entraîne une erreur.
- S’il
Comment faire réinitialiser le principal de service Azure stocké dans GitHub Actions ?
Accédez à , puis mettez à https://github.com/<your-GH-account>/<your-repo>settings/secrets/actions
jour AZURE_CREDENTIALS
en copiant et en collant l’intégralité de l’objet JSON pour le nouveau principal de service. Par exemple :
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Où est stocké le fichier GitHub Actions ?
Le chemin du fichier GitHub Actions est <your-project-directory-name>\.github\workflows\azure-dev.yml
.
Dans le fichier azure-dev.yml, puis-je déployer uniquement le code à l’étape de génération ?
Oui. Remplacez run: azd up --no-prompt
par run: azd deploy --no-prompt
.
Où puis-je trouver le journal du travail GitHub Actions que j’ai déclenché quand j’ai exécuté la configuration du pipeline azd ?
Accédez à https://github.com/<your-GH-account>/<your-repo>/actions
, puis reportez-vous au fichier journal dans l’exécution du flux de travail.
Génération d’une application conteneur localement
Pourquoi suis-je incapable d’exécuter localement l’application conteneur que je crée ?
Lors de la création d’applications conteneur localement, vous devez exécuter azd auth login
dans le conteneur pour que l’application fonctionne avec le AzureDeveloperCliCredential
. Vous pouvez également configurer votre application pour qu’elle utilise un principal de service au lieu du AzureDeveloperCliCredential
.