Préparation Azure
ORIENTATION OFFICIELLE — CONFORMITÉ OBLIGATOIRE
Ce document est la source officielle et canonique pour préparer les applications au déploiement Azure. Vous DEVEZ suivre ces instructions exactement comme écrites, à moins qu'elles ne contredisent les politiques de sécurité qui vous ont été 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 d'étapes.
Déclencheurs
Activez cette compétence quand l'utilisateur souhaite :
- Créer une nouvelle application
- Ajouter des services ou des composants à une application existante
- Mettre à jour ou modifier 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 physiquement écrire un squelette de fichier
.azure/deployment-plan.mddans le répertoire racine du workspace (et non dans le dossier d'état de session) comme toute première action — avant toute génération ou exécution de code. Écrivez le squelette immédiatement, puis remplissez-le progressivement au fur et à mesure que l'analyse et les recherches 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 et 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 — Marquer les étapes comme complètes 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 la localisation selon Azure Context - ❌ Les actions destructrices exigent
ask_user— Global Rules - ⛔ NE JAMAIS supprimer les répertoires du projet ou du workspace de l'utilisateur — Lors de l'ajout de fonctionnalités à un projet existant, MODIFIEZ les fichiers existants.
azd init -t <template>est destiné aux nouveaux projets seulement ; ne lancez PASazd init -tdans un workspace existant.azd initsimple (sans argument de template) peut être utilisé dans des workspaces existants si approprié. Les suppressions de fichiers au sein d'un projet (par ex., suppression d'artefacts de construction ou de fichiers temporaires) sont autorisées si approprié, mais NE JAMAIS supprimer le répertoire du projet ou du workspace de l'utilisateur lui-même. Voir Global Rules. - Portée : préparation uniquement — Cette compétence génère du code d'infrastructure et des 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 d'erreurs et la vérification de déploiement intégrées. - ⛔ SQL Server Bicep : NE JAMAIS générer
administratorLoginouadministratorLoginPassword— ni dans les propriétés directes, ni dans les branches conditionnelles/ternaires, ni nulle part dans le fichier. Toujours utiliser l'authentification Entra uniquement (azureADOnlyAuthentication: true) inconditionnellement. Voir references/services/sql-database/bicep.md. - Supprimer les templates IaC obsolètes après conversion — Si vous avez converti des templates Bicep du template
azdsélectionné en templates Terraform, supprimez les templates Bicep introduits par ce templateazdet maintenant complètement remplacés par les équivalents Terraform. Ne supprimez pas les fichiers Bicep créés par l'utilisateur. Supprimez seulement les fichiers Bicep fournis par le template après que l'IaC Terraform soit complet et que Terraform ait été sélectionné comme chemin de déploiement. Avant de passer au skill azure-validate, conservez uniquement les templates IaC requis par le chemin de déploiement choisi.
❌ FLUX DE TRAVAIL PLAN-FIRST — OBLIGATOIRE
VOUS DEVEZ CRÉER UN PLAN AVANT DE FAIRE QUOI QUE CE SOIT
- ARRÊT — Ne générez aucun code, infrastructure ou configuration pour l'instant
- CRÉER LE SQUELETTE - Écrivez un squelette initial
.azure/deployment-plan.mdsur le disque immédiatement (avant toute génération ou exécution de code), puis remplissez-le progressivement au fur et à mesure que les étapes 1-5 de la Phase 1 révèlent les détails ; finalisez-le à 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 flux de travail et pour les skills azure-validate et azure-deploy. Sans lui, ces skills échoueront.⚠️ CRITIQUE :
.azure/deployment-plan.mdDOIT être ÉCRIT SUR LE DISQUE dans la racine du workspace (par ex.,/tmp/my-project/.azure/deployment-plan.md), et non dans le dossier d'état de session. 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 plan causera l'échec d'azure-validate et azure-deploy. Cette exigence n'a pas d'exceptions.
❌ ÉTAPE 0 : Vérification de technologie spécialisée — PREMIÈRE ACTION OBLIGATOIRE
AVANT de commencer la Phase 1, vérifiez si la requête de l'utilisateur OU la base de code du workspace correspond à une technologie spécialisée qui possède un skill dédié avec des templates testés. Si correspondance, invoquez ce skill FIRST — puis reprenez azure-prepare pour la validation et le déploiement.
Vérification 1 : Mots-clés de la requête
| Mots-clés de la requête | Invoquer FIRST |
|---|---|
| Python + App Service (par ex., "déployer Python sur App Service", "Flask sur Azure App Service", "publier l'application web Python sur App Service") | python-appservice-deploy |
| Lambda, AWS Lambda, migrer AWS, migrer GCP, Lambda vers 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, fonction serverless, 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, politique AI gateway, backend AI gateway, configuration AI gateway | azure-aigateway |
| workflow, orchestration, multi-étapes, pipeline, fan-out/fan-in, saga, processus long terme, durable, traitement de commandes | Rester dans azure-prepare — sélectionner recette durable à l'étape 4. DOIT charger durable.md, DTS reference, et DTS Bicep patterns. |
Vérification 2 : Marqueurs de base de code (même si la requête est générique comme "déployer sur Azure")
| Marqueur de base de code | Où | Invoquer FIRST |
|---|---|---|
@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 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 la requête de l'utilisateur — pas seulement le code existant. Critique pour les projets greenfield sans base de code à scanner. Voir table de routage complète.
Après la fin du skill spécialisé, 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 (BLOQUANTE — Complèter avant toute exécution)
Créez .azure/deployment-plan.md en complétant ces étapes. NE générez AUCUN artefact jusqu'à ce que le plan soit approuvé.
| # | Action | Référence |
|---|---|---|
| 0 | ❌ Vérifier la requête ET la base de code pour technologie spécialisée — Si l'utilisateur mentionne copilot SDK, Azure Functions, etc., OU la base de code contient @github/copilot-sdk, invoquez ce skill d'abord |
specialized-routing.md |
| 1 | Analyser le workspace — Déterminer le mode : NEW, MODIFY, ou MODERNIZE | analyze.md |
| 2 | Recueillir les exigences — Classification, échelle, budget | requirements.md |
| 3 | Scanner 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 stack + mapper les composants aux services Azure | architecture.md |
| 6 | Finaliser le plan (OBLIGATOIRE) - Utiliser un outil d'écriture de fichier pour finaliser .azure/deployment-plan.md avec toutes les décisions des étapes 1-5. Mettre à jour le squelette écrit au début de la Phase 1 avec le contenu complet. Le fichier doit être complètement rempli avant de présenter le plan à 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 exigent ask_user |
Global Rules |
❌ ARRÊT ICI — NE procédez PAS à la Phase 2 jusqu'à ce que l'utilisateur approuve le plan.
Phase 2 : Exécution (Seulement après approbation du plan)
Exécutez le plan approuvé. Mettez à jour le statut dans .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 skills connexes | research.md |
| 2 | Confirmer le contexte Azure — Détecter et confirmer l'abonnement + la localisation et vérifier la limite de provisionnement de 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 meilleures 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 passage) — Utiliser l'outil edit pour changer le Status dans .azure/deployment-plan.md en Ready for Validation. Vous DEVEZ compléter cette modification AVANT d'invoquer azure-validate. Ne sautez PAS cette étape. |
.azure/deployment-plan.md |
| 7 | ⛔ PASSAGE OBLIGATOIRE — Invoquer le skill azure-validate. Votre travail de préparation est terminé. NE lancez PAS azd up, azd deploy, ou aucune 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ÉALABLE : L'étape 6 doit être complétée en premier — le statut dans .azure/deployment-plan.md doit dire Ready for Validation. |
— |
Résultats
| Artefact | Localisation |
|---|---|
| Plan | .azure/deployment-plan.md |
| Infrastructure | ./infra/ |
| Config 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 PAS IGNORER
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. NE lancez PAS
azd upou aucune commande de déploiement directement. Le flux de travail est :
azure-prepare→azure-validate→azure-deploy⛔ AVANT d'invoquer azure-validate, vous DEVEZ utiliser l'outil
editpour mettre à jour le statut dans.azure/deployment-plan.mdenReady 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 incluant les applications conteneurisées, Container Apps, App Service, Azure Functions, sites statiques, et tout autre cible Azure. Aucune exception.
Ignorer la validation conduit à des échecs de déploiement. Soyez patient et suivez le flux de travail complet pour le meilleur résultat.
→ Mettre à jour le statut du plan en Ready for Validation, puis invoquer azure-validate