Dokumentacja wiersza polecenia i programu PowerShell dla emulatora systemu Windows (lokalnego)

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Emulator usługi Azure Cosmos DB udostępnia środowisko lokalne, które emuluje usługę Azure Cosmos DB na potrzeby lokalnego programowania. Po zainstalowaniu emulatora można kontrolować emulator za pomocą poleceń wiersza polecenia i programu PowerShell. W tym artykule opisano, jak używać poleceń wiersza polecenia i programu PowerShell do uruchamiania i zatrzymywania emulatora, konfigurowania opcji i wykonywania innych operacji. Musisz uruchomić polecenia z lokalizacji instalacji.

Ważne

Ten artykuł zawiera tylko argumenty wiersza polecenia dla lokalnego emulatora systemu Windows.

Zarządzanie emulatorem przy użyciu składni wiersza polecenia

Microsoft.Azure.Cosmos.Emulator.exe 
    [/Shutdown] [/DataPath] [/Port] [/MongoPort] 
    [/DirectPorts] [/Key] [/EnableRateLimiting] 
    [/DisableRateLimiting] [/NoUI] [/NoExplorer] 
    [/EnableMongoDbEndpoint] 
    [/?]

Aby wyświetlić listę parametrów, wpisz Microsoft.Azure.Cosmos.Emulator.exe /? w wierszu polecenia.

