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 script pre e post esecuzione di un workflow di GitHub
Testare l'invio dei messaggi con Event Hubs Data Explorer
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Potenziare Azure AI Search con la ricerca vettoriale
Utilizzare gRPC su App Service di Azure
Effettuare il binding di date in Blazor
Disabilitare automaticamente un workflow di GitHub
Criptare la comunicazione con mTLS in Azure Container Apps
Gestire i dati con Azure Cosmos DB Data Explorer
Recuperare App Service cancellati su Azure