<?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/ca/tags/azure-app-service/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ca</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/ca/tags/azure-app-service/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL MCP Server a Azure App Service — Sense Contenidors</title><link>https://thedotnetblog.com/ca/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/ca/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/</guid><description>El SQL MCP Server ara pot executar-se a Azure App Service sense Docker ni Kubernetes. Això és el que significa per als desenvolupadors .NET que construeixen agents d'IA que parlen amb bases de dades SQL.</description><content:encoded>&lt;p&gt;&lt;em&gt;Aquesta publicació ha estat traduïda automàticament. Per a la versió original, &lt;a href="https://thedotnetblog.com/ca/news/emiliano-montesdeoca/sql-mcp-server-azure-app-service-no-containers/"&gt;fes clic aquí&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Seré honest amb tu: cada cop que veig &amp;ldquo;requereix un contenidor&amp;rdquo; en un tutorial, una petita part de mi sospira. Els contenidors són fantàstics, fins que el teu equip no té una estratègia de contenidors, i de cop allò que semblava simple queda bloquejat per una sobrecàrrega d&amp;rsquo;orquestació que no havies planificat.&lt;/p&gt;
&lt;p&gt;Per això aquest em va cridar l&amp;rsquo;atenció. El SQL MCP Server ara pot executar-se a Azure App Service — sense Docker, sense Kubernetes, únicament amb la mateixa configuració de Data API Builder (DAB) que exposa la teva base de dades SQL a través de MCP, REST i GraphQL.&lt;/p&gt;
&lt;h2 id="què-és-el-sql-mcp-server"&gt;Què és el SQL MCP Server?&lt;/h2&gt;
&lt;p&gt;Context ràpid si encara no el coneixes. El SQL MCP Server se situa entre el teu agent d&amp;rsquo;IA i la teva base de dades SQL. En lloc de donar a l&amp;rsquo;agent accés directe a la base de dades (una idea terrible), exposa les teves taules i vistes com una capa d&amp;rsquo;abstracció — entitats amb permisos definits.&lt;/p&gt;
&lt;p&gt;Està construït sobre &lt;a href="https://learn.microsoft.com/es-es/azure/data-api-builder/"&gt;Data API Builder&lt;/a&gt;, la qual cosa significa que un únic fitxer de configuració gestiona MCP &lt;em&gt;i&lt;/em&gt; REST &lt;em&gt;i&lt;/em&gt; GraphQL simultàniament. El teu agent parla amb l&amp;rsquo;endpoint MCP. La teva aplicació tradicional parla amb REST o GraphQL. Mateixa config, mateix runtime, superfícies diferents.&lt;/p&gt;
&lt;p&gt;Això és genuïnament útil. No estàs mantenint dues capes d&amp;rsquo;API separades.&lt;/p&gt;
&lt;h2 id="el-problema-del-contenidor-i-la-solució"&gt;El Problema del Contenidor (i la Solució)&lt;/h2&gt;
&lt;p&gt;El model de desplegament original del SQL MCP Server era amb contenidors. Funciona bé en molts equips, però no en tots. Molts equips .NET estandaritzen en Azure App Service o VMs. Requerir un runtime de contenidor únicament per exposar un endpoint SQL afegeix fricció que ningú va demanar.&lt;/p&gt;
&lt;p&gt;El nou tutorial mostra com ometre el contenidor per complet. Tot funciona amb una ordre &lt;code&gt;dab start&lt;/code&gt;, allotjat a App Service com un procés web .NET 8 estàndard.&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;# Instal·lar 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;# Inicialitzar la configuració&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;# Afegir una entitat&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;# Configurar el proveïdor d&amp;#39;autenticació d&amp;#39;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;# Iniciar el servidor&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;En aquest punt tens MCP a &lt;code&gt;/mcp&lt;/code&gt;, REST i GraphQL des del mateix procés, i res executant-se en un contenidor.&lt;/p&gt;
&lt;h2 id="autenticació-sense-claus-dapi-compartides"&gt;Autenticació Sense Claus d&amp;rsquo;API Compartides&lt;/h2&gt;
&lt;p&gt;Aquesta és la part que més aprecio. Quan despliegues a App Service, configures Microsoft Entra ID com a proveïdor d&amp;rsquo;autenticació. Sense secrets compartits als fitxers de configuració, sense claus d&amp;rsquo;API que rotar.&lt;/p&gt;
&lt;p&gt;La cadena de connexió es manté en una variable d&amp;rsquo;entorn d&amp;rsquo;App Service (no a &lt;code&gt;dab-config.json&lt;/code&gt;), i l&amp;rsquo;endpoint MCP està protegit per l&amp;rsquo;autenticació de la plataforma. Si ja estàs alineat amb Entra ID a les teves càrregues de treball d&amp;rsquo;Azure, això encaixa de manera natural.&lt;/p&gt;
&lt;p&gt;Per al desenvolupament local, canvies al mode &lt;code&gt;Simulator&lt;/code&gt; i transport STDIO. Tornes al mode &lt;code&gt;AppService&lt;/code&gt; quan despliegues. Net i explícit.&lt;/p&gt;
&lt;h2 id="desplegament-a-app-service"&gt;Desplegament a App Service&lt;/h2&gt;
&lt;p&gt;El desplegament real és feina estàndard amb l&amp;rsquo;Azure CLI:&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;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;Llavors desplegues el teu projecte DAB usant el mètode de desplegament que el teu equip ja utilitza. El detall clau: és un desplegament de &lt;strong&gt;codi&lt;/strong&gt;, no de contenidor.&lt;/p&gt;
&lt;h2 id="per-què-importa-per-als-desenvolupadors-net"&gt;Per Què Importa per als Desenvolupadors .NET&lt;/h2&gt;
&lt;p&gt;Si construeixes agents d&amp;rsquo;IA en .NET, eventualment el teu agent necessitarà parlar amb una base de dades. El SQL MCP Server t&amp;rsquo;ofereix una manera estructurada de fer-ho sense exposar cadenes de connexió en brut ni escriure una capa d&amp;rsquo;API personalitzada.&lt;/p&gt;
&lt;p&gt;Consulta el tutorial complet al &lt;a href="https://devblogs.microsoft.com/azure-sql/sql-mcp-server-app-service/"&gt;post original&lt;/a&gt; i el &lt;a href="https://github.com/Azure-Samples/SQL-MCP-NoContainer"&gt;repositori de mostra a GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="conclusió"&gt;Conclusió&lt;/h2&gt;
&lt;p&gt;El SQL MCP Server a App Service és una opció pragmàtica sòlida per a equips .NET que volen donar als seus agents accés estructurat a dades SQL sense una estratègia de contenidors. La combinació del model d&amp;rsquo;entitats de DAB, l&amp;rsquo;autenticació integrada d&amp;rsquo;Entra a App Service i la comanda d&amp;rsquo;inici &lt;code&gt;dab start&lt;/code&gt; resulta en un desplegament senzill d&amp;rsquo;explicar i fàcil d&amp;rsquo;operar.&lt;/p&gt;
&lt;p&gt;Prova-ho. Els teus agents agrairan la superfície d&amp;rsquo;API neta.&lt;/p&gt;</content:encoded></item></channel></rss>