/ Annuaire / Playground / Azure AI Gateway
● Officiel Azure-Samples 🔑 Nécessite votre clé

Azure AI Gateway

par Azure-Samples · Azure-Samples/AI-Gateway

Les modèles de passerelle IA basés sur APIM de Microsoft — acheminez, mesurez et gouvernez le trafic LLM (y compris MCP) à partir d'Azure API Management.

Azure AI Gateway est un dépôt de référence-implémentation de Microsoft montrant comment placer Azure API Management (APIM) devant des endpoints LLM/MCP pour l'authentification, les quotas, la mise en cache, l'acheminement, la journalisation et la rupture de circuit. Le MCP expose ces opérations de passerelle afin qu'un agent puisse les configurer et les inspecter.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

azure-ai-gateway.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "azure-ai-gateway",
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "azure-ai-gateway": {
      "command": {
        "path": "uvx",
        "args": [
          "azure-ai-gateway-mcp"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add azure-ai-gateway -- uvx azure-ai-gateway-mcp

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Azure AI Gateway

Appliquer des quotas de tokens par équipe sur les déploiements Azure OpenAI

👤 Les équipes de plateforme centrale gouvernant les dépenses LLM ⏱ ~30 min advanced

Quand l'utiliser : Plusieurs équipes de produit partagent AOAI ; une boucle incontrôlée d'une équipe ne devrait pas consommer le budget TPM partagé.

Prérequis
  • Instance APIM avec les modèles AI-Gateway appliqués — Déployez l'architecture de référence à partir du dépôt Azure-Samples/AI-Gateway
  • Clé d'abonnement APIM par équipe — Chaque équipe reçoit un abonnement APIM distinct (clé) qu'elle inclut dans l'en-tête Ocp-Apim-Subscription-Key
Déroulement
  1. Examinez les quotas actuels
    Répertoriez les abonnements APIM avec leurs quotas TPM et RPM actuels pour le produit AOAI.✓ Copié
    → Tableau des quotas par équipe
  2. Réduisez une équipe bruyante
    L'équipe 'growth' consomme 90% de TPM quotidiennement. Réduisez son quota de 200k → 100k TPM. Gardez les autres inchangés.✓ Copié
    → Quota mis à jour ; confirmation
  3. Surveillez après le changement
    Au cours de l'heure suivante, récupérez les comptages de 429 (limite de débit) par abonnement. Confirmez que growth est régulée mais que les équipes critiques en prod ne sont pas affectées.✓ Copié
    → Application visible dans les métriques

Résultat : Dépenses AOAI partagées contrôlées sans éliminer le trafic légitime hautement prioritaire.

Pièges
  • Définir des quotas trop bas prive les charges de travail légitimes — Déployez d'abord en mode shadowing (journalisation uniquement), puis appliquez une fois que vous comprenez les modèles réels

Configurer le basculement multi-région pour un déploiement Azure OpenAI

👤 Les SRE exécutant des charges de travail IA en production ⏱ ~45 min advanced

Quand l'utiliser : Une panne AOAI régionale (rare mais réelle) devrait basculer de manière transparente vers une autre région.

Prérequis
  • Déploiements AOAI dans ≥2 régions (par exemple, Est des États-Unis, Europe de l'Ouest) — Fournissez via le portail Azure ; correspondent au modèle + version
Déroulement
  1. Inspectez le pool backend actuel
    Montrez le pool backend APIM pour notre API AOAI. Combien de backends, quelle priorité, quelle configuration du disjoncteur ?✓ Copié
    → Configuration du pool actuel
  2. Ajoutez une région secondaire
    Ajoutez le endpoint AOAI Europe de l'Ouest avec priority=2 et disjoncteur : 5 défaillances en 1 min → ouvert pendant 5 min. Gardez l'Est des États-Unis comme primaire.✓ Copié
    → Pool mis à jour, 2 backends configurés
  3. Testez le basculement
    Simulez une panne primaire en désactivant le backend Est des États-Unis pendant 2 min. Confirmez que le trafic bascule vers Europe de l'Ouest, puis effectuez un retour en arrière.✓ Copié
    → Basculement de trafic observé ; retour en arrière vérifié

Résultat : Basculement transparent avec preuve qu'il fonctionne avant d'en avoir besoin.

Pièges
  • Différentes régions ont des versions de modèles déployées différentes — Épinglez une version de modèle qui existe dans les deux régions ; les versions mal assorties retournent silencieusement une qualité différente

Déployer la mise en cache sémantique pour réduire les coûts de répétition des prompts

👤 Les équipes de plateforme soucieuses des coûts ⏱ ~30 min advanced

Quand l'utiliser : Vos utilisateurs posent des questions similaires encore et encore ; 30–60% des appels sont effectivement des accès au cache.

Déroulement
  1. Activez la politique de mise en cache sémantique
    Activez la politique APIM semantic-cache-lookup sur l'API de complétions AOAI avec un seuil de similarité de 0,95, TTL 1h.✓ Copié
    → Politique appliquée
  2. Observez le taux de succès
    Après 24h, récupérez le taux d'accès au cache et les économies de tokens d'App Insights.✓ Copié
    → Taux de succès % + tokens économisés
  3. Ajustez le seuil
    Si le taux de succès <20%, abaissez le seuil à 0,92 et observez à nouveau. S'il y a des plaintes de qualité, relevez à 0,97.✓ Copié
    → Ajustement itératif avec des mesures

Résultat : Économies de coûts mesurées sur les requêtes répétées sans dégrader la qualité de sortie.

Pièges
  • La mise en cache trop agressive fournit des réponses incorrectes pour des questions similaires mais différentes — Commencez haut (0,97) et ne diminuez que selon la qualité observée

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

azure-ai-gateway + sentry

Corrélez les pics 5xx d'APIM avec les erreurs côté application

Si Sentry affiche un pic 5xx dans l'application X à 10:02, récupérez les métriques APIM pour la même fenêtre et identifiez si la passerelle en est la cause.✓ Copié
azure-ai-gateway + notion

Rapport de gouvernance du trafic IA hebdomadaire vers Notion

Compilez l'utilisation du TPM par équipe pour la semaine, les comptages de 429, le taux d'accès au cache ; publiez en tant que page Notion.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_subscriptions product_id? Énumérez les équipes consommant la passerelle free (ARM API call)
update_quota subscription_id, tpm?, rpm? Ajustez les limites de tokens/requêtes d'une équipe free
get_backend_pool api_id Inspectez la configuration du routage et du basculement free
update_backend_pool api_id, backends, policies Modifiez les priorités, les disjoncteurs, l'équilibrage de charge free
apply_policy api_id, policy_xml Déployez la politique APIM (cache, authentification, journalisation) free
get_metrics api_id, since, until Observez la forme du trafic par API free

Coût et limites

Coût d'exécution

Quota d'API
Limites de débit d'Azure Resource Manager (généreuses par locataire)
Tokens par appel
Lectures de politique/pool backend : 500–2000 tokens
Monétaire
Les prix d'APIM commencent à environ 40 $/mois (niveau Basic) ; niveau Standard recommandé pour prod
Astuce
La mise en cache sémantique paie généralement le coût d'APIM plusieurs fois si votre trafic se répète. Mesurez le taux de succès pour justifier.

Sécurité

Permissions, secrets, portée

Portées minimales : APIM Contributor sur l'instance APIM cible
Stockage des identifiants : Credentials du principal de service Azure (client id/secret/tenant) dans env
Sortie de données : Appels API ARM vers management.azure.com ; les corps de prompt/réponse traversent APIM lui-même
Ne jamais accorder : Owner sur l'abonnement Global admin

Dépannage

Erreurs courantes et correctifs

Erreur 401 sur les appels API ARM

Le principal de service manque du rôle APIM Contributor sur le groupe de ressources. Accordez via le portail ou az cli.

Vérifier : az role assignment list --assignee <sp>
L'application de la politique échoue — erreur de validation XML

Le XML de la politique APIM est strict ; utilisez l'éditeur de politique du portail pour valider, puis copier-coller.

Les 429 persistent après l'augmentation du quota TPM

Le déploiement AOAI sous-jacent peut être lui-même le goulot d'étranglement. Vérifiez le TPM de déploiement, pas seulement le TPM d'abonnement APIM.

Le taux de succès du cache sémantique est 0%

Le backend d'embedding pour cache-lookup n'est pas configuré ; vérifiez la référence d'embeddings de la politique de cache.

Alternatives

Azure AI Gateway vs autres

AlternativeQuand l'utiliserCompromis
Cloudflare AI GatewayVous êtes sur Cloudflare et voulez le routage LLM multi-fournisseur prêt à l'emploiIntégration moins profonde avec les modèles hébergés Azure
Portkey / LiteLLMVous voulez une passerelle indépendante du fournisseur avec un tableau de bordSaaS tiers ; les données quittent votre cloud

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills