Emulátor založený na Linuxu (Preview)
Nová generace emulátoru služby Azure Cosmos DB je zcela založená na Linuxu a je k dispozici jako kontejner Dockeru. Podporuje spouštění na široké škále procesorů a operačních systémů.
Důležité
Tato verze emulátoru podporuje pouze rozhraní API pro NoSQL v režimu brány s výběrovou podmnožinou funkcí. Další informace najdete v podpoře funkcí.
Požadavky
Instalace
Získejte image kontejneru Dockeru pomocí docker pull
. Image kontejneru se publikuje do Registr artefaktů Microsoft jako mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
Spuštěno
Ke spuštění kontejneru použijte docker run
. Potom použijte docker ps
k ověření, že je kontejner spuštěný.
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>
Poznámka:
Emulátor se skládá ze dvou komponent:
- Průzkumník dat – interaktivně prozkoumejte data v emulátoru. Ve výchozím nastavení se spustí na portu.
1234
- Emulátor služby Azure Cosmos DB – místní verze databázové služby Azure Cosmos DB Ve výchozím nastavení se spustí na portu
8081
.
Koncový bod brány emulátoru je obvykle k dispozici na portu 8081
na adrese http://localhost:8081. Pokud chcete přejít do Průzkumníka dat, použijte adresu http://localhost:1234 ve webovém prohlížeči. Dostupnost Průzkumníka dat může trvat několik sekund. Koncový bod brány je obvykle k dispozici okamžitě.
Důležité
Sady .NET a Java SDK nepodporují režim HTTP v emulátoru. Vzhledem k tomu, že tato verze emulátoru ve výchozím nastavení začíná protokolem HTTP, budete muset při spuštění kontejneru explicitně povolit PROTOKOL HTTPS (viz níže). Pro sadu Java SDK budete také muset nainstalovat certifikáty.
docker run --detach --publish 8081:8081 --publish 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview --protocol https
Příkazy Dockeru
Následující tabulka shrnuje dostupné příkazy Dockeru pro konfiguraci emulátoru. Tato tabulka podrobně popisuje odpovídající argumenty, proměnné prostředí, povolené hodnoty, výchozí nastavení a popisy jednotlivých příkazů.
Požadavek | Arg | Prostředí | Povolené hodnoty | Výchozí | Popis |
---|---|---|---|---|---|
Tisk nastavení do stdoutu z kontejneru | --help , -h |
– | – | N/A | Zobrazení informací o dostupné konfiguraci |
Nastavení portu koncového bodu Cosmos | --port [INT] |
PORT | INT | 8081 | Port koncového bodu Cosmos v kontejneru. Tento port stále potřebujete publikovat (například -p 8081:8081 ). |
Zadání protokolu používaného koncovým bodem cosmos | --protocol |
PROTOKOL | https , , http https-insecure |
http |
Protokol koncového bodu Cosmos v kontejneru. |
Povolení Průzkumníka dat | --enable-explorer |
ENABLE_EXPLORER | true , false |
true |
Povolte spuštění Průzkumníka dat Cosmos ve stejném kontejneru. |
Nastavení portu používaného Průzkumníkem dat | --explorer-port |
EXPLORER_PORT | INT | 1 234 | Port Průzkumníka dat Cosmos v kontejneru. Tento port stále potřebujete publikovat (například -p 1234:1234 ). |
Uživatel by měl být schopen zadat protokol používaný průzkumníkem, jinak by měl být výchozí pro to, co koncový bod Cosmos používá. | --explorer-protocol |
EXPLORER_PROTOCOL | https , , http https-insecure |
<the value of --protocol> |
Protokol Průzkumníka dat Cosmos v kontejneru. Ve výchozím nastavení se nastaví protokol v koncovém bodu Cosmos. |
Zadání klíče prostřednictvím souboru | --key-file [PATH] |
KEY_FILE | CESTA | <default secret> |
Přepsat výchozí klíč klíčem zadaným v souboru. Tento soubor musíte připojit do kontejneru (například pokud KEY_FILE=/mykey, přidejte do svého dockeru následující možnost: --mount type=bind,source=./myKey,target=/myKey |
Nastavení cesty k datům | --data-path [PATH] |
DATA_PATH | CESTA | /data |
Zadejte adresář pro data. Často se používá s docker run --mount možností (například pokud DATA_PATH=/usr/cosmos/data, přidejte do svého dockeru následující možnost: --mount type=bind,source=./.local/data,target=/usr/cosmos/data |
Zadejte cestu certifikátu, která se má použít pro https. | --cert-path [PATH] |
CERT_PATH | CESTA | <default cert> |
Zadejte cestu k certifikátu pro zabezpečení provozu. Tento soubor musíte připojit do kontejneru (například pokud CERT_PATH=/mycert.pfx, přidejte do svého dockeru následující možnost: --mount type=bind,source=./mycert.pfx,target=/mycert.pfx |
Zadejte tajný kód certifikátu, který se má použít pro https. | – | CERT_SECRET | string | <default secret> |
Tajný klíč certifikátu zadaného v CERT_PATH. |
Nastavení úrovně protokolu | --log-level [LEVEL] |
LOG_LEVEL | quiet , error , warn , info , , debug trace |
info |
Úroveň podrobností protokolů generovaných emulátorem a průzkumníkem dat. |
Povolení odesílání diagnostických informací do Microsoftu | --enable-telemetry |
ENABLE_TELEMETRY | true , false |
true |
Povolte odesílání protokolů do Microsoftu, abychom mohli vylepšit emulátor. |
Podpora funkcí
Tento emulátor je v aktivním vývoji a verzi Preview. V důsledku toho se nepodporují všechny funkce služby Azure Cosmos DB. Některé funkce nebudou v budoucnu podporovány. Tato tabulka obsahuje stav různých funkcí a jejich úroveň podpory.
Funkce | Technická podpora |
---|---|
Batch API | ✅ Podporovaný |
Hromadné rozhraní API | ✅ Podporovaný |
Kanál změn | ⚠️ Ještě není implementováno |
Vytvoření a čtení dokumentu s daty utf | ✅ Podporovaný |
Vytvoření kolekce | ✅ Podporovaný |
Vytvoření kolekce dvakrát v konfliktu | ✅ Podporovaný |
Vytvoření kolekce pomocí vlastních zásad indexu | ⚠️ Ještě není implementováno |
Vytvoření kolekce s vypršením platnosti ttl | ⚠️ Ještě není implementováno |
Vytvoření databáze | ✅ Podporovaný |
Vytvoření databáze dvakrát v konfliktu | ✅ Podporovaný |
Vytvoření dokumentu | ✅ Podporovaný |
Vytvoření dělené kolekce | ⚠️ Ještě není implementováno |
Odstranění kolekce | ✅ Podporovaný |
Odstranění databáze | ✅ Podporovaný |
Odstranění dokumentu | ✅ Podporovaný |
Získání a změna výkonu shromažďování | ⚠️ Ještě není implementováno |
Vložení velkého dokumentu | ✅ Podporovaný |
Oprava dokumentu | ⚠️ Ještě není implementováno |
Paralelní dotazování dělené kolekce | ⚠️ Ještě není implementováno |
Dotazování s agregacemi | ⚠️ Ještě není implementováno |
Dotazování pomocí a filtrování | ⚠️ Ještě není implementováno |
Dotazování s filtrem a projekcí | ⚠️ Ještě není implementováno |
Dotaz s rovností | ✅ Podporovaný |
Dotaz se rovná ID | ✅ Podporovaný |
Dotazování pomocí spojení | ⚠️ Ještě není implementováno |
Dotazování s pořadím podle | ✅ Podporovaný |
Dotaz s pořadím podle dělené kolekce | ⚠️ Ještě není implementováno |
Dotaz s pořadím podle čísel | ✅ Podporovaný |
Dotazování s pořadím podle řetězců | ⚠️ Ještě není implementováno |
Dotaz se stránkováním | ⚠️ Ještě není implementováno |
Dotaz s operátory rozsahu – časy data | ⚠️ Ještě není implementováno |
Dotazování s operátory rozsahu na číslech | ⚠️ Ještě není implementováno |
Dotazování s operátory rozsahu v řetězcích | ⚠️ Ještě není implementováno |
Dotaz s jedním spojením | ⚠️ Ještě není implementováno |
Dotaz s operátory pro matematiku řetězců a pole | ⚠️ Ještě není implementováno |
Dotazování pomocí vnořených dokumentů | ⚠️ Ještě není implementováno |
Dotazování se dvěma spojeními | ⚠️ Ještě není implementováno |
Dotazování se dvěma spojeními a filtrováním | ⚠️ Ještě není implementováno |
Čtení kolekce | ✅ Podporovaný |
Čtení informačního kanálu kolekce | ⚠️ Ještě není implementováno |
Čtení databáze | ✅ Podporovaný |
Čtení databázového kanálu | ⚠️ Ještě není implementováno |
Čtení dokumentu | ✅ Podporovaný |
Čtení informačního kanálu dokumentu | ✅ Podporovaný |
Nahradit dokument | ✅ Podporovaný |
Jednotky žádostí | ⚠️ Ještě není implementováno |
Uložené procedury | ❌ Neplánované |
Triggery | ❌ Neplánované |
Funkce definované uživatelem | ❌ Neplánované |
Aktualizace kolekce | ⚠️ Ještě není implementováno |
Aktualizace dokumentu | ✅ Podporovaný |
Omezení
Kroměfunkcích
- Sada .NET SDK pro službu Azure Cosmos DB nepodporuje hromadné spouštění v emulátoru.
- Sady .NET a Java SDK nepodporují režim HTTP v emulátoru.
Instalace certifikátů pro sadu Java SDK
Při použití sady Java SDK pro Azure Cosmos DB s touto verzí emulátoru v režimu https je nutné nainstalovat certifikáty do místního úložiště důvěryhodnosti Java.
Získání certifikátu
bash
V okně spusťte následující příkaz:
# 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
Instalace certifikátu
Přejděte do adresáře vaší instalace java, kde cacerts
se nachází soubor (nahraďte ho správným adresářem):
cd "C:/Program Files/Eclipse Adoptium/jdk-17.0.10.7-hotspot/bin"
Importujte certifikát (můžete být požádáni o heslo, výchozí hodnota je "changeit"):
keytool -cacerts -importcert -alias cosmos_emulator -file $EMULATOR_CERT_PATH
Pokud se zobrazí chyba, protože alias už existuje, odstraňte ho a spusťte výše uvedené příkazy znovu:
keytool -cacerts -delete -alias cosmos_emulator
Hlášení problémů
Pokud narazíte na problémy s používáním této verze emulátoru, otevřete problém v úložišti GitHub (https://github.com/Azure/azure-cosmos-db-emulator-docker) a označte ho popiskem cosmosEmulatorVnextPreview
.