Azure Container Apps è una soluzione serverless progettata per eseguire applicazioni containerizzate e microservizi in modo scalabile e gestito. Fornisce un'infrastruttura orchestrata con funzionalità di autoscaling, ingressi semplificati e piena integrazione con gli strumenti di sviluppo Azure. Spesso, quando sviluppiamo più servizi indipendenti, vogliamo che siano accessibili tramite un unico dominio ma con percorsi distinti, senza dover introdurre un gateway centralizzato come un altro container con NGINX o YARP. Questo tipo di configurazione può aumentare la complessità e i costi.
Con l'anteprima del rule-based routing in Azure Container Apps, possiamo ora gestire le richieste HTTP verso diverse applicazioni in base al percorso dell'URL. Questa funzionalità ci permette di creare un FQDN unificato per l'intero ambiente e, tramite regole precise, indirizzare ogni richiesta alla container app corretta.
Per prima cosa, installiamo l'estensione di Container Apps per Azure CLI con il comando.
az extension add --name containerapp --upgrade --allow-preview true
Creiamo ora un file chiamato routing.yml con il seguente contenuto, che definisce due regole.
rules:
- description: App 1 rule
routes:
- match:
prefix: /app1
action:
prefixRewrite: /
targets:
- containerApp: my-container-app-1
- description: App 2 rule
routes:
- match:
path: /app2
action:
prefixRewrite: /
- match:
path: /
targets:
- containerApp: my-container-app-2Applichiamo infine la configurazione con il seguente comando.
az containerapp env http-route-config create --http-route-config-name my-route --resource-group my-container-apps --name my-container-apps-env --yaml routing.yml --query properties.fqdn
Questo comando crea una configurazione di routing HTTP per l'ambiente specificato. Il parametro --http-route-config-name definisce il nome univoco della configurazione che, una volta applicata, consente di associare il routing basato su regole all'ambiente di Container Apps. Il file YAML specificato nel parametro --yaml contiene tutte le istruzioni per il comportamento del traffico HTTP in ingresso.
Ci viene restituisco così un nuovo dominio come my-route.graymeadow-c9290af8.northeurope.azurecontainerapps.io che supporta il routing a seconda che lo chiamiamo con il path /app1 e /app2.
È importante notare che l'indirizzo diretto di ciascuna container app continua a funzionare in modo indipendente, permettendoci di accedere direttamente se necessario. Inoltre, possiamo definire più regole di routing, ognuna con un proprio nome e dominio di ingresso, rendendo l'architettura più flessibile e adatta a scenari complessi.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Agentic Workflows in GitHub
Esporre un server MCP con Azure API Management
Canary release con .NET Aspire
Modificare lo stile in una QuickGrid Blazor
Esporre un server MCP esistente con Azure API Management
Personalizzare le pagine di errore su Azure App Service
Esporre workflow come server MCP con Azure Logic Apps
Utilizzare le View Transition API di JavaScript
Azure SQL Database per dev: tutte le novità da non perdere
Validazione personalizzata nelle Minimal API di ASP.NET Core
Blazor e InputHidden in .NET 10
Creare un extension method per applicare condizionalmente una Where in una query LINQ per Entity Framework