Parametr Opis Przykładowe polecenie
[Bez argumentów] Uruchamia emulator z ustawieniami domyślnymi. Microsoft.Azure.Cosmos.Emulator.exe
[Pomoc] Wyświetla listę obsługiwanych argumentów wiersza polecenia. Microsoft.Azure.Cosmos.Emulator.exe /?
GetStatus Pobiera stan emulatora. Każdy kod zakończenia wskazuje stan: 1 = Uruchamianie, 2 = uruchamianie i 3 = zatrzymanie. Kod zakończenia o wartości ujemnej informuje o wystąpieniu błędu. Inne dane wyjściowe nie są generowane. Microsoft.Azure.Cosmos.Emulator.exe /GetStatus
Shutdown Wyłącza emulator. Microsoft.Azure.Cosmos.Emulator.exe /Shutdown
DataPath Określa ścieżkę przechowywania plików danych. Wartość domyślna to %LocalAppdata%\CosmosDBEmulator. Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder
Port Określa numer portu używanego przez emulatora. Wartość domyślna to 8081. Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
ComputePort Określa numer portu do użycia dla usługi bramy międzyoperacyjnej obliczeń. Port sondy punktu końcowego HTTP bramy jest obliczany jako ComputePort + 79. ComputePortComputePort + 79 W związku z tym i musi być otwarty i dostępny. Wartość domyślna to 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Włącza interfejs API dla bazy danych MongoDB w wersji 3.2. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Włącza interfejs API dla bazy danych MongoDB w wersji 3.6. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Włącza interfejs API dla bazy danych MongoDB w wersji 4.0. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Określa numer portu do użycia dla interfejsu API dla bazy danych MongoDB. Wartość domyślna to 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Włącza interfejs API dla platformy Apache Cassandra. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Określa numer portu do użycia dla interfejsu API dla punktu końcowego Cassandra. Wartość domyślna to 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Włącza interfejs API dla języka Apache Gremlin. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort Numer portu do użycia dla interfejsu API dla punktu końcowego apache Gremlin. Wartość domyślna to 8901. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint Włącza interfejs API dla tabeli. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort Numer portu do użycia dla interfejsu API dla punktu końcowego tabeli. Wartość domyślna to 8902. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile Odczyt klucza autoryzacji z określonego pliku. /GenKeyFile Użyj opcji , aby wygenerować plik klucza. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath Rekursywnie usuwa wszystkie pliki w określonej ścieżce. Jeśli nie określisz ścieżki, wartość domyślna %LOCALAPPDATA%\CosmosDbEmulatorto . Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Rozpocznij zbieranie dzienników śledzenia debugowania przy użyciu narzędzia LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Zatrzymaj zbieranie dzienników śledzenia debugowania przy użyciu narzędzia LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Rozpocznij zbieranie dzienników śledzenia debugowania przy użyciu narzędzia Do nagrywania wydajności systemu Windows . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Zatrzymaj zbieranie dzienników śledzenia debugowania przy użyciu narzędzia Do nagrywania wydajności systemu Windows . Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch Domyślnie emulator ponownie generuje certyfikat TLS/SSL z podpisem własnym, jeśli sieć SAN certyfikatu nie zawiera nazwy domeny hosta emulatora, lokalnego adresu IP (v4), localhosti 127.0.0.1. W przypadku tej opcji emulator zamiast tego kończy się niepowodzeniem podczas uruchamiania. Następnie należy użyć /GenCert opcji , aby utworzyć i zainstalować nowy certyfikat TLS/SSL z podpisem własnym. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert Wygeneruj i zainstaluj nowy certyfikat TLS/SSL z podpisem własnym. opcjonalnie dołączanie rozdzielanej przecinkami listy dodatkowych nazw DNS na potrzeby uzyskiwania dostępu do emulatora za pośrednictwem sieci. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts Określa porty używane przez połączenia bezpośrednie. Wartości domyślne to 10251, 10252, 10253i 10254. Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700
Key Klucz autoryzacji dla emulatora. Klucz musi być 64-bajtowym wektorem szyfrowanym algorytmem Base-64. Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
EnableRateLimiting Wskazuje, że ograniczanie szybkości żądania jest włączone. Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting
DisableRateLimiting Wskazuje, że ograniczanie szybkości żądania jest wyłączone. Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting
NoUI Nie pokazuj interfejsu użytkownika emulatora. Microsoft.Azure.Cosmos.Emulator.exe /NoUI
NoExplorer Nie wyświetla Eksploratora danych podczas uruchamiania. Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer
PartitionCount Określa maksymalną liczbę partycjonowanych kontenerów. Aby uzyskać więcej informacji, zobacz zmienianie liczby kontenerów. Wartość domyślna to 25. Maksymalna dozwolona wartość to 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount Określa domyślną liczbę partycji dla kontenera podzielonego na partycje. Wartość domyślna to 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess Włącza dostęp do emulatora za pośrednictwem sieci. Należy również przekazać /Key=<key_string> lub /KeyFile=<file_name> , aby włączyć dostęp do sieci. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall Nie dopasuj reguł zapory, gdy /AllowNetworkAccess jest używana opcja. Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall
GenKeyFile Generuje nowy klucz autoryzacji i zapisuje go w określonym pliku. Wygenerowany klucz może być używany z opcjami /Key lub /KeyFile . Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile
Consistency Ustawia domyślny poziom spójności dla konta. Wartość domyślna to Sesja. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? Wyświetla komunikat pomocy.

Zarządzanie emulatorem za pomocą poleceń cmdlet programu PowerShell

Emulator jest dostarczany z modułem programu PowerShell umożliwiającym uruchamianie, zatrzymywanie, odinstalowywanie i pobieranie stanu usługi. Uruchom następujące polecenie cmdlet, aby użyć modułu programu PowerShell:

Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"

lub umieść katalog w pliku PSModulePath i zaimportuj PSModules go, jak pokazano w poniższym poleceniu:

$env:PSModulePath += ";$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules"
Import-Module Microsoft.Azure.CosmosDB.Emulator

Oto podsumowanie poleceń do kontrolowania emulatora z poziomu programu PowerShell:

Get-CosmosDbEmulatorStatus

Pobiera stan emulatora. Zwraca jedną z następujących ServiceControllerStatus wartości:

  • ServiceControllerStatus.StartPending
  • ServiceControllerStatus.Running
  • ServiceControllerStatus.Stopped

Jeśli wystąpi błąd, nie zostanie zwrócona żadna wartość.

Składnia

