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
DevSecOps per .NET: dalla teoria alla pratica
Il nuovo persistent state in Blazor
Bloccare il traffico di rete in uscita dal runner di GitHub
Nuove validazioni Form Blazor
Rendere affidabile lo scale out su Azure App Service
Utilizzare i named query filter di Entity Framework
Abilitare il rolling update su Azure Functions flex consumption
Esporre tool MCP da API REST con Azure App Service
Applicare il progressive enhancement in applicazioni web
Gestire il ciclo di vita di AbortController in Javascript
Importare un servizio esterno in .NET Aspire
Utilizzare noopener e noreferrer nei link HTML
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Utilizzare un DataContext specifico per la modalità design time di Blend e Visual Studio nei controlli Silverlight
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Esaminare documenti con namespace con LINQ e XDocument
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE


