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 :

Diagram of Azure Developer CLI template workflow.

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 le azure.yaml fichier de définition de service et le infra 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.

  1. 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
    
  2. Ouvrez l’outil de ligne de commande de votre choix dans le répertoire racine du projet.

  3. Exécutez la azd init commande pour initialiser le modèle.

    azd init
    
  4. 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.

  5. 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.

  6. 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 par azd.

  7. Exécutez la azd up commande pour provisionner et déployer votre application sur Azure.

    azd up
    
  8. Lorsque vous y êtes invité, sélectionnez l’abonnement et l’emplacement souhaités pour commencer le processus d’approvisionnement et de déploiement.

  9. 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 :

  1. Créez un dossier .devcontainer à la racine de votre projet.

  2. Créez un devcontainer.json fichier à l’intérieur du .devcontainer dossier avec les configurations souhaitées. Le azd modèle de démarrage fournit un exemple devcontainer.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 :

  1. Ajoutez un .github dossier pour les actions GitHub ou un .ado dossier pour Azure DevOps à la racine de votre projet.

  2. 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.

  3. Vous devrez peut-être également mettre à jour le main.parameters.json fichier dans votre infra 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 :

  1. 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    
    
  2. À l’aide de votre navigateur, accédez au dépôt GitHub de votre projet.

  3. 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

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