Get-CosmosDbEmulatorStatus 
    [[-AlternativeInstallLocation] <String>] 
    [<CommonParameters>]

Parametry

Nazwa Typ Opis
AlternativeInstallLocation String

Przykłady

  • Pobierz stan emulatora zainstalowanego w folderze D:\SomeFolder\AzureCosmosDBEmulator .

    @parameters = {
        AlternativeInstallLocation = "D:\SomeFolder\AzureCosmosDBEmulator"
    }
    Get-CosmosDbEmulatorStatus @parameters
    

Start-CosmosDbEmulator

Uruchamia emulator na komputerze lokalnym. Domyślnie to polecenie czeka, aż emulator zgłosi gotowość do odbierania żądań. -NoWait Użyj opcji , jeśli chcesz, aby polecenie cmdlet wróciło natychmiast po uruchomieniu emulatora. Użyj parametrów Start-CosmosDbEmulator , aby określić opcje, takie jak port NoSQL, port bezpośredni i numery portów bazy danych MongoDB.

Składnia

Start-CosmosDbEmulator [-AllowNetworkAccess]
    [-AlternativeInstallLocation <String>] [-CassandraPort <UInt16>]
    [-ComputePort <UInt16>] [-Consistency <String>] [-Credential
    <PSCredential>] [-DataPath <String>] [-DefaultPartitionCount
    <UInt16>] [-DirectPort <UInt16[]>] [-EnableMongoDb]
    [-EnableCassandra] [-EnableGremlin] [-EnableTable]
    [-EnableSqlCompute] [-EnablePreview]
    [-FailOnSslCertificateNameMismatch] [-GremlinPort <UInt16>]
    [-TablePort <UInt16>] [-SqlComputePort <UInt16>] [-Key <String>]
    [-MongoPort <UInt16>] [-MongoApiVersion <String>] [-NoFirewall]
    [-NoTelemetry] [-NoUI] [-NoWait] [-PartitionCount <UInt16>] [-Port
    <UInt16>] [-SimulateRateLimiting] [-Timeout <UInt32>] [-Trace]
    [<CommonParameters>]

Parametry

Nazwa Typ Opis
AllowNetworkAccess SwitchParameter Zezwalaj na dostęp ze wszystkich adresów IP przypisanych do hosta emulatora. Należy również określić wartość klucza lub pliku klucza, aby zezwolić na dostęp do sieci.
AlternativeInstallLocation String Alternatywna ścieżka lokalizacji do pliku wykonywalnego emulatora.
CassandraPort UInt16 Numer portu do użycia dla interfejsu API dla bazy danych Cassandra. Domyślnym portem jest 10350.
ComputePort UInt16 Port do użycia dla usługi bramy międzyoperacyjnej obliczeń. Port sondy punktu końcowego HTTP bramy jest obliczany jako ComputePort + 79. W związku z tym ComputePort i ComputePort + 79 musi być otwarty i dostępny. Domyślne porty to 8900, 8979.
Consistency String Ustawia domyślny poziom spójności emulatora na Sesja, Silna, Ostateczna lub Powiązana opowieść. Domyślnym poziomem jest Sesja.
Credential PSCredential Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Użyj nazwy użytkownika, takiej jak User01 lub Domain01\User01, lub wprowadź PSCredential obiekt, taki jak jeden z Get-Credential polecenia cmdlet. Domyślnie polecenie cmdlet używa poświadczeń bieżącego użytkownika.
DataPath String Ścieżka do przechowywania plików danych. Domyślną lokalizacją plików danych jest $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 Liczba partycji do zarezerwowania na kolekcję partycjonowaną. Wartość domyślna to 25, która jest taka sama jak wartość domyślna łącznej liczby partycji.
DirectPort UInt16 Lista czterech portów do użycia na potrzeby bezpośredniej łączności z zapleczem emulatora. Domyślna lista to 10251, 10252, 10253i 10254.
EnableMongoDb SwitchParameter Określa, że interfejs API dla punktu końcowego bazy danych MongoDB jest włączony. Wartość domyślna to false.
EnableCassandra SwitchParameter Określa, że interfejs API dla punktu końcowego apache Cassandra jest włączony. Wartość domyślna to false.
EnableGremlin SwitchParameter Określa, że interfejs API dla punktu końcowego apache Gremlin jest włączony. Wartość domyślna to false.
EnableTable SwitchParameter Określa, że interfejs API dla punktu końcowego tabeli jest włączony. Wartość domyślna to false.
EnableSqlCompute SwitchParameter Określa, że interfejs API dla punktu końcowego NoSQL jest włączony. Wartość domyślna to false.
EnablePreview SwitchParameter Włącza funkcje emulatora, które są w wersji zapoznawczej i nie są domyślnie w pełni dojrzałe.
FailOnSslCertificateNameMismatch SwitchParameter Domyślnie emulator ponownie generuje swój certyfikat TLS/SSL z podpisem własnym, jeśli sieć SAN certyfikatu nie zawiera nazwy domeny hosta emulatora, lokalnego adresu IP (v4), localhosti 127.0.0.1. Ta opcja powoduje, że emulator kończy się niepowodzeniem podczas uruchamiania. Następnie należy użyć New-CosmosDbEmulatorCertificate opcji , aby utworzyć i zainstalować nowy certyfikat TLS/SSL z podpisem własnym.
GremlinPort UInt16 Numer portu do użycia dla interfejsu API dla języka Apache Gremlin. Domyślny numer portu to 8901.
TablePort UInt16 Numer portu do użycia dla interfejsu API dla tabeli. Domyślny numer portu to 8902.
SqlComputePort UInt16 Numer portu do użycia dla interfejsu API dla NoSQL. Domyślny numer portu to 8903.
Key String Klucz autoryzacji dla emulatora. Ta wartość musi być podstawowym kodowaniem 64 wektora 64-bajtowego.
MongoPort UInt16 Numer portu do użycia dla interfejsu API dla bazy danych MongoDB. Domyślny numer portu to 10250.
MongoApiVersion String Określa, która wersja ma być używana dla interfejsu API dla bazy danych MongoDB. Domyślna wersja to 4.0.
NoFirewall SwitchParameter Określa, że do zapory hosta emulatora nie powinny być dodawane żadne reguły portów wejściowych.
NoTelemetry SwitchParameter Określa, że polecenie cmdlet nie powinno zbierać danych dla bieżącej sesji emulatora.
NoUI SwitchParameter Określa, że polecenie cmdlet nie powinno przedstawiać interfejsu użytkownika ani ikony paska zadań.
NoWait SwitchParameter Określa, że polecenie cmdlet powinno zostać zwrócone natychmiast po rozpoczęciu uruchamiania emulatora. Domyślnie polecenie cmdlet czeka na ukończenie uruchamiania, a emulator jest gotowy do odbierania żądań przed zwróceniem.
PartitionCount UInt16 Całkowita liczba partycji przydzielonych przez emulator.
Port UInt16 Numer portu dla usługi bramy emulatora i internetowego interfejsu użytkownika. Domyślny numer portu to 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

Przykłady

  • Uruchom emulator i zaczekaj na jego pełne uruchomienie i gotowość do akceptowania żądań.

    Start-CosmosDbEmulator
    
  • Uruchom emulator z 5 partycjami zarezerwowanymi dla każdej kolekcji partycjonowanej. Łączna liczba partycji jest ustawiona na wartość domyślną: 25. W związku z tym łączna liczba kolekcji partycjonowanych, które można utworzyć, to 5 = 25 partitions / 5 partitions/collection. Każda kolekcja partycjonowana jest ograniczona do wartości 50 GB = 5 partitions * 10 GB / partiton.

    @parameters = {
        DefaultPartitionCount = 5
    }
    Start-CosmosDbEmulator @parameters
    
  • Uruchamia emulator z alternatywnymi numerami portów.

    @parameters = {
        Port = 443 
        MongoPort = 27017 
        DirectPort = 20001,20002,20003,20004
    }
    Start-CosmosDbEmulator @parameters
    

Stop-CosmosDbEmulator

Zatrzymuje emulator. Domyślnie to polecenie czeka, aż emulator zostanie w pełni zamknięty. Jeśli chcesz, aby polecenie cmdlet zakończyło działanie od razu po rozpoczęciu zamykania emulatora, użyj opcji -NoWait.

Składnia

Stop-CosmosDbEmulator 
    [[-AlternativeInstallLocation] <String>]
    [-NoWait] [[-Timeout] <UInt32>] [-Trace] 
    [<CommonParameters>]

Parametry

Nazwa Typ Opis
AlternativeInstallLocation String
Timeout UInt32
NoWait SwitchParameter Określa, że polecenie cmdlet powinno zostać zwrócone zaraz po rozpoczęciu zamykania.
Trace SwitchParameter

Przykłady

@parameters = {
    NoWait = $true
}
Stop-CosmosDbEmulator @parameters

Uninstall-CosmosDbEmulator

Odinstalowuje emulator i opcjonalnie usuwa pełną zawartość elementu $env:LOCALAPPDATA\CosmosDbEmulator. To polecenie cmdlet gwarantuje zatrzymanie emulatora przed jego odinstalowaniem.

Składnia

Uninstall-CosmosDbEmulator 
    [-RemoveData] 
    [<CommonParameters>]

Parametry

Nazwa Typ Opis
RemoveData SwitchParameter Określa, że polecenie cmdlet powinno usunąć wszystkie dane po usunięciu emulatora.

Przykłady

@parameters = {
    RemoveData = $false
}
Uninstall-CosmosDbEmulator @parameters

Zmienianie liczby domyślnych kontenerów

Domyślnie można utworzyć maksymalnie 25 kontenerów o stałym rozmiarze (obsługiwanych tylko przy użyciu zestawów SDK usługi Azure Cosmos DB) lub 5 kontenerów bez ograniczeń przy użyciu emulatora. Modyfikując wartość PartitionCount , można utworzyć maksymalnie 250 kontenerów o stałym rozmiarze lub 50 kontenerów bez ograniczeń lub dowolną kombinację tych dwóch kontenerów, które nie przekraczają 250 kontenerów o stałym rozmiarze (gdzie jeden nieograniczony kontener = 5 kontenerów o stałym rozmiarze). Nie zaleca się jednak konfigurowania emulatora do uruchamiania z ponad 200 kontenerami o stałym rozmiarze. Ze względu na obciążenie, które dodaje do operacji we/wy dysku, co powoduje nieprzewidywalne przekroczenia limitu czasu podczas korzystania z interfejsów API punktu końcowego.

Jeśli spróbujesz utworzyć kontener po przekroczeniu bieżącej liczby partycji, emulator zgłosi wyjątek ServiceUnavailable z następującym komunikatem.

Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time. We work continuously to bring more and more capacity online, and encourage you to try again.
ActivityId: 12345678-1234-1234-1234-123456789abc

Aby zmienić liczbę kontenerów dostępnych w emulatorze, uruchom następujące kroki:

  1. Usuń wszystkie dane lokalnego emulatora, klikając prawym przyciskiem myszy ikonę emulatora na pasku zadań systemowych, a następnie klikając polecenie Resetuj dane....

  2. Usuń wszystkie dane emulatora w tym folderze %LOCALAPPDATA%\CosmosDBEmulator.

  3. Zamknij wszystkie otwarte wystąpienia, klikając prawym przyciskiem myszy ikonę emulatora na pasku zadań systemowych, a następnie klikając polecenie Zakończ. Zamykanie wszystkich wystąpień może potrwać około minuty.

  4. Zainstaluj najnowszą wersję emulatora.

  5. Uruchom emulator z flagą PartitionCount, ustawiając wartość <= 250. Na przykład: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

Następne kroki