Op Linux gebaseerde emulator (preview)
De volgende generatie van de Azure Cosmos DB-emulator is volledig op Linux gebaseerd en is beschikbaar als Docker-container. Het ondersteunt uitvoering op een groot aantal processors en besturingssystemen.
Belangrijk
Deze versie van de emulator ondersteunt alleen de API voor NoSQL in de gatewaymodus, met een selecte subset van functies. Zie de functieondersteuning voor meer informatie.
Vereisten
Installatie
Haal de Docker-containerinstallatiekopieën op met behulp van docker pull
. De containerinstallatiekopieën worden als volgt gepubliceerd naar de Microsoft-artefactregistermcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
Wordt uitgevoerd
Als u de container wilt uitvoeren, gebruikt u docker run
. Gebruik daarna docker ps
om te controleren of de container wordt uitgevoerd.
docker run --detach --publish 8081:8081 --publish 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1bb8cf53f8a mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview "/bin/bash -c /home/…" 5 seconds ago Up 5 seconds 0.0.0.0:1234->1234/tcp, :::1234->1234/tcp, 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp <container-name>
Notitie
De emulator bestaat uit twee onderdelen:
- Data Explorer : interactief de gegevens in de emulator verkennen. Dit wordt standaard uitgevoerd op poort
1234
- Azure Cosmos DB Emulator : een lokale versie van de Azure Cosmos DB-databaseservice. Dit wordt standaard uitgevoerd op poort
8081
.
Het eindpunt van de emulatorgateway is doorgaans beschikbaar op poort 8081
op het adres http://localhost:8081. Als u naar data explorer wilt navigeren, gebruikt u het adres http://localhost:1234 in uw webbrowser. Het kan enkele seconden duren voordat Data Explorer beschikbaar is. Het gateway-eindpunt is doorgaans onmiddellijk beschikbaar.
Belangrijk
De .NET- en Java-SDK's bieden geen ondersteuning voor de HTTP-modus in de emulator. Omdat deze versie van de emulator standaard met HTTP begint, moet u HTTPS expliciet inschakelen bij het starten van de container (zie hieronder). Voor de Java SDK moet u ook certificaten installeren.
docker run --detach --publish 8081:8081 --publish 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview --protocol https
Docker-opdrachten
De volgende tabel bevat een overzicht van de beschikbare Docker-opdrachten voor het configureren van de emulator. In deze tabel worden de bijbehorende argumenten, omgevingsvariabelen, toegestane waarden, standaardinstellingen en beschrijvingen van elke opdracht beschreven.
Vereiste | Arg | Env | Toegestane waarden | Default | Beschrijving |
---|---|---|---|---|---|
De instellingen afdrukken naar stdout vanuit de container | --help , -h |
N.v.t. | N.v.t. | N.v.t. | Informatie weergeven over de beschikbare configuratie |
De poort van het Cosmos-eindpunt instellen | --port [INT] |
POORT | INT | 8081 | De poort van het Cosmos-eindpunt op de container. U moet deze poort nog steeds publiceren (bijvoorbeeld -p 8081:8081 ). |
Geef het protocol op dat wordt gebruikt door het Cosmos-eindpunt | --protocol |
PROTOCOL | https , , http https-insecure |
http |
Het protocol van het Cosmos-eindpunt in de container. |
Data Explorer inschakelen | --enable-explorer |
ENABLE_EXPLORER | true , false |
true |
Schakel het uitvoeren van Cosmos Data Explorer in op dezelfde container. |
De poort instellen die wordt gebruikt door data explorer | --explorer-port |
EXPLORER_PORT | INT | 1234 | De poort van Cosmos Data Explorer in de container. U moet deze poort nog steeds publiceren (bijvoorbeeld -p 1234:1234 ). |
De gebruiker moet het protocol kunnen opgeven dat wordt gebruikt door de verkenner, anders wordt standaard ingesteld op wat het Cosmos-eindpunt gebruikt | --explorer-protocol |
EXPLORER_PROTOCOL | https , , http https-insecure |
<the value of --protocol> |
Het protocol van Cosmos Data Explorer in de container. Standaard ingesteld op de protocolinstelling op het Cosmos-eindpunt. |
De sleutel opgeven via bestand | --key-file [PATH] |
KEY_FILE | PAD | <default secret> |
Overschrijf de standaardsleutel met de sleutel die is opgegeven in het bestand. U moet dit bestand koppelen aan de container (bijvoorbeeld als KEY_FILE=/mykey, voegt u een optie zoals het volgende toe aan uw Docker-uitvoering: --mount type=bind,source=./myKey,target=/myKey ) |
Het gegevenspad instellen | --data-path [PATH] |
DATA_PATH | PAD | /data |
Geef een map op voor gegevens. Vaak gebruikt met docker run --mount de optie (bijvoorbeeld als DATA_PATH=/usr/cosmos/data, voegt u een optie zoals de volgende toe aan uw Docker-uitvoering: --mount type=bind,source=./.local/data,target=/usr/cosmos/data ) |
Geef het certificaatpad op dat moet worden gebruikt voor https | --cert-path [PATH] |
CERT_PATH | PAD | <default cert> |
Geef een pad naar een certificaat op voor het beveiligen van verkeer. U moet dit bestand koppelen aan de container (bijvoorbeeld als CERT_PATH=/mycert.pfx, voegt u een optie toe zoals het volgende aan uw Docker-uitvoering: --mount type=bind,source=./mycert.pfx,target=/mycert.pfx ) |
Geef het certificaatgeheim op dat moet worden gebruikt voor https | N.v.t. | CERT_SECRET | tekenreeks | <default secret> |
Het geheim voor het certificaat dat is opgegeven in CERT_PATH. |
Het logboekniveau instellen | --log-level [LEVEL] |
LOG_LEVEL | quiet , , error warn , info , , , debug trace |
info |
De uitgebreidheid van logboeken die worden verzonden door de emulator en Data Explorer. |
Diagnostische gegevens die naar Microsoft worden verzonden inschakelen | --enable-telemetry |
ENABLE_TELEMETRY | true , false |
true |
Schakel het verzenden van logboeken naar Microsoft in om de emulator te verbeteren. |
Functieondersteuning
Deze emulator bevindt zich in actieve ontwikkeling en preview. Als gevolg hiervan worden niet alle Azure Cosmos DB-functies ondersteund. Sommige functies worden ook in de toekomst niet ondersteund. Deze tabel bevat de status van verschillende functies en hun ondersteuningsniveau.
Functie | Ondersteuning |
---|---|
Batch-API | ✅ Ondersteund |
Bulk-API | ✅ Ondersteund |
Wijzigingenfeed | ⚠ϑ nog niet geïmplementeerd |
Document maken en lezen met utf-gegevens | ✅ Ondersteund |
Verzameling maken | ✅ Ondersteund |
Verzameling twee keer conflict maken | ✅ Ondersteund |
Verzameling maken met aangepast indexbeleid | ⚠ϑ nog niet geïmplementeerd |
Verzameling maken met verlooptijd van ttl | ⚠ϑ nog niet geïmplementeerd |
Database maken | ✅ Ondersteund |
Database twee keer conflict maken | ✅ Ondersteund |
Document maken | ✅ Ondersteund |
Gepartitioneerde verzameling maken | ⚠ϑ nog niet geïmplementeerd |
Verzameling verwijderen | ✅ Ondersteund |
Database verwijderen | ✅ Ondersteund |
Document verwijderen | ✅ Ondersteund |
Prestaties van verzameling ophalen en wijzigen | ⚠ϑ nog niet geïmplementeerd |
Groot document invoegen | ✅ Ondersteund |
Patchdocument | ⚠ϑ nog niet geïmplementeerd |
Gepartitioneerde verzameling parallel opvragen | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met aggregaties | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met en filteren | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met en filteren en projectie | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met gelijkheid | ✅ Ondersteund |
Query met is gelijk aan id | ✅ Ondersteund |
Query's uitvoeren met joins | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met volgorde op | ✅ Ondersteund |
Query uitvoeren met volgorde voor gepartitioneerde verzameling | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren op volgorde op getallen | ✅ Ondersteund |
Query uitvoeren met volgorde op tekenreeksen | ⚠ϑ nog niet geïmplementeerd |
Query met paging | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met datumtijden van bereikoperators | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met bereikoperators op getallen | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met bereikoperators op tekenreeksen | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met één join | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met wiskundige en matrixoperators voor tekenreeksen | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met subdocumenten | ⚠ϑ nog niet geïmplementeerd |
Query uitvoeren met twee joins | ⚠ϑ nog niet geïmplementeerd |
Query's uitvoeren met twee joins en filteren | ⚠ϑ nog niet geïmplementeerd |
Verzameling lezen | ✅ Ondersteund |
Verzamelingsfeed lezen | ⚠ϑ nog niet geïmplementeerd |
Database lezen | ✅ Ondersteund |
Databasefeed lezen | ⚠ϑ nog niet geïmplementeerd |
Document lezen | ✅ Ondersteund |
Documentfeed lezen | ✅ Ondersteund |
Document vervangen | ✅ Ondersteund |
Aanvraageenheden | ⚠ϑ nog niet geïmplementeerd |
Opgeslagen procedures | ❌ Niet gepland |
Triggers | ❌ Niet gepland |
UDF's | ❌ Niet gepland |
Verzameling bijwerken | ⚠ϑ nog niet geïmplementeerd |
Document bijwerken | ✅ Ondersteund |
Beperkingen
Naast functies die nog niet worden ondersteund of niet gepland, bevat de volgende lijst de huidige beperkingen van de emulator.
- De .NET SDK voor Azure Cosmos DB biedt geen ondersteuning voor bulkuitvoering in de emulator.
- De .NET- en Java-SDK's bieden geen ondersteuning voor de HTTP-modus in de emulator.
Certificaten installeren voor Java SDK
Wanneer u de Java SDK voor Azure Cosmos DB gebruikt met deze versie van de emulator in de https-modus, moet u de certificaten installeren in uw lokale Java-vertrouwensarchief.
Certificaat ophalen
Voer in een bash
venster het volgende uit:
# If the emulator was started with /AllowNetworkAccess, replace localhost with the actual IP address of it:
EMULATOR_HOST=localhost
EMULATOR_PORT=8081
EMULATOR_CERT_PATH=/tmp/cosmos_emulator.cert
openssl s_client -connect ${EMULATOR_HOST}:${EMULATOR_PORT} </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $EMULATOR_CERT_PATH
Certificaat installeren
Navigeer naar de map van uw Java-installatie waar cacerts
het bestand zich bevindt (vervang hieronder door de juiste map):
cd "C:/Program Files/Eclipse Adoptium/jdk-17.0.10.7-hotspot/bin"
Importeer het certificaat (mogelijk wordt u om een wachtwoord gevraagd, de standaardwaarde is changeit):
keytool -cacerts -importcert -alias cosmos_emulator -file $EMULATOR_CERT_PATH
Als er een fout optreedt omdat de alias al bestaat, verwijdert u deze en voert u het bovenstaande opnieuw uit:
keytool -cacerts -delete -alias cosmos_emulator
Problemen melden
Als u problemen ondervindt met het gebruik van deze versie van de emulator, opent u een probleem in de GitHub-opslagplaats (https://github.com/Azure/azure-cosmos-db-emulator-docker) en tagt u het met het label cosmosEmulatorVnextPreview
.