Abbiamo visto nei numerosi script sull'argomento, come Azure Container App sia in continuo fermento e sviluppo, poiché semplifica enormemente la distribuzione di applicativi basati su container e servizi, senza la necessità di amministrare un cluster Kubernetes, ma beneficiando di esso dietro le quinte. Uno dei vantaggi di questa infrastruttura è il service discovery, cioè la possibilità di creare n app ognuna delle quali raggiungibile tramite l'indirizzo [miaApp].azurecontainerapps.io. In base al numero di istanze e al sistema di tracciamento di salute dei container, quando effettuiamo la chiamata ad un servizio, questa viene automaticamente indirizzata alla specifica istanza, in maniera del tutto trasparente.
Le chiamate HTTP, però, possono fallire per svariati motivi e in molti casi per un problema temporaneo che si risolve nel brevissimo tempo. Può verificarsi per un problema di rete o per un problema applicativo, ma in ogni caso il chiamante si deve preoccupare di implementare le logiche di gestione degli errori e di eventuali nuovi tentativi. Azure Container App ci viene in aiuto anche per risolvere questo problema, permettendoci di impostare delle policy di resiliency automatiche da applicare ad un'app quando essa riceve una chiamata da qualcun altro, poiché è lei che conosce al meglio che tipo di errori si possono verificare e in quali termini implementare nuovi tentativi.
E' sufficiente andare nell'app in questione ed aprire la sezione Resiliency per trovare una serie di spunte che possiamo abilitare, configurando i vari aspetti di ogni policy.

Possiamo indicare come gestire gli errori HTTP, il tempo massimo di invocazione, attivare il circuit breaker o indicare quante connessioni HTTP mantenere attive o in coda. Tutto questo viene subito applicato in maniera del tutto trasparente al chiamante che può, a questo punto, evitare di implementare le medesime logiche.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estrarre dati randomici da una lista di oggetti in C#
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Evitare il flickering dei componenti nel prerender di Blazor 8
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Collegare applicazioni server e client con .NET Aspire
Path addizionali per gli asset in ASP.NET Core MVC
Escludere alcuni file da GitHub Secret Scanning
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Testare l'invio dei messaggi con Event Hubs Data Explorer
Eseguire operazioni sui blob con Azure Storage Actions
Ottimizzare le pull con Artifact Cache di Azure Container Registry