Quando vogliamo sfruttare un database documentale, Cosmos DB è il servizio di riferimento per la piattaforma cloud Microsoft. Questo database in realtà non è solo documentale, ma si presta anche come key/value store o come graph db. Dispone di più interfacce di comunicazione ed è incredibilmente performante, scalabile e affidabile.
Essendo un database siamo naturalmente pensati a considerarlo come un servizio di backend dove leggere e scrivere tramite servizi intermedi. In realtà si può prestare egregiamente anche come motore di cache o come storage di viste materializzate, e in queste situazioni diventa fondamentale poter abbassare il più possibile le latenze.
Dato che Cosmos DB può essere interrogato e gestito tramite REST, è possibile quindi poterci lavorare direttamente da una pagina HTML, con JavaScript. Tramite l'SDK fornito da Microsoft o creando manualmente la richiesta, queste operazioni sono piuttosto semplici. L'unico limite è rappresentato dai browser che non permettono di effettuare chiamate su domini diversi dalla sorgente dello script. Di recente è stata aggiunto il supporto a CORS (cross-origin resource sharing) che toglie questo limite. Direttamente dal portale, infatti, possiamo inserire la lista dei domini dai quali sono consentite le chiamate.

Nel momento in cui si utilizza Cosmos DB direttamente da una pagina web, è opportuno non usare la master key come sistema di autenticazione, ma di sfruttare le utenze, le quali permettono di limitare una specifica risorsa (collezione) e la relativa modalità di accesso.
Per maggiori informazioni sulla sicurezza:
https://docs.microsoft.com/it-it/azure/cosmos-db/secure-access-to-data
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il binding di date in Blazor
Collegare applicazioni server e client con .NET Aspire
Utilizzare il trigger SQL con le Azure Function
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Supportare la sessione affinity di Azure App Service con Application Gateway
Generare velocemente pagine CRUD in Blazor con QuickGrid
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Eseguire script pre e post esecuzione di un workflow di GitHub
Ottimizzazione dei block template in Angular 17
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Testare l'invio dei messaggi con Event Hubs Data Explorer
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione