Rendre votre projet compatible avec Azure Developer CLI
Azure Developer CLI (azd
) permet aux développeurs de générer une structure de leurs applications pour le cloud à l’aide de modèles hébergés sur GitHub. Microsoft fournit plusieurs modèles pour vous aider à démarrer. Dans cet article, vous allez apprendre à rendre votre propre application azd
compatible.
Comprendre l’architecture du modèle
Le diagramme suivant donne une vue d’ensemble rapide du processus pour créer un azd
modèle :
Tous les azd
modèles ont la même structure de fichiers, en fonction des azd
conventions. La hiérarchie suivante montre la structure de répertoires que vous allez générer dans ce tutoriel.
├── .azdo [ Configures an Azure Pipeline ]
├── .devcontainer [ For DevContainer ]
├── .github [ Configures a GitHub workflow ]
├── .vscode [ VS Code workspace configurations ]
├── .azure [ Stores Azure configurations and environment variables ]
├── infra [ Contains infrastructure as code files ]
│ ├── main.bicep/main.tf [ Main infrastructure file ]
│ ├── main.parameters.json/main.tfvars.json [ Parameters file ]
│ └── core/modules [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml [ Describes the app and type of Azure resources]
Initialiser le modèle
La azd init
commande est utilisée pour initialiser votre application pour l’approvisionnement et le déploiement des ressources d’application sur Azure. Cette commande vous invite à choisir entre deux flux de travail différents pour initialiser un modèle décrit dans les sections suivantes.
Utilisez du code dans le répertoire actif : sélectionnez cette option pour indiquer
azd
à analyser le code de votre répertoire pour identifier les technologies qu’il utilise, telles que le langage de programmation, l’infrastructure et le système de base de données.azd
génère ensuite automatiquement des ressources de modèle pour vous, telles que leazure.yaml
fichier de définition de service et leinfra
dossier avec des fichiers infrastructure-as-code.Sélectionnez un modèle : sélectionnez cette option pour utiliser un modèle existant comme point de départ. Par défaut,
azd
vous pouvez parcourir les modèles à partir de la galerie AZD géniale, mais vous pouvez également configurer vos propres galeries de modèles. Lorsque vous sélectionnez un modèle, les ressources de ce modèle seront ajoutées à votre répertoire de projet existant.
Les détails de chacun de ces flux de travail sont décrits dans les sections ci-dessous.
Vous pouvez suivre les étapes à suivre à l’aide de votre propre projet. Toutefois, si vous préférez suivre l’utilisation d’un exemple d’application, clonez le dépôt de démarrage suivant dans un répertoire vide sur votre ordinateur :
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Ouvrez l’outil de ligne de commande de votre choix dans le répertoire racine du projet.
Exécutez la
azd init
commande pour initialiser le modèle.azd init
Lorsque vous y êtes invité, sélectionnez l’option permettant d’utiliser du code dans le répertoire actif.
azd
analyse le projet et fournit un résumé des services détectés et des ressources d’hébergement Azure recommandées.Sélectionnez Confirmer et continuer à initialiser mon application.
azd
génère les ressources suivantes dans le répertoire racine du projet :- Fichier
azure.yaml
avec les définitions de service appropriées. - Dossier contenant des
infra
fichiers infrastructure-as-code pour approvisionner et déployer le projet sur Azure. - Dossier
.azure
avec variables d’environnement définies dans un.env
fichier.
Vous trouverez plus d’informations sur ce processus de détection et de génération plus loin dans l’article.
- Fichier
Les fichiers générés fonctionnent comme suit pour l’exemple d’application fourni et peuvent également être utilisés pour vos propres applications. Si nécessaire, les fichiers générés peuvent être modifiés pour répondre à vos besoins. Par exemple, vous devrez peut-être modifier davantage les fichiers infrastructure-as-code dans le
infra
dossier si votre application s’appuie sur des ressources Azure au-delà de celles identifiées parazd
.Exécutez la
azd up
commande pour provisionner et déployer votre application sur Azure.azd up
Lorsque vous y êtes invité, sélectionnez l’abonnement et l’emplacement souhaités pour commencer le processus d’approvisionnement et de déploiement.
Une fois le processus terminé, cliquez sur le lien dans la
azd
sortie pour ouvrir l’application dans le navigateur.
Explorer les étapes d’initialisation
Lorsque vous sélectionnez le code Utiliser dans le flux de travail d’annuaire actif, la azd init
commande analyse votre projet et génère automatiquement du code en fonction de ce qu’il découvre. Les sections ci-dessous expliquent les détails du fonctionnement de ce processus et les technologies actuellement prises en charge.
Detection
La azd init
commande détecte les fichiers projet pour les langues prises en charge situées dans votre répertoire de projet et les sous-répertoires. azd
analyse également les dépendances de package pour collecter des informations sur les infrastructures web ou les bases de données utilisées par votre application. Si nécessaire, vous pouvez ajouter ou modifier manuellement les composants détectés, comme indiqué dans l’invite de résumé de confirmation.
La logique de détection actuelle est la suivante :
- Langues prises en charge :
- Python
- JavaScript/TypeScript
- .NET
- Java
- Bases de données prises en charge :
- MongoDB
- PostgreSQL
- Pour Python et JavaScript/TypeScript, les infrastructures web et les bases de données sont automatiquement détectées.
- Lorsqu’un projet JavaScript/TypeScript utilise un framework web frontal (ou côté client), il est classé comme un service frontal. Si votre service utilise une infrastructure web frontale qui n’est pas détectée, vous pouvez sélectionner JQuery pour fournir une classification et un comportement équivalents du service frontal.
Generation
Après avoir confirmé les composants détectés, azd init
génère les fichiers infrastructure-as-code nécessaires pour déployer votre application sur Azure.
La logique de génération est la suivante :
- Hôtes pris en charge :
- Azure Container Apps.
- Pour les bases de données, le mappage pris en charge entre la technologie de base de données et le service utilisé :
- MongoDB : API Azure CosmosDB pour MongoDB
- PostgreSQL : serveur flexible Azure Database pour PostgreSQL
- Redis : Module complémentaire Redis Azure Container Apps
- Les services utilisant des bases de données auront des variables d’environnement qui fournissent une connexion à la base de données préconfigurée par défaut.
- Lorsque les services frontaux et principaux sont détectés, la configuration CORS sur l’hôte Azure pour les services principaux est mise à jour pour autoriser le domaine d’hébergement par défaut des services frontaux. Cette opération peut être modifiée ou supprimée si nécessaire dans les fichiers de configuration de l’infrastructure en tant que code.
Ajouter la prise en charge des conteneurs de développement
Vous pouvez également rendre votre modèle compatible avec les conteneurs de développement et Codespaces. Un conteneur de développement vous permet d’utiliser un conteneur comme environnement de développement complet. Il peut être utilisé pour exécuter une application, pour séparer les outils, les bibliothèques ou les runtimes nécessaires à l’utilisation d’un codebase et pour faciliter l’intégration et le test continus. Les conteneurs de développement peuvent être exécutés localement ou à distance, dans un cloud privé ou public. (Source : https://containers.dev/)
Pour ajouter la prise en charge des conteneurs de développement :
Créez un dossier .devcontainer à la racine de votre projet.
Créez un
devcontainer.json
fichier à l’intérieur du.devcontainer
dossier avec les configurations souhaitées. Leazd
modèle de démarrage fournit un exempledevcontainer.json
de fichier que vous pouvez copier dans votre projet et modifier si nécessaire.
En savoir plus sur l’utilisation des conteneurs de développement dans la documentation Visual Studio Code.
Ajouter la prise en charge d’un pipeline CI/CD
Vous pouvez également ajouter la prise en charge de CI/CD dans votre modèle à l’aide d’actions GitHub ou d’Azure DevOps en procédant comme suit :
Ajoutez un
.github
dossier pour les actions GitHub ou un.ado
dossier pour Azure DevOps à la racine de votre projet.Ajoutez un fichier de flux de travail dans le nouveau dossier. Le
azd
modèle de démarrage fournit un exemple de fichier de flux de travail GitHub Actions et des exemples de fichiers Azure DevOps Pipelines pour chaque plateforme que vous pouvez copier dans votre projet et modifier si nécessaire.Vous devrez peut-être également mettre à jour le
main.parameters.json
fichier dans votreinfra
dossier avec les variables d’environnement requises pour que votre workflow s’exécute.
Configurer le pipeline CI/CD
Si votre modèle inclut la prise en charge de GitHub Actions ou d’Azure Pipelines, vous pouvez configurer un pipeline CI/CD en procédant comme suit :
Exécutez la commande suivante pour envoyer (push) des mises à jour vers le référentiel. Le flux de travail GitHub Actions est déclenché en raison de la mise à jour.
azd pipeline config
À l’aide de votre navigateur, accédez au dépôt GitHub de votre projet.
Sélectionnez Actions pour afficher le flux de travail en cours d’exécution.
Nettoyer les ressources
Lorsque vous n’avez plus besoin des ressources créées dans cet article, exécutez la commande suivante :
azd down
Voir aussi
- Créez des fichiers Bicep avec Visual Studio Code pour une introduction à l’utilisation des fichiers Bicep.
- Exemples Bicep
- Comment décompiler des modèles Azure Resource Manager (modèles ARM) vers Bicep
- Schéma Azure Developer CLI azure.yaml
Demander de l’aide
Pour plus d’informations sur la façon de déposer un bogue, de demander de l’aide ou de proposer une nouvelle fonctionnalité pour l’interface CLI développeur Azure, visitez la page de dépannage et de support .
Étapes suivantes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour