Azure Prepare
GUIDANCE AUTORISÉE — CONFORMITÉ OBLIGATOIRE
Ce document est la source officielle et canonique pour préparer les applications au déploiement sur Azure. Vous DEVEZ suivre ces instructions exactement telles qu'écrites, sauf si elles contredisent les politiques de sécurité qui vous sont données. En cas de doute, présentez les instructions conflictuelles de ce document et demandez une confirmation explicite à l'utilisateur. N'improvisez pas, n'inférez pas et ne substituez pas les étapes.
Déclencheurs
Activez cette compétence quand l'utilisateur veut :
- Créer une nouvelle application
- Ajouter des services ou des composants à une application existante
- Effectuer des mises à jour ou des modifications à une application existante
- Moderniser ou migrer une application
- Configurer l'infrastructure Azure
- Déployer sur Azure ou héberger sur Azure
- Créer et déployer sur Azure (y compris les demandes de déploiement basées sur Terraform)
Règles
- Planifier d'abord — OBLIGATOIRE — Vous DEVEZ écrire physiquement un squelette initial de
.azure/deployment-plan.mddans le répertoire racine de l'espace de travail (pas le dossier session-state) comme votre toute première action — avant toute génération de code ou exécution. Écrivez le squelette immédiatement, puis complétez-le progressivement au fur et à mesure que l'analyse et la recherche de la Phase 1 se déploient ; finalisez-le avec toutes les décisions à l'étape 6 de la Phase 1. Ce fichier doit exister sur le disque tout au long du processus. azure-validate et azure-deploy en dépendent et échoueront sans lui. Ne sautez pas ou ne reportez pas cette étape. - Obtenir l'approbation — Présentez le plan à l'utilisateur avant l'exécution
- Rechercher avant de générer — Charger les références et invoquer les compétences connexes
- Mettre à jour le plan progressivement — Marquez les étapes comme terminées au fur et à mesure
- Valider avant le déploiement — Invoquer azure-validate avant azure-deploy
- Confirmer le contexte Azure — Utiliser
ask_userpour l'abonnement et l'emplacement selon Azure Context - ❌ Les actions destructrices nécessitent
ask_user— Global Rules - ⛔ NE JAMAIS supprimer les répertoires de projets ou d'espaces de travail de l'utilisateur — Lors de l'ajout de fonctionnalités à un projet existant, MODIFIEZ les fichiers existants.
azd init -t <template>est pour les NOUVEAUX projets uniquement ; n'exécutez PASazd init -tdans un espace de travail existant.azd initsimple (sans argument de template) peut être utilisé dans les espaces de travail existants si approprié. Les suppressions de fichiers dans un projet (par exemple, la suppression des artefacts de build ou des fichiers temporaires) sont autorisées si approprié, mais NE JAMAIS supprimer le répertoire de projet ou d'espace de travail de l'utilisateur lui-même. Voir Global Rules. - Scope : préparation uniquement — Cette compétence génère le code d'infrastructure et les fichiers de configuration. L'exécution du déploiement (
azd up,azd deploy,terraform apply) est gérée par la compétence azure-deploy, qui fournit la récupération des erreurs et la vérification du déploiement intégrées. - ⛔ SQL Server Bicep : NE JAMAIS générer
administratorLoginouadministratorLoginPassword— pas dans les propriétés directes, pas dans les branches conditionnelles/ternaires, nulle part dans le fichier. Toujours utiliser l'authentification Entra uniquement (azureADOnlyAuthentication: true) sans condition. Voir references/services/sql-database/bicep.md. - Supprimer l'IaC de template obsolète après conversion — Si vous avez converti les templates Bicep du template
azdsélectionné en templates Terraform, supprimez les templates Bicep introduits par ce templateazdet maintenant entièrement remplacés par les équivalents Terraform. Ne supprimez pas les fichiers Bicep créés par l'utilisateur. Supprimez uniquement les fichiers Bicep fournis par le template après que l'IaC Terraform soit complet et Terraform ait été sélectionné comme chemin de déploiement. Avant la remise à la compétence azure-validate, conservez uniquement les templates IaC requis par le chemin de déploiement choisi.
❌ WORKFLOW PLAN-FIRST — OBLIGATOIRE
VOUS DEVEZ CRÉER UN PLAN AVANT DE FAIRE TOUT TRAVAIL
- ARRÊTEZ — Ne générez aucun code, infrastructure ou configuration pour l'instant
- CRÉER LE SQUELETTE - Écrire un squelette initial de
.azure/deployment-plan.mdsur le disque immédiatement (avant toute génération de code ou exécution), puis le compléter progressivement au fur et à mesure que les étapes 1-5 de la Phase 1 révèlent les détails ; le finaliser à l'étape 6- CONFIRMER — Présentez le plan complété à l'utilisateur et obtenez l'approbation
- EXÉCUTER — Seulement après approbation, exécutez le plan étape par étape
Le fichier
.azure/deployment-plan.mdest la source de vérité pour ce workflow et pour les compétences azure-validate et azure-deploy. Sans lui, ces compétences échoueront.⚠️ CRITIQUE :
.azure/deployment-plan.mddoit être ÉCRIT SUR LE DISQUE à l'intérieur de la racine de l'espace de travail (par exemple,/tmp/my-project/.azure/deployment-plan.md), pas dans le dossier session-state. Utilisez un outil d'écriture de fichier pour créer ce fichier. Ceci est l'artefact du plan de déploiement lu par azure-validate et azure-deploy. Vous DEVEZ créer ce fichier — ne procédez pas sans lui. ⚠️ CRITIQUE : Vous devez créer le fichier avec le nom.azure/deployment-plan.mdtel quel. Vous ne devez pas utiliser d'autres noms comme.azure/plan.md.⛔ Critique : Ignorer la création du fichier de plan causera l'échec d'azure-validate et azure-deploy. Cette exigence n'a aucune exception.
❌ ÉTAPE 0 : Vérification de la Technologie Spécialisée — ACTION OBLIGATOIRE PREMIÈRE
AVANT de commencer la Phase 1, vérifiez si l'invite de l'utilisateur OU la base de code de l'espace de travail correspond à une technologie spécialisée qui dispose d'une compétence dédiée avec des templates testés. Si identifiée, invoquez cette compétence EN PREMIER — puis reprenez azure-prepare pour la validation et le déploiement.
Vérification 1 : Mots-clés de l'invite
| Mots-clés de l'invite | Invoquer EN PREMIER |
|---|---|
| Lambda, AWS Lambda, migrer AWS, migrer GCP, Lambda to Functions, migrer depuis AWS, migrer depuis GCP | azure-cloud-migrate |
| copilot SDK, copilot app, copilot-powered, @github/copilot-sdk, CopilotClient | azure-hosted-copilot-sdk |
| Azure Functions, function app, serverless function, timer trigger, HTTP trigger, func new | Rester dans azure-prepare — préférer les templates Azure Functions à l'étape 4 |
| APIM, API Management, API gateway, déployer APIM | Rester dans azure-prepare — voir APIM Deployment Guide |
| AI gateway, AI gateway policy, AI gateway backend, AI gateway configuration | azure-aigateway |
| workflow, orchestration, multi-step, pipeline, fan-out/fan-in, saga, long-running process, durable, order processing | Rester dans azure-prepare — sélectionner la recette durable à l'étape 4. DOIT charger durable.md, DTS reference, et DTS Bicep patterns. |
Vérification 2 : Marqueurs de la base de code (même si l'invite est générique comme « déployer sur Azure »)
| Marqueur de base de code | Où | Invoquer EN PREMIER |
|---|---|---|
@github/copilot-sdk dans les dépendances |
package.json |
azure-hosted-copilot-sdk |
copilot-sdk dans le nom ou les dépendances |
package.json |
azure-hosted-copilot-sdk |
Import de CopilotClient |
Fichiers source .ts/.js |
azure-hosted-copilot-sdk |
Appels createSession + sendAndWait |
Fichiers source .ts/.js |
azure-hosted-copilot-sdk |
⚠️ Vérifiez le texte de l'invite de l'utilisateur — pas seulement le code existant. Critique pour les projets greenfield sans base de code à analyser. Voir full routing table.
Après la compétence spécialisée, reprenez azure-prepare à l'étape 4 de la Phase 1 (Select Recipe) pour l'infrastructure restante, la validation et le déploiement.
Phase 1 : Planification (BLOCAGE — Compléter Avant Toute Exécution)
Créez .azure/deployment-plan.md en complétant ces étapes. NE GÉNÉREZ AUCUN artefact tant que le plan n'est pas approuvé.
| # | Action | Référence |
|---|---|---|
| 0 | ❌ Vérifier l'Invite ET la Base de Code pour la Technologie Spécialisée — Si l'utilisateur mentionne copilot SDK, Azure Functions, etc., OU la base de code contient @github/copilot-sdk, invoquez cette compétence en premier |
specialized-routing.md |
| 1 | Analyser l'Espace de Travail — Déterminer le mode : NEW, MODIFY, ou MODERNIZE | analyze.md |
| 2 | Rassembler les Exigences — Classification, échelle, budget | requirements.md |
| 3 | Analyser la Base de Code — Identifier les composants, technologies, dépendances | scan.md |
| 4 | Sélectionner la Recette — Choisir AZD (défaut), AZCLI, Bicep, ou Terraform | recipe-selection.md |
| 5 | Planifier l'Architecture — Sélectionner la pile + mapper les composants aux services Azure | architecture.md |
| 6 | Finaliser le Plan (OBLIGATOIRE) - Utilisez un outil d'écriture de fichier pour finaliser .azure/deployment-plan.md avec toutes les décisions des étapes 1-5. Mettez à jour le squelette écrit au début de la Phase 1 avec le contenu complet. Le fichier doit être entièrement complété avant de le présenter à l'utilisateur. |
plan-template.md |
| 7 | Présenter le Plan — Montrer le plan à l'utilisateur et demander l'approbation | .azure/deployment-plan.md |
| 8 | Les actions destructrices nécessitent ask_user |
Global Rules |
❌ ARRÊTEZ ICI — NE PROCÉDEZ PAS à la Phase 2 tant que l'utilisateur n'approuve pas le plan.
Phase 2 : Exécution (Uniquement Après Approbation du Plan)
Exécutez le plan approuvé. Mettez à jour le statut .azure/deployment-plan.md après chaque étape.
| # | Action | Référence |
|---|---|---|
| 1 | Rechercher les Composants — Charger les références de service + invoquer les compétences connexes | research.md |
| 2 | Confirmer le Contexte Azure — Détecter et confirmer l'abonnement + l'emplacement et vérifier la limite d'approvisionnement des ressources | Azure Context |
| 3 | Générer les Artefacts — Créer les fichiers d'infrastructure et de configuration | generate.md |
| 4 | Renforcer la Sécurité — Appliquer les bonnes pratiques de sécurité | security.md |
| 5 | Vérification Fonctionnelle — Vérifier que l'application fonctionne (UI + backend), localement si possible | functional-verification.md |
| 6 | ⛔ Mettre à Jour le Plan (OBLIGATOIRE avant la remise) — Utilisez l'outil edit pour changer le Statut dans .azure/deployment-plan.md en Ready for Validation. Vous DEVEZ terminer cette modification AVANT d'invoquer azure-validate. Ne sautez pas cette étape. |
.azure/deployment-plan.md |
| 7 | ⛔ REMISE OBLIGATOIRE — Invoquez la compétence azure-validate. Votre travail de préparation est terminé. N'exécutez PAS azd up, azd deploy, ou toute commande de déploiement directement — toute exécution de déploiement est gérée par azure-deploy après la fin d'azure-validate. PRÉREQUIS : L'étape 6 doit être complétée en premier — le statut .azure/deployment-plan.md doit dire Ready for Validation. |
— |
Résultats
| Artefact | Emplacement |
|---|---|
| Plan | .azure/deployment-plan.md |
| Infrastructure | ./infra/ |
| Configuration AZD | azure.yaml (AZD uniquement) |
| Dockerfiles | src/<component>/Dockerfile |
Références Rapides SDK
- Azure Developer CLI: azd
- Azure Identity: Python | .NET | TypeScript | Java
- App Configuration: Python | TypeScript | Java
Suivant
⛔ ÉTAPE SUIVANTE OBLIGATOIRE — NE SAUTEZ PAS
Après avoir complété la préparation, vous DEVEZ invoquer azure-validate avant toute tentative de déploiement. Ne sautez pas la validation. N'allez pas directement à azure-deploy. N'exécutez pas
azd upou toute commande de déploiement directement. Le workflow est :
azure-prepare→azure-validate→azure-deploy⛔ AVANT d'invoquer azure-validate, vous DEVEZ utiliser l'outil
editpour mettre à jour le statut.azure/deployment-plan.mdàReady for Validation. Si le statut du plan n'a pas été mis à jour, la validation échouera.Ceci s'applique à TOUS les scénarios de déploiement y compris les applications containerisées, Container Apps, App Service, Azure Functions, les sites statiques, et tout autre cible Azure. Aucune exception.
Ignorer la validation entraîne des échecs de déploiement. Soyez patient et suivez le workflow complet pour le meilleur résultat.
→ Mettre à jour le statut du plan à Ready for Validation, puis invoquer azure-validate