Azure Container Apps è una soluzione cloud innovativa offerta da Microsoft che ti consente di gestire e distribuire facilmente container Docker su Azure. Con questa piattaforma, puoi eseguire i tuoi container in un ambiente serverless altamente scalabile, eliminando la necessità di gestire infrastrutture sottostanti complesse.
Quando si tratta di ospitare container con API HTTP, Azure Container Apps offre un'interessante flessibilità. Questo ti consente di sfruttare al massimo i benefici del containerization, come la portabilità e l'isolamento delle applicazioni, mentre Azure si occupa della gestione delle risorse sottostanti e dell'auto-scaling. Tuttavia, quando si integra Azure Container Apps con applicazioni SPA (Single Page Application), si pone il problema delle Cross-Origin Resource Sharing (CORS). Le applicazioni SPA, eseguite lato client, spesso richiedono di accedere a risorse o API in domini diversi da quello in cui sono ospitate. CORS è una politica di sicurezza del browser che impedisce questo tipo di accesso non autorizzato per motivi di sicurezza.
Sebbene possiamo intervenire a livello di un eventuale container gateway aggiuntivo o a livello di singolo container, risulta più comodo poter intervenire direttamente a livello del gateway di Azure Container Apps e fornire policy CORS in maniera uniforme. Per farlo, è sufficiente recarsi nella sezione CORS e specificare tutte le impostazioni, come mostrato in figura.
Oltre agli origins possiamo specificare i metodi, gli header accettati e quelli esposti che, se non specificati equivale ad indicare *. Possiamo testare l'avvenuta configurazione utilizzando strumenti come cURL per effettuare una richiesta OPTIONS e con gli headers appropriati, come nell'esempio
curl -v -H "Origin: https://mysite.com" -H "Access-Control-Request-Method: *" -X OPTIONS https://targetSite.azurecontainerapps.io
Che risponderà con gli header indicanti le policy da noi impostate.
HTTP/2 200 access-control-allow-origin: https://mysite.com access-control-allow-methods: GET access-control-allow-headers: access-control-max-age: 30
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Come migrare da una form non tipizzata a una form tipizzata in Angular
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare database e servizi con gli add-on di Container App
Testare l'invio dei messaggi con Event Hubs Data Explorer
Cambiare la chiave di partizionamento di Azure Cosmos DB
Limitare le richieste lato server con l'interactive routing di Blazor 8
Creazione di componenti personalizzati in React.js con Tailwind CSS
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Installare le Web App site extension tramite una pipeline di Azure DevOps