Opdrachtregel- en PowerShell-naslaginformatie voor Windows (lokale) emulator

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

De Azure Cosmos DB-emulator biedt een lokale omgeving die de Azure Cosmos DB-service emuleert voor lokale ontwikkelingsdoeleinden. Nadat u de emulator hebt geïnstalleerd, kunt u de emulator beheren met opdrachtregel- en PowerShell-opdrachten. In dit artikel wordt beschreven hoe u de opdrachtregel- en PowerShell-opdrachten gebruikt om de emulator te starten en te stoppen, opties te configureren en andere bewerkingen uit te voeren. U moet de opdrachten uitvoeren vanaf de installatielocatie.

Belangrijk

Dit artikel bevat alleen opdrachtregelargumenten voor de lokale Windows-emulator.

De emulator beheren met opdrachtregelsyntaxis

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

Als u de lijst met parameters wilt weergeven, typt u Microsoft.Azure.Cosmos.Emulator.exe /? bij de opdrachtprompt.

Parameter Beschrijving Voorbeeldopdracht
[Geen argumenten] Hiermee start u de emulator met standaardinstellingen. Microsoft.Azure.Cosmos.Emulator.exe
[Help] Toont de lijst met ondersteunde opdrachtregelargumenten. Microsoft.Azure.Cosmos.Emulator.exe /?
GetStatus Hiermee haalt u de status van de emulator op. Elke afsluitcode geeft een status aan: 1 = Starten, 2 = Uitvoeren en 3 = Gestopt. Een negatieve afsluitcode geeft aan dat er een fout is opgetreden. Er wordt geen andere uitvoer geproduceerd. Microsoft.Azure.Cosmos.Emulator.exe /GetStatus
Shutdown Hiermee wordt de emulator afgesloten. Microsoft.Azure.Cosmos.Emulator.exe /Shutdown
DataPath Specificeert het pad waarin de gegevensbestanden worden opgeslagen. De standaardwaarde is %LocalAppdata%\CosmosDBEmulator. Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder
Port Specificeert het poortnummer dat moet worden gebruikt voor de emulator. De standaardwaarde is 8081. Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
ComputePort Hiermee geeft u het poortnummer op dat moet worden gebruikt voor de gatewayservice voor interoperabiliteit tussen berekeningen. De poort voor de HTTP-eindpunttest van de gateway wordt berekend als ComputePort + 79. ComputePort Daarom moet en ComputePort + 79 open en beschikbaar zijn. De standaardwaarde is 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Hiermee schakelt u API in voor MongoDB versie 3.2. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Hiermee schakelt u API in voor MongoDB versie 3.6. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Hiermee schakelt u API in voor MongoDB versie 4.0. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Hiermee geeft u het poortnummer te gebruiken voor API voor MongoDB. De standaardwaarde is 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Hiermee schakelt u API voor Apache Cassandra in. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Hiermee geeft u het poortnummer te gebruiken voor de API voor Cassandra-eindpunt. De standaardwaarde is 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Hiermee schakelt u API voor Apache Gremlin in. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort Poortnummer dat moet worden gebruikt voor de API voor Apache Gremlin-eindpunt. De standaardwaarde is 8901. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint Hiermee schakelt u API voor Table in. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort Poortnummer dat moet worden gebruikt voor de API voor tabeleindpunt. De standaardwaarde is 8902. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile Leest de autorisatiesleutel uit het opgegeven bestand. Gebruik de /GenKeyFile optie om een sleutelbestand te genereren. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath Verwijdert recursief alle bestanden in het opgegeven pad. Als u geen pad opgeeft, wordt dit standaard ingesteld op %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Begin met het verzamelen van traceringslogboeken voor foutopsporing met behulp van LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Stop het verzamelen van traceringslogboeken voor foutopsporing met behulp van LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Begin met het verzamelen van traceringslogboeken voor foutopsporing met behulp van het hulpprogramma Windows Performance Recording . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Stop het verzamelen van logboeken voor foutopsporingstracering met behulp van het hulpprogramma Windows Performance Recording . Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch Standaard genereert de emulator het zelfondertekende TLS/SSL-certificaat opnieuw als het SAN van het certificaat de domeinnaam, het lokale IP-adres (v4), localhosten 127.0.0.1van de emulatorhost niet bevat. Met deze optie mislukt de emulator in plaats daarvan bij het opstarten. U moet vervolgens de /GenCert optie gebruiken om een nieuw zelfondertekend TLS/SSL-certificaat te maken en te installeren. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert Genereert en installeert een nieuw zelfondertekend TLS/SSL-certificaat. eventueel een door komma's gescheiden lijst met extra DNS-namen voor toegang tot de emulator via het netwerk. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts Specificeert de poorten die worden gebruikt voor rechtstreekse connectiviteit. Standaardwaarden zijn 10251, 10252, 10253en 10254. Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700
Key De autorisatiesleutel voor de emulator. De sleutel moet de base 64-codering zijn van een 64-byte-vector. Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
EnableRateLimiting Geeft aan dat het beperkingsgedrag van de aanvraagsnelheid is ingeschakeld. Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting
DisableRateLimiting Geeft aan dat het beperkingsgedrag van de aanvraagsnelheid is uitgeschakeld. Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting
NoUI De gebruikersinterface van de emulator niet weergeven. Microsoft.Azure.Cosmos.Emulator.exe /NoUI
NoExplorer Geen Data Explorer weergeven bij het opstarten. Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer
PartitionCount Specificeert het maximum aantal gepartitioneerde containers. Zie Het aantal containers wijzigen voor meer informatie. De standaardwaarde is 25. Het maximaal toegestane is 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount Specificeert het standaardaantal partities voor een gepartitioneerde container. De standaardwaarde is 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess Geeft toegang tot de emulator via een netwerk. U moet ook doorgeven /Key=<key_string> of /KeyFile=<file_name> om netwerktoegang in te schakelen. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall Pas firewallregels niet aan wanneer /AllowNetworkAccess de optie wordt gebruikt. Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall
GenKeyFile Een nieuwe autorisatiesleutel genereren en opslaan in het opgegeven bestand. De gegenereerde sleutel kan worden gebruikt met de /Key opties of /KeyFile . Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile
Consistency Het standaard consistentieniveau voor het account instellen. De standaardwaarde is Sessie. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? Het helpbericht weergeven.

De emulator beheren met PowerShell-cmdlets

De emulator wordt geleverd met een PowerShell-module voor het starten, stoppen, en verwijderen van de emulator, en voor het ophalen van de status van de service. Voer de volgende cmdlet uit om de PowerShell-module te gebruiken:

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

of plaats de map PSModules in uw PSModulePath en importeer deze zoals wordt weergegeven in de volgende opdracht:

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

Hier volgt een overzicht van de opdrachten voor het beheren van de emulator vanuit PowerShell:

Get-CosmosDbEmulatorStatus

Hiermee haalt u de status van de emulator op. Retourneert een van deze ServiceControllerStatus waarden:

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

Als er een fout optreedt, wordt er geen waarde geretourneerd.

Syntaxis

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

Parameters

Naam Type Beschrijving
AlternativeInstallLocation String

Voorbeelden

  • Haal de status op van een emulator die in de D:\SomeFolder\AzureCosmosDBEmulator map is geïnstalleerd.

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

Start-CosmosDbEmulator

Start de emulator op de lokale computer. Standaard wacht de opdracht totdat de emulator klaar is om aanvragen te accepteren. Gebruik de -NoWait optie als u wilt dat de cmdlet wordt geretourneerd zodra de emulator wordt gestart. Gebruik de parameters van Start-CosmosDbEmulator om opties op te geven, zoals de NoSQL-poort, directe poort en MongoDB-poortnummers.

Syntaxis

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>]

Parameters

Naam Type Description
AllowNetworkAccess SwitchParameter Sta toegang toe vanaf alle IP-adressen die zijn toegewezen aan de host van de emulator. U moet ook een waarde opgeven voor Key of KeyFile om netwerktoegang toe te staan.
AlternativeInstallLocation String Alternatief locatiepad naar het uitvoerbare bestand van de emulator.
CassandraPort UInt16 Poortnummer dat moet worden gebruikt voor de API voor Cassandra. De standaardpoort is 10350.
ComputePort UInt16 Poort die moet worden gebruikt voor de gatewayservice voor interoperabiliteit tussen berekeningen. De HTTP-eindpunttestpoort van de gateway wordt berekend als ComputePort + 79. ComputePort Daarom moet en ComputePort + 79 open en beschikbaar zijn. De standaardpoorten zijn 8900, 8979.
Consistency String Hiermee stelt u het standaardconsistentieniveau voor de emulator in op Sessie, Sterk, Uiteindelijk of GebondenStaleness. Het standaardniveau is Sessie.
Credential PSCredential Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. Gebruik een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential object in, zoals een van de Get-Credential cmdlet. De cmdlet gebruikt standaard de referenties van de huidige gebruiker.
DataPath String Pad voor het opslaan van gegevensbestanden. De standaardlocatie voor gegevensbestanden is $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 Het aantal partities dat per gepartitioneerde verzameling moet worden gereserveerd. De standaardwaarde is 25, wat hetzelfde is als de standaardwaarde van het totale aantal partities.
DirectPort UInt16 Een lijst met vier poorten die moeten worden gebruikt voor directe connectiviteit met de back-end van de emulator. De standaardlijst is 10251, 10252, 10253en 10254.
EnableMongoDb SwitchParameter Hiermee geeft u op dat API voor MongoDB-eindpunt is ingeschakeld. De standaardwaarde is false.
EnableCassandra SwitchParameter Hiermee geeft u op dat API voor Apache Cassandra-eindpunt is ingeschakeld. De standaardwaarde is false.
EnableGremlin SwitchParameter Hiermee geeft u op dat API voor Apache Gremlin-eindpunt is ingeschakeld. De standaardwaarde is false.
EnableTable SwitchParameter Hiermee geeft u op dat API voor tabeleindpunt is ingeschakeld. De standaardwaarde is false.
EnableSqlCompute SwitchParameter Hiermee geeft u op dat API voor NoSQL-eindpunt is ingeschakeld. De standaardwaarde is false.
EnablePreview SwitchParameter Hiermee schakelt u emulatorfuncties in die in preview zijn en niet volledig zijn gerijpt om standaard ingeschakeld te zijn.
FailOnSslCertificateNameMismatch SwitchParameter Standaard genereert de emulator het zelfondertekende TLS/SSL-certificaat opnieuw als het SAN van het certificaat niet de domeinnaam, het lokale IP-adres (v4), localhosten 127.0.0.1van de emulatorhost bevat. Deze optie zorgt ervoor dat de emulator mislukt bij het opstarten. U moet vervolgens de New-CosmosDbEmulatorCertificate optie gebruiken om een nieuw zelfondertekend TLS/SSL-certificaat te maken en te installeren.
GremlinPort UInt16 Poortnummer dat moet worden gebruikt voor de API voor Apache Gremlin. Het standaardpoortnummer is 8901.
TablePort UInt16 Poortnummer dat moet worden gebruikt voor de API voor Table. Het standaardpoortnummer is 8902.
SqlComputePort UInt16 Poortnummer dat moet worden gebruikt voor de API voor NoSQL. Het standaardpoortnummer is 8903.
Key String De autorisatiesleutel voor de emulator. Deze waarde moet de basis 64-codering van een 64-bytesvector zijn.
MongoPort UInt16 Poortnummer dat moet worden gebruikt voor de API voor MongoDB. Het standaardpoortnummer is 10250.
MongoApiVersion String Hiermee geeft u op welke versie moet worden gebruikt voor de API voor MongoDB. De standaardversie is 4.0.
NoFirewall SwitchParameter Hiermee geeft u op dat er geen regels voor binnenkomende poorten moeten worden toegevoegd aan de firewall van de emulatorhost.
NoTelemetry SwitchParameter Hiermee geeft u op dat de cmdlet geen gegevens moet verzamelen voor de huidige emulatorsessie.
NoUI SwitchParameter Hiermee geeft u op dat de cmdlet niet het gebruikersinterface- of taakbalkpictogram moet weergeven.
NoWait SwitchParameter Hiermee geeft u op dat de cmdlet moet worden geretourneerd zodra de emulator begint te starten. Standaard wacht de cmdlet totdat het opstarten is voltooid en de emulator klaar is om aanvragen te ontvangen voordat deze wordt geretourneerd.
PartitionCount UInt16 Het totale aantal partities dat is toegewezen door de emulator.
Port UInt16 Poortnummer voor de gatewayservice en webgebruikersinterface van de emulator. Het standaardpoortnummer is 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

Voorbeelden

  • Start de emulator en wacht totdat deze volledig is gestart en klaar is om aanvragen te accepteren.

    Start-CosmosDbEmulator
    
  • Start de emulator met vijf partities die zijn gereserveerd voor elke gepartitioneerde verzameling. Het totale aantal partities is ingesteld op de standaardwaarde: 25. Daarom is 5 = 25 partitions / 5 partitions/collectionhet totale aantal gepartitioneerde verzamelingen dat kan worden gemaakt. Elke gepartitioneerde verzameling is beperkt tot 50 GB = 5 partitions * 10 GB / partiton.

    @parameters = {
        DefaultPartitionCount = 5
    }
    Start-CosmosDbEmulator @parameters
    
  • Start de emulator met alternatieve poortnummers.

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

Stop-CosmosDbEmulator

Stopt de emulator. Standaard wacht deze opdracht totdat de emulator volledig is afgesloten. Gebruik de optie -NoWait als u wilt dat de cmdlet wordt geretourneerd zodra het afsluiten van de emulator wordt gestart.

Syntaxis

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

Parameters

Naam Type Description
AlternativeInstallLocation String
Timeout UInt32
NoWait SwitchParameter Hiermee geeft u op dat de cmdlet moet worden geretourneerd zodra het afsluiten begint.
Trace SwitchParameter

Voorbeelden

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

Uninstall-CosmosDbEmulator

Hiermee verwijdert u de emulator en verwijdert u optioneel de volledige inhoud van $env:LOCALAPPDATA\CosmosDbEmulator. De cmdlet zorgt ervoor dat de emulator is gestopt deze wordt verwijderd.

Syntaxis

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

Parameters

Naam Type Description
RemoveData SwitchParameter Hiermee geeft u op dat de cmdlet alle gegevens moet verwijderen nadat de emulator is verwijderd.

Voorbeelden

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

Het aantal standaardcontainers wijzigen

Standaard kunt u maximaal 25 containers met een vaste grootte maken (alleen ondersteund met Behulp van Azure Cosmos DB SDK's) of 5 onbeperkte containers met behulp van de emulator. Door de partitioncount-waarde te wijzigen, kunt u maximaal 250 containers met vaste grootte of 50 onbeperkte containers maken, of een combinatie van de twee die niet groter is dan 250 containers met vaste grootte (waarbij één onbeperkte container = 5 containers met vaste grootte is). Het wordt echter afgeraden om de emulator uit te voeren met meer dan 200 containers met een vaste grootte. Vanwege de overhead die hierdoor wordt toegevoegd aan de I/O-bewerkingen van de schijf, ontstaan er dan onvoorspelbare time-outs bij het gebruik van de eindpunt-API's.

Als u probeert een container te maken nadat het huidige aantal partities is overschreden, genereert de emulator een ServiceUnavailable-uitzondering, met het volgende bericht.

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

Voer de volgende stappen uit om het aantal containers te wijzigen dat beschikbaar is in de emulator:

  1. Verwijder alle lokale emulatorgegevens door met de rechtermuisknop op het emulatorpictogram in het systeemvak te klikken en vervolgens op Gegevens opnieuw instellen... te klikken.

  2. Verwijder alle emulator-gegevens in de map %LOCALAPPDATA%\CosmosDBEmulator.

  3. Sluit alle geopende exemplaren door met de rechtermuisknop op het emulatorpictogram in het systeemvak te klikken en vervolgens op Afsluiten te klikken. Het afsluiten van alle exemplaren kan een paar minuten duren.

  4. Installeer de nieuwste versie van de emulator.

  5. Start de emulator met de vlag PartitionCount door een waarde <= 250 in te stellen. Bijvoorbeeld: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

Volgende stappen