Ajouter la prise en charge d’Azure Developer CLI à votre application à l’aide du code dans votre répertoire d’application
Azure Developer CLI (azd
) fournit deux flux de travail différents pour initialiser un modèle à utiliser avec votre application, notamment :
- Utilisez du code dans le répertoire actif : cette approche analyse votre application et génère automatiquement les ressources d’infrastructure et de configuration prises en charge.
- Sélectionnez un modèle : cette approche vous permet d’intégrer un modèle existant à votre application ou d’utiliser un modèle existant comme point de départ pour une nouvelle application.
Ces deux approches sont explorées dans la documentation De présentation de la création de modèles CLI pour développeurs Azure.
Dans cet article, vous allez apprendre à ajouter la prise en charge de l’interface CLI pour développeurs Azure (azd
) à votre application via le code Utiliser dans l’approche d’annuaire actuelle. Pour plus d’informations sur l’approche alternative, consultez l’ajout azd
de la prise en charge à votre application à l’aide d’un document de modèle existant. Vous pouvez également visiter la formation - générer et déployer azd
des modèles pour plus d’informations sur la création azd
de modèles.
Utiliser du code dans le répertoire actif
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 un terminal 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.
Détection
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.