<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azure App Service | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/azure-app-service/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>fr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/azure-app-service/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL MCP Server sur Azure App Service — Sans Conteneurs</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/</guid><description>Le SQL MCP Server peut désormais s'exécuter sur Azure App Service sans Docker ni Kubernetes. Voici ce que cela signifie pour les développeurs .NET qui construisent des agents IA communiquant avec des bases de données SQL.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Soyons honnêtes : chaque fois que je lis &amp;ldquo;nécessite un conteneur&amp;rdquo; dans un tutoriel, une petite partie de moi soupire. Les conteneurs sont formidables — jusqu&amp;rsquo;à ce que ton équipe n&amp;rsquo;ait pas de stratégie de conteneurs, et soudain une fonctionnalité qui semblait simple se retrouve bloquée par une complexité d&amp;rsquo;orchestration que personne n&amp;rsquo;avait anticipée.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est pourquoi celui-ci a retenu mon attention. Le SQL MCP Server peut désormais s&amp;rsquo;exécuter sur Azure App Service — sans Docker, sans Kubernetes, juste avec la même configuration Data API Builder (DAB) qui expose ta base de données SQL via MCP, REST et GraphQL.&lt;/p&gt;
&lt;h2 id="quest-ce-que-le-sql-mcp-server-"&gt;Qu&amp;rsquo;est-ce que le SQL MCP Server ?&lt;/h2&gt;
&lt;p&gt;Contexte rapide si tu ne le connais pas encore. Le SQL MCP Server se place entre ton agent IA et ta base de données SQL. Au lieu de donner à ton agent un accès direct à la base de données (une très mauvaise idée), il expose tes tables et vues comme une couche d&amp;rsquo;abstraction — des entités avec des permissions définies.&lt;/p&gt;
&lt;p&gt;Il est construit sur &lt;a href="https://learn.microsoft.com/fr-fr/azure/data-api-builder/"&gt;Data API Builder&lt;/a&gt;, ce qui signifie qu&amp;rsquo;un seul fichier de configuration gère MCP &lt;em&gt;et&lt;/em&gt; REST &lt;em&gt;et&lt;/em&gt; GraphQL simultanément. Ton agent parle à l&amp;rsquo;endpoint MCP. Ton application traditionnelle parle à REST ou GraphQL. Même config, même runtime, surfaces différentes.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est vraiment utile. Tu ne maintiens pas deux couches d&amp;rsquo;API séparées.&lt;/p&gt;
&lt;h2 id="le-problème-des-conteneurs-et-la-solution"&gt;Le Problème des Conteneurs (et la Solution)&lt;/h2&gt;
&lt;p&gt;Le modèle de déploiement original du SQL MCP Server utilisait des conteneurs. Cela fonctionne bien dans beaucoup d&amp;rsquo;équipes — mais pas toutes. De nombreuses équipes .NET standardisent sur Azure App Service ou des VMs. Exiger un runtime de conteneur juste pour exposer un endpoint SQL ajoute de la friction que personne n&amp;rsquo;a demandée.&lt;/p&gt;
&lt;p&gt;Le nouveau guide montre comment contourner entièrement le conteneur. Tout fonctionne avec une commande &lt;code&gt;dab start&lt;/code&gt;, hébergé sur App Service comme un processus web .NET 8 standard.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Installer Data API Builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet tool install microsoft.dataapibuilder --prerelease -g
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Initialiser la configuration&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab init --database-type mssql --host-mode Development --connection-string &lt;span class="s2"&gt;&amp;#34;@env(&amp;#39;SQL_CONNECTION_STRING&amp;#39;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ajouter une entité&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab add products --source dbo.products --permissions &lt;span class="s2"&gt;&amp;#34;authenticated:*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Configurer le fournisseur d&amp;#39;auth App Service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab configure --runtime.host.authentication.provider AppService
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Démarrer le serveur&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dab start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;À ce stade, tu as MCP à &lt;code&gt;/mcp&lt;/code&gt;, REST et GraphQL depuis le même processus, et rien qui tourne dans un conteneur.&lt;/p&gt;
&lt;h2 id="authentification-sans-clés-dapi-partagées"&gt;Authentification Sans Clés d&amp;rsquo;API Partagées&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la partie que j&amp;rsquo;apprécie le plus. Quand tu déploies sur App Service, tu configures Microsoft Entra ID comme fournisseur d&amp;rsquo;authentification. Pas de secrets partagés dans les fichiers de configuration, pas de clés d&amp;rsquo;API à faire tourner.&lt;/p&gt;
&lt;p&gt;La chaîne de connexion reste dans une variable d&amp;rsquo;environnement App Service (pas dans &lt;code&gt;dab-config.json&lt;/code&gt;), et l&amp;rsquo;endpoint MCP est protégé par l&amp;rsquo;authentification de la plateforme. Si tu es déjà aligné sur Entra ID pour tes charges de travail Azure, cela s&amp;rsquo;intègre naturellement.&lt;/p&gt;
&lt;p&gt;Pour le développement local, tu passes en mode &lt;code&gt;Simulator&lt;/code&gt; et transport STDIO. Tu reviens en mode &lt;code&gt;AppService&lt;/code&gt; avant le déploiement. Propre et explicite.&lt;/p&gt;
&lt;h2 id="déploiement-sur-app-service"&gt;Déploiement sur App Service&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az appservice plan create &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;plan-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --sku B1 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --is-linux
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az webapp create &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;app-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --plan &amp;lt;plan-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --runtime &lt;span class="s2"&gt;&amp;#34;DOTNETCORE:8.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az webapp config &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name &amp;lt;app-name&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --startup-file &lt;span class="s2"&gt;&amp;#34;dab start&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ensuite tu déploies ton projet DAB en utilisant la méthode de déploiement de code que ton équipe utilise déjà. Le détail clé : c&amp;rsquo;est un déploiement de &lt;strong&gt;code&lt;/strong&gt;, pas de conteneur.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important-pour-les-développeurs-net"&gt;Pourquoi C&amp;rsquo;est Important pour les Développeurs .NET&lt;/h2&gt;
&lt;p&gt;Si tu construis des agents IA en .NET, ton agent devra tôt ou tard communiquer avec une base de données. Le SQL MCP Server te donne une façon structurée de le faire sans exposer des chaînes de connexion brutes.&lt;/p&gt;
&lt;p&gt;Consulte le guide complet dans le &lt;a href="https://devblogs.microsoft.com/azure-sql/sql-mcp-server-app-service/"&gt;billet original&lt;/a&gt; et le &lt;a href="https://github.com/Azure-Samples/SQL-MCP-NoContainer"&gt;dépôt d&amp;rsquo;exemple sur GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Le SQL MCP Server sur App Service est une option pragmatique solide pour les équipes .NET qui souhaitent donner à leurs agents un accès structuré aux données SQL sans stratégie de conteneurs. Essaie-le — tes agents apprécieront la surface d&amp;rsquo;API propre.&lt;/p&gt;</content:encoded></item></channel></rss>