Share via


Opdrachtregel- en PowerShell-verwijzing voor Windows-emulator (lokaal)

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel

De Azure Cosmos DB-emulator biedt een lokale omgeving waarmee de Azure Cosmos DB-service wordt geëmuleren 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 Microsoft.Azure.Cosmos.Emulator.exe /? u bij de opdrachtprompt.

Parameter Description Voorbeeldopdracht
[Geen argumenten] Start 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 reken-interoperabiliteitsgatewayservice. De HTTP-eindpunttestpoort van de gateway wordt berekend als ComputePort + 79. ComputePort Daarom moet deze ComputePort + 79 open en beschikbaar zijn. De standaardwaarde is 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Hiermee schakelt u API voor MongoDB versie 3.2 in. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Hiermee schakelt u API voor MongoDB versie 3.6 in. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Hiermee schakelt u API voor MongoDB versie 4.0 in. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Hiermee geeft u het poortnummer dat moet worden gebruikt voor API voor MongoDB. De standaardwaarde is 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Hiermee schakelt u DE API voor Apache Cassandra in. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Hiermee geeft u het poortnummer dat moet worden gebruikt voor de API voor Cassandra-eindpunt. De standaardwaarde is 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Hiermee schakelt u DE 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 DE 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 het standaard ingesteld op %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Begin met het verzamelen van traceerlogboeken voor foutopsporing met behulp van LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Stop met het verzamelen van traceerlogboeken voor foutopsporing met behulp van LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Begin met het verzamelen van traceerlogboeken voor foutopsporing met behulp van het hulpprogramma Windows Performance Recording . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Stop met het verzamelen van traceerlogboeken voor foutopsporing 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 niet de domeinnaam van de emulatorhost, het lokale IP-adres (v4) localhost127.0.0.1en . Met deze optie mislukt de emulator in plaats daarvan bij het opstarten. Vervolgens moet u 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 (Domain Name System) 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 zijn10251, 10252, en 1025310254. 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 Laat de gebruikersinterface van de emulator niet zien. 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 maximum is toegestaan 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 netwerktoegang doorgeven /Key=<key_string> of/KeyFile=<file_name> inschakelen. 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 of /KeyFile opties. 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 PSModules map op uw PSModulePath map 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 samenvatting 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 Description
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 voor het opgeven van Start-CosmosDbEmulator opties, 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 Toegang toestaan 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 compute-interoperabiliteit. De HTTP-eindpunttestpoort van de gateway wordt berekend als ComputePort + 79. ComputePort Daarom moet deze 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 BoundedStaleness. 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 object uit de Get-Credential cmdlet. De cmdlet gebruikt standaard de referenties van de huidige gebruiker.
DataPath String Pad naar 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, die gelijk is aan 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, 10252en 1025310254.
EnableMongoDb SwitchParameter Hiermee geeft u op dat API voor MongoDB-eindpunt is ingeschakeld. De standaardwaarde is onwaar.
EnableCassandra SwitchParameter Hiermee geeft u op dat DE API voor het Apache Cassandra-eindpunt is ingeschakeld. De standaardwaarde is onwaar.
EnableGremlin SwitchParameter Hiermee geeft u op dat de API voor het Apache Gremlin-eindpunt is ingeschakeld. De standaardwaarde is onwaar.
EnableTable SwitchParameter Hiermee geeft u op dat API voor table-eindpunt is ingeschakeld. De standaardwaarde is onwaar.
EnableSqlCompute SwitchParameter Hiermee geeft u op dat API voor NoSQL-eindpunt is ingeschakeld. De standaardwaarde is onwaar.
EnablePreview SwitchParameter Hiermee kunnen emulatorfuncties die in preview zijn en die niet volledig zijn ontwikkeld, standaard ingeschakeld zijn.
FailOnSslCertificateNameMismatch SwitchParameter Standaard genereert de emulator het zelfondertekende TLS/SSL-certificaat opnieuw als het SAN van het certificaat niet de domeinnaam van de emulatorhost, het lokale IP-adres (v4) localhost127.0.0.1en . Deze optie zorgt ervoor dat de emulator mislukt bij het opstarten. Vervolgens moet u 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-bytevector 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 het gebruikersinterface- of taakbalkpictogram niet mag presenteren.
NoWait SwitchParameter Hiermee geeft u op dat de cmdlet moet worden geretourneerd zodra de emulator begint te starten. De cmdlet wacht standaard totdat het opstarten is voltooid en de emulator klaar is om aanvragen te ontvangen voordat deze worden geretourneerd.
PartitionCount UInt16 Het totale aantal partities dat door de emulator is toegewezen.
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 gereed is voor het accepteren van aanvragen.

    Start-CosmosDbEmulator
    
  • Start de emulator met 5 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 wordt 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 eventueel 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 vaste grootte maken (alleen ondersteund met behulp van Azure Cosmos DB Software Development Kits (SDK's)) of vijf 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 containers met een vaste grootte die niet groter is dan 250 containers met vaste grootte (waarbij één onbeperkte container = 5 containers met een vaste grootte is). U wordt echter niet aangeraden de emulator in te stellen voor uitvoering met meer dan 200 containers met 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 dat beschikbaar is in de emulator te wijzigen:

  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 af door met de rechtermuisknop op het emulatorpictogram in het systeemvak te klikken en vervolgens op Afsluiten te klikken. Het kan even duren voordat alle exemplaren zijn afgesloten.

  4. Installeer de nieuwste versie van de emulator.

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

Volgende stappen