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
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Creare gruppi di client per Event Grid MQTT
Migliorare l'organizzazione delle risorse con Azure Policy
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Estrarre dati randomici da una lista di oggetti in C#
Utilizzare Copilot con Azure Cosmos DB
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Utilizzare Model as a Service su Microsoft Azure
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Creare alias per tipi generici e tuple in C#