Referência da linha de comandos e do PowerShell para o emulador do Windows (local)

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

O emulador do Azure Cosmos DB fornece um ambiente local que emula o serviço do Azure Cosmos DB para fins de desenvolvimento local. Depois de instalar o emulador, pode controlar o emulador com a linha de comandos e os comandos do PowerShell. Este artigo descreve como utilizar a linha de comandos e os comandos do PowerShell para iniciar e parar o emulador, configurar opções e executar outras operações. Tem de executar os comandos a partir da localização de instalação.

Importante

Este artigo inclui apenas argumentos de linha de comandos para o emulador local do Windows.

Gerir o emulador com a sintaxe da linha de comandos

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

Para ver a lista de parâmetros, escreva Microsoft.Azure.Cosmos.Emulator.exe /? na linha de comandos.

Parâmetro Description Comando de Exemplo
[Sem argumentos] Inicia o emulador com predefinições. Microsoft.Azure.Cosmos.Emulator.exe
[Ajuda] Mostra a lista dos argumentos da linha de comandos suportados. Microsoft.Azure.Cosmos.Emulator.exe /?
GetStatus Obtém o estado do emulador. Cada código de saída indica um estado: 1 = Iniciar, = 2Em Execução e 3 = Parado. Um código de saída negativo indica que ocorreu um erro. Não é produzido outro resultado. Microsoft.Azure.Cosmos.Emulator.exe /GetStatus
Shutdown Encerra o emulador. Microsoft.Azure.Cosmos.Emulator.exe /Shutdown
DataPath Especifica o caminho onde pretende armazenar os ficheiros de dados. O valor predefinido é %LocalAppdata%\CosmosDBEmulator. Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder
Port Especifica o número de porta a utilizar para o emulador. O valor predefinido é 8081. Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
ComputePort Especifica o número de porta a utilizar para o serviço de gateway interop de computação. A porta de pesquisa de ponto final HTTP do gateway é calculada como ComputePort + 79. Por conseguinte, ComputePort tem ComputePort + 79 de estar aberto e disponível. O valor predefinido é 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Ativa a API para MongoDB versão 3.2. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Ativa a API para a versão 3.6 do MongoDB. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Ativa a API para a versão 4.0 do MongoDB. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Especifica o número de porta a utilizar para a API para MongoDB. O valor predefinido é 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Ativa a API para Apache Cassandra. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Especifica o número de porta a utilizar para a API para o ponto final do Cassandra. O valor predefinido é 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Ativa a API para o Apache Gremlin. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort Número de porta a utilizar para a API para o Ponto Final do Apache Gremlin. O valor predefinido é 8901. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint Ativa a API para Tabela. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort Número de porta a utilizar para a API para o Ponto Final da Tabela. O valor predefinido é 8902. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile Leia a chave de autorização do ficheiro especificado. Utilize a opção /GenKeyFile para gerar um keyfile. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath Remove recursivamente todos os ficheiros no caminho especificado. Se não especificar um caminho, a predefinição é %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Comece a recolher registos de rastreio de depuração com o LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Pare de recolher registos de rastreio de depuração com o LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Comece a recolher registos de rastreio de depuração com a ferramenta Gravação de Desempenho do Windows . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Pare de recolher registos de rastreio de depuração com a ferramenta Gravação de Desempenho do Windows . Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch Por predefinição, o emulador regenera o certificado TLS/SSL autoassinado, se o SAN do certificado não incluir o nome de domínio do anfitrião do emulador, o endereço IP local (v4), localhoste 127.0.0.1. Com esta opção, o emulador falha no arranque. Em seguida, deve utilizar a opção /GenCert para criar e instalar um novo certificado TLS/SSL autoassinado. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert Gerar e instalar um novo certificado TLS/SSL autoassinado. opcionalmente, incluindo uma lista separada por vírgulas de nomes DNS adicionais para aceder ao emulador através da rede. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts Especifica as portas a utilizar para conectividade direta. As predefinições são 10251, 10252, 10253e 10254. Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700
Key Chave de autorização para o emulador. A chave tem de ser a codificação base 64 de um vetor de 64 bytes. Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
EnableRateLimiting Especifica que o comportamento de limitação da taxa de pedidos está ativado. Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting
DisableRateLimiting Especifica que o comportamento de limitação da taxa de pedidos está desativado. Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting
NoUI Não mostrar a interface de utilizador do emulador. Microsoft.Azure.Cosmos.Emulator.exe /NoUI
NoExplorer Não mostrar o explorador de dados no arranque. Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer
PartitionCount Especifica o número máximo de contentores particionados. Para obter mais informações, veja Alterar o número de contentores. O valor predefinido é 25. O máximo permitido é 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount Especifica o número predefinido de partições para um contentor particionado. O valor predefinido é 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess Permite o acesso ao emulador através de uma rede. Também tem de transmitir /Key=<key_string> ou /KeyFile=<file_name> para ativar o acesso à rede. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall Não ajuste as regras da firewall quando /AllowNetworkAccess for utilizada a opção. Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall
GenKeyFile Gerar uma nova chave de autorização e guardá-la no ficheiro especificado. A chave gerada pode ser utilizada com as /Key opções ou /KeyFile . Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile
Consistency Defina o nível de consistência predefinida para a conta. O valor predefinido é Sessão. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? Mostrar a mensagem de ajuda.

Gerir o emulador com cmdlets do PowerShell

O emulador inclui um módulo do PowerShell para iniciar, parar, desinstalar e obter o estado do serviço. Execute o seguinte cmdlet para utilizar o módulo do PowerShell:

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

ou coloque o PSModules diretório no seu PSModulePath e importe-o conforme mostrado no seguinte comando:

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

Eis um resumo dos comandos para controlar o emulador do PowerShell:

Get-CosmosDbEmulatorStatus

Obtém o estado do emulador. Devolve um destes ServiceControllerStatus valores:

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

Se for encontrado um erro, não é devolvido nenhum valor.

Sintaxe

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

Parâmetros

Nome Tipo Descrição
AlternativeInstallLocation String

Exemplos

  • Obtenha o estado de um emulador instalado na D:\SomeFolder\AzureCosmosDBEmulator pasta .

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

Start-CosmosDbEmulator

Inicia o emulador no computador local. Por predefinição, o comando aguarda até que o emulador esteja pronto para aceitar pedidos. Utilize a opção -NoWait se pretender que o cmdlet regresse assim que iniciar o emulador. Utilize os parâmetros de para especificar opções, como a porta NoSQL, a porta direta e os números de Start-CosmosDbEmulator porta do MongoDB.

Sintaxe

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

Parâmetros

Nome Tipo Description
AllowNetworkAccess SwitchParameter Permitir o acesso de todos os Endereços IP atribuídos ao anfitrião do emulador. Também tem de especificar um valor para Chave ou KeyFile para permitir o acesso à rede.
AlternativeInstallLocation String Caminho de localização alternativo para o executável do emulador.
CassandraPort UInt16 Número de porta a utilizar para a API para Cassandra. A porta predefinida é 10350.
ComputePort UInt16 Porta a utilizar para o serviço de gateway interop de computação. A porta de pesquisa de ponto final HTTP do gateway é calculada como ComputePort + 79. Por conseguinte, ComputePort tem ComputePort + 79 de estar aberto e disponível. As portas predefinidas são 8900, 8979.
Consistency String Define o nível de consistência predefinido do emulador como Sessão, Forte, Eventual ou BoundedStaleness. O nível predefinido é Sessão.
Credential PSCredential Especifica uma conta de utilizador com permissão para efetuar esta ação. Utilize um nome de utilizador, como User01 ou Domain01\User01, ou introduza um objeto, como um PSCredential do Get-Credential cmdlet . Por predefinição, o cmdlet utiliza as credenciais do utilizador atual.
DataPath String Caminho para armazenar ficheiros de dados. A localização predefinida para ficheiros de dados é $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 O número de partições a reservar por coleção particionada. A predefinição é 25, que é o mesmo que o valor predefinido da contagem total de partições.
DirectPort UInt16 Uma lista de quatro portas a utilizar para conectividade direta ao back-end do emulador. A lista predefinida é 10251, 10252, 10253e 10254.
EnableMongoDb SwitchParameter Especifica que a API para o ponto final do MongoDB está ativada. A predefinição é false.
EnableCassandra SwitchParameter Especifica que a API para o ponto final do Apache Cassandra está ativada. A predefinição é false.
EnableGremlin SwitchParameter Especifica que a API para o ponto final do Apache Gremlin está ativada. A predefinição é false.
EnableTable SwitchParameter Especifica que a API para o ponto final de Tabela está ativada. A predefinição é false.
EnableSqlCompute SwitchParameter Especifica que a API para o ponto final NoSQL está ativada. A predefinição é false.
EnablePreview SwitchParameter Ativa as funcionalidades do emulador que estão em pré-visualização e que não estão totalmente maduras para estarem ativadas por predefinição.
FailOnSslCertificateNameMismatch SwitchParameter Por predefinição, o emulador regenera o certificado TLS/SSL autoassinado, se o SAN do certificado não incluir o nome de domínio do anfitrião do emulador, o endereço IP local (v4), localhoste 127.0.0.1. Esta opção faz com que o emulador falhe no arranque. Em seguida, deve utilizar a opção New-CosmosDbEmulatorCertificate para criar e instalar um novo certificado TLS/SSL autoassinado.
GremlinPort UInt16 Número de porta a utilizar para a API para Apache Gremlin. O número de porta predefinido é 8901.
TablePort UInt16 Número de porta a utilizar para a API para Tabela. O número de porta predefinido é 8902.
SqlComputePort UInt16 Número de porta a utilizar para a API para NoSQL. O número de porta predefinido é 8903.
Key String Chave de autorização para o emulador. Este valor tem de ser a codificação base 64 de um vetor de 64 bytes.
MongoPort UInt16 Número de porta a utilizar para a API para MongoDB. O número de porta predefinido é 10250.
MongoApiVersion String Especifica a versão a utilizar para a API para MongoDB. A versão predefinida é 4.0.
NoFirewall SwitchParameter Especifica que não devem ser adicionadas regras de porta de entrada à firewall do anfitrião do emulador.
NoTelemetry SwitchParameter Especifica que o cmdlet não deve recolher dados para a sessão do emulador atual.
NoUI SwitchParameter Especifica que o cmdlet não deve apresentar a interface de utilizador ou o ícone da barra de tarefas.
NoWait SwitchParameter Especifica que o cmdlet deve ser devolvido assim que o emulador começar a iniciar. Por predefinição, o cmdlet aguarda até o arranque estar concluído e o emulador está pronto para receber pedidos antes de regressar.
PartitionCount UInt16 O número total de partições alocadas pelo emulador.
Port UInt16 Número de porta do Serviço de Gateway do emulador e da IU da Web. O número de porta predefinido é 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

Exemplos

  • Inicie o emulador e aguarde até que esteja totalmente iniciado e pronto para aceitar pedidos.

    Start-CosmosDbEmulator
    
  • Inicie o emulador com 5 partições reservadas para cada coleção particionada. O número total de partições está definido para a predefinição: 25. Assim, o número total de coleções particionadas que podem ser criadas é 5 = 25 partitions / 5 partitions/collection. Cada coleção particionada está limitada a 50 GB = 5 partitions * 10 GB / partiton.

    @parameters = {
        DefaultPartitionCount = 5
    }
    Start-CosmosDbEmulator @parameters
    
  • Inicia o emulador com números de porta alternativos.

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

Stop-CosmosDbEmulator

Para o emulador. Por predefinição, este comando aguarda até que o emulador seja totalmente encerrado. Utilize a opção -NoWait, se quiser que o cmdlet seja devolvido assim que o emulador começar a encerrar.

Sintaxe

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

Parâmetros

Nome Tipo Description
AlternativeInstallLocation String
Timeout UInt32
NoWait SwitchParameter Especifica que o cmdlet deve ser devolvido assim que o encerramento começar.
Trace SwitchParameter

Exemplos

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

Uninstall-CosmosDbEmulator

Desinstala o emulador e, opcionalmente, remove o conteúdo completo de $env:LOCALAPPDATA\CosmosDbEmulator. O cmdlet assegura que o emulador está parado antes de desinstalá-lo.

Sintaxe

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

Parâmetros

Nome Tipo Description
RemoveData SwitchParameter Especifica que o cmdlet deve eliminar todos os dados depois de remover o emulador.

Exemplos

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

Alterar o número de contentores predefinidos

Por predefinição, pode criar até 25 contentores de tamanho fixo (apenas suportados com SDKs do Azure Cosmos DB) ou 5 contentores ilimitados com o emulador. Ao modificar o valor PartitionCount , pode criar até 250 contentores de tamanho fixo ou 50 contentores ilimitados ou qualquer combinação dos dois que não exceda 250 contentores de tamanho fixo (em que um contentor ilimitado = 5 contentores de tamanho fixo). No entanto, não é recomendado configurar o emulador para ser executado com mais de 200 contentores de tamanho fixo. Devido à sobrecarga que adiciona às operações de E/S do disco, o que resulta em tempos limite imprevisíveis ao utilizar as APIs de ponto final.

Se tentar criar um contentor após a contagem de partições atual ter sido excedida, o emulador gera uma exceção ServiceUnavailable, com a seguinte mensagem.

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

Para alterar o número de contentores disponíveis no emulador, execute os seguintes passos:

  1. Elimine todos os dados do emulador local ao clicar com o botão direito do rato no ícone do emulador no tabuleiro do sistema e, em seguida, ao clicar em Repor Dados....

  2. Elimine todos os dados do emulador nesta pasta %LOCALAPPDATA%\CosmosDBEmulator.

  3. Saia de todas as instâncias abertas ao clicar com o botão direito do rato no ícone do emulador no tabuleiro do sistema e, em seguida, ao clicar em Sair. Pode demorar um minuto para que todas as instâncias possam sair.

  4. Instale a versão mais recente do emulador.

  5. Inicie o emulador com o sinalizador PartitionCount ao definir um valor <= 250. Por exemplo: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

Passos seguintes