Sdílet prostřednictvím


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, , httphttps-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, , httphttps-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, , debugtrace 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.