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
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Ordinare randomicamente una lista in C#
Utilizzare database e servizi con gli add-on di Container App
Utilizzare Model as a Service su Microsoft Azure
Usare una container image come runner di GitHub Actions
Eseguire attività pianificate con Azure Container Jobs
Creare gruppi di client per Event Grid MQTT
Miglioramenti agli screen reader e al contrasto in Angular
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Sostituire la GitHub Action di login su private registry
Evitare la script injection nelle GitHub Actions
Eseguire operazioni sui blob con Azure Storage Actions