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-preview
kö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
8081
fut.
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 , , http https-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 , , http https-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 , info debug trace |
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