Simulare Azure Cosmos DB in locale con Docker

di Cristian Civera, in Azure Cosmos DB,

Azure Cosmos DB è un servizio di database NoSQL completamente gestito, progettato per lo sviluppo di applicazioni moderne che richiedono scalabilità elastica, bassa latenza e disponibilità garantita a livello globale. Per facilitare lo sviluppo e il test delle applicazioni, Microsoft ha introdotto una nuova versione dell'emulatore di Azure Cosmos DB per Linux, disponibile come container Docker. Questo emulatore consente di simulare l'ambiente di Azure Cosmos DB in locale, eliminando la necessità di una sottoscrizione Azure e riducendo i costi.
I vantaggi principali dell'emulatore includono la possibilità di sviluppare e testare le applicazioni in un ambiente controllato, riducendo sensibilmente i tempi di sviluppob e iterazione. Tuttavia, l'attuale versione supporta solo l'API NoSQL in modalità gateway e offre un set limitato di funzionalità rispetto all'ambiente di produzione.
Per iniziare, è necessario avere Docker installato sul proprio sistema. Il primo passo è scaricare e lanciare il container con il comando:

docker run -d -p 8081:8081 -p 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview

Questo comando esegue il container in background, esponendo le porte necessarie per interagire con l'emulatore. L'accesso al Data Explorer, utile per visualizzare e gestire i dati, è possibile tramite il browser all'indirizzo http://localhost:1234 (l'interfaccia è pronta dopo parecchi secondi).

Un aspetto importante da considerare è la necessità di avviare l'emulatore in modalità HTTPS per utilizzare gli SDK .NET e Java, poiché questi non supportano la modalità HTTP. Il comando corretto è:

docker run -d -p 8081:8081 -p 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview --protocol https

E' importante notare che non tutte le funzionalità di Cosmos DB sono supportate. L'emulatore attualmente offre il supporto per operazioni fondamentali come la creazione, lettura, aggiornamento e cancellazione di database e documenti. Tuttavia, alcune funzionalità avanzate come il change feed, la gestione delle request units e le query con join non sono ancora implementate. Inoltre, funzionalità come le stored procedure, i trigger e le UDF (funzioni definite dall'utente) non saranno mai supportate. Per una panoramica dettagliata delle funzionalità già disponibili e di quelle pianificate, rimandiamo alla documentazione ufficialei disponibile: https://learn.microsoft.com/en-us/azure/cosmos-db/emulator-linux.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi