Megosztás a következőn keresztül:


Linux-alapú emulátor (előzetes verzió)

Az Azure Cosmos DB emulátor következő generációja teljesen Linux-alapú, és Docker-tárolóként érhető el. Támogatja a processzorok és operációs rendszerek széles körének futtatását.

Fontos

Az emulátor ezen verziója csak átjáró módban támogatja a NoSQL API-t, a funkciók egy kiválasztott részhalmazával. További információ: szolgáltatástámogatás.

Előfeltételek

Telepítés

A Docker-tároló lemezképének lekérése a következővel docker pull: . A tárolórendszerkép a Microsoft Eszközjegyzék a mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-previewkövetkezőképpen lesz közzétéve.

docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview

Futó

A tároló futtatásához használja a következőt docker run: . Ezután ellenőrizze, docker ps hogy a tároló fut-e.

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>

Feljegyzés

Az emulátor két összetevőből áll:

  • Adatkezelő – interaktívan megismerheti az emulátor adatait. Alapértelmezés szerint ez porton fut 1234
  • Azure Cosmos DB emulator – az Azure Cosmos DB adatbázis-szolgáltatás helyi verziója. Alapértelmezés szerint ez a porton 8081fut.

Az emulátor-átjáró végpontja általában a porton 8081 érhető el a címen http://localhost:8081. Az adatkezelőhöz való navigáláshoz használja a címet http://localhost:1234 a webböngészőben. Eltarthat néhány másodpercig, hogy az Adatkezelő elérhető legyen. Az átjáróvégpont általában azonnal elérhető.

Fontos

A .NET és a Java SDK nem támogatja a HTTP módot az emulátorban. Mivel az emulátor ezen verziója alapértelmezés szerint HTTP-vel kezdődik, explicit módon engedélyeznie kell a HTTPS-t a tároló indításakor (lásd alább). A Java SDK-hoz tanúsítványokat is telepítenie kell.

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

Docker-parancsok

Az alábbi táblázat az emulátor konfigurálásához elérhető Docker-parancsokat foglalja össze. Ez a táblázat az egyes parancsok megfelelő argumentumait, környezeti változóit, engedélyezett értékeit, alapértelmezett beállításait és leírását ismerteti.

Követelmény Arg Env Megengedett értékek Alapértelmezett Leírás
A beállítások nyomtatása a tárolóból való kihúzáshoz --help, -h N.A. N.A. N.A. Az elérhető konfiguráció adatainak megjelenítése
A Cosmos-végpont portjának beállítása --port [INT] PORT INT 8081 A Tároló Cosmos-végpontjának portja. Ezt a portot továbbra is közzé kell tennie (például -p 8081:8081).
Adja meg a Cosmos-végpont által használt protokollt --protocol PROTOKOLL https, , httphttps-insecure http A tároló Cosmos-végpontjának protokollja.
Az adatkezelő engedélyezése --enable-explorer ENABLE_EXPLORER true, false true Engedélyezze a Cosmos Data Explorer ugyanazon a tárolón való futtatását.
Az adatkezelő által használt port beállítása --explorer-port EXPLORER_PORT INT 1234 A Tároló Cosmos Data Explorer portja. Ezt a portot továbbra is közzé kell tennie (például -p 1234:1234).
A felhasználónak meg kell tudnia adni az explorer által használt protokollt, egyébként alapértelmezettként azt, amit a Cosmos-végpont használ --explorer-protocol EXPLORER_PROTOCOL https, , httphttps-insecure <the value of --protocol> A Tároló Cosmos Data Explorer protokollja. A Cosmos-végpont protokollbeállításának alapértelmezései.
A kulcs megadása fájlon keresztül --key-file [PATH] KEY_FILE ÖSVÉNY <default secret> Az alapértelmezett kulcs felülbírálása a fájlban megadott kulccsal. Ezt a fájlt a tárolóba kell csatlakoztatnia (például ha KEY_FILE=/mykey, a docker-futtatáshoz az alábbihoz hasonló lehetőséget kell hozzáadnia: --mount type=bind,source=./myKey,target=/myKey)
Az adatelérési út beállítása --data-path [PATH] DATA_PATH ÖSVÉNY /data Adjon meg egy könyvtárat az adatokhoz. A beállítással docker run --mount gyakran használt (például DATA_PATH=/usr/cosmos/data esetén a docker-futtatáshoz az alábbihoz hasonló lehetőséget adna hozzá: --mount type=bind,source=./.local/data,target=/usr/cosmos/data)
Adja meg a https-hez használandó tanúsítvány elérési útját --cert-path [PATH] CERT_PATH ÖSVÉNY <default cert> Adja meg a tanúsítvány elérési útját a forgalom biztonságossá tételéhez. Csatlakoztatnia kell ezt a fájlt a tárolóhoz (például ha CERT_PATH=/mycert.pfx, a docker-futtatáshoz az alábbihoz hasonló lehetőséget kell hozzáadnia: --mount type=bind,source=./mycert.pfx,target=/mycert.pfx)
Adja meg a https-hez használandó tanúsítványtitkot n/a CERT_SECRET húr <default secret> A CERT_PATH megadott tanúsítvány titkos kódja.
A naplószint beállítása --log-level [LEVEL] LOG_LEVEL quiet, error, warn, infodebugtrace info Az emulátor és az adatkezelő által kibocsátott naplók részletessége.
Diagnosztikai adatok Microsoftnak való elküldése engedélyezése --enable-telemetry ENABLE_TELEMETRY true, false true Az emulátor továbbfejlesztése érdekében engedélyezze a naplók Microsoftnak való küldését.

Szolgáltatások támogatása

Ez az emulátor aktív fejlesztésben és előzetes verzióban érhető el. Emiatt nem minden Azure Cosmos DB-funkció támogatott. Bizonyos funkciók a jövőben sem lesznek támogatottak. Ez a táblázat a különböző funkciók állapotát és azok támogatási szintjét tartalmazza.

Szolgáltatás Támogatás
Batch API ✅ Támogatott
Tömeges API ✅ Támogatott
Hírcsatorna módosítása ⚠️ Még nincs implementálva
Dokumentum létrehozása és olvasása UTF-adatokkal ✅ Támogatott
Gyűjtemény létrehozása ✅ Támogatott
Gyűjtemény létrehozása kétszer ütközik ✅ Támogatott
Gyűjtemény létrehozása egyéni indexszabályzattal ⚠️ Még nincs implementálva
Gyűjtemény létrehozása ttl-lejárattal ⚠️ Még nincs implementálva
Adatbázis létrehozása ✅ Támogatott
Adatbázis létrehozása kétszeri ütközés ✅ Támogatott
Dokumentum létrehozása ✅ Támogatott
Particionált gyűjtemény létrehozása ⚠️ Még nincs implementálva
Gyűjtemény törlése ✅ Támogatott
Adatbázis törlése ✅ Támogatott
Dokumentum törlése ✅ Támogatott
Gyűjtemény teljesítményének lekérése és módosítása ⚠️ Még nincs implementálva
Nagyméretű dokumentum beszúrása ✅ Támogatott
Dokumentum javítása ⚠️ Még nincs implementálva
Particionált gyűjtemény lekérdezése párhuzamosan ⚠️ Még nincs implementálva
Lekérdezés összesítésekkel ⚠️ Még nincs implementálva
Lekérdezés és szűrés ⚠️ Még nincs implementálva
Lekérdezés és szűrés és vetítés ⚠️ Még nincs implementálva
Lekérdezés egyenlőséggel ✅ Támogatott
Lekérdezés egyenlőségjellel az azonosítón ✅ Támogatott
Lekérdezés illesztésekkel ⚠️ Még nincs implementálva
Lekérdezés megrendeléssel a következő szerint: ✅ Támogatott
Lekérdezés a particionált gyűjtemény rendelésével ⚠️ Még nincs implementálva
Lekérdezés számok szerinti sorrendben ✅ Támogatott
Lekérdezés sztringek szerinti sorrendtel ⚠️ Még nincs implementálva
Lekérdezés lapozással ⚠️ Még nincs implementálva
Lekérdezés tartományoperátorok dátumidejével ⚠️ Még nincs implementálva
Lekérdezés számtartomány-operátorokkal ⚠️ Még nincs implementálva
Lekérdezés tartomány operátorokkal sztringeken ⚠️ Még nincs implementálva
Lekérdezés egyetlen illesztéssel ⚠️ Még nincs implementálva
Lekérdezés karakterlánc-matematikai és tömb operátorokkal ⚠️ Még nincs implementálva
Lekérdezés aldokumentumokkal ⚠️ Még nincs implementálva
Lekérdezés két illesztéssel ⚠️ Még nincs implementálva
Lekérdezés két illesztéssel és szűréssel ⚠️ Még nincs implementálva
Olvasási gyűjtemény ✅ Támogatott
Adatgyűjtési hírcsatorna olvasása ⚠️ Még nincs implementálva
Adatbázis olvasása ✅ Támogatott
Adatbázis-hírcsatorna olvasása ⚠️ Még nincs implementálva
Dokumentum olvasása ✅ Támogatott
Dokumentumcsatorna olvasása ✅ Támogatott
Dokumentum cseréje ✅ Támogatott
Kérelemegységek ⚠️ Még nincs implementálva
Tárolt eljárások ❌ Nem tervezett
Eseményindítók ❌ Nem tervezett
UDF-ek ❌ Nem tervezett
Frissítési gyűjtemény ⚠️ Még nincs implementálva
Dokumentum frissítése ✅ Támogatott

Korlátozások

A még nem támogatott vagy nem tervezett funkciók mellett az alábbi lista az emulátor aktuális korlátozásait is tartalmazza.

  • Az Azure Cosmos DB -hez készült .NET SDK nem támogatja a tömeges végrehajtást az emulátorban.
  • A .NET és a Java SDK nem támogatja a HTTP módot az emulátorban.

Tanúsítványok telepítése Java SDK-hoz

Ha az Azure Cosmos DB-hez készült Java SDK-t az emulátor ezen verziójával https módban használja, telepíteni kell a tanúsítványokat a helyi Java megbízhatósági tárolóba.

Tanúsítvány lekérése

bash Egy ablakban futtassa a következőt:

# 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

Tanúsítvány telepítése

Keresse meg a java-telepítés könyvtárát, ahol cacerts a fájl található (cserélje le az alábbiakat a megfelelő könyvtárra):

cd "C:/Program Files/Eclipse Adoptium/jdk-17.0.10.7-hotspot/bin"

Importálja a tanúsítványt (lehet, hogy jelszót kér, az alapértelmezett érték a "changeit"):

keytool -cacerts -importcert -alias cosmos_emulator -file $EMULATOR_CERT_PATH

Ha hibaüzenetet kap, mert az alias már létezik, törölje, majd futtassa újra a fentieket:

keytool -cacerts -delete -alias cosmos_emulator

Jelentéskészítési problémák

Ha problémákba ütközik az emulátor ezen verziójának használatával kapcsolatban, nyisson meg egy hibát a GitHub-adattárban (https://github.com/Azure/azure-cosmos-db-emulator-docker), és címkével lássa el.cosmosEmulatorVnextPreview