Referência de linha de comando e PowerShell para 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 Azure Cosmos DB para fins de desenvolvimento local. Depois de instalar o emulador, você pode controlar o emulador com comandos de linha de comando e PowerShell. Este artigo descreve como usar a linha de comando e os comandos do PowerShell para iniciar e parar o emulador, configurar opções e executar outras operações. Você tem que executar os comandos a partir do local de instalação.

Importante

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

Gerenciar o emulador com sintaxe de linha de comando

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

Para exibir a lista de parâmetros, digite Microsoft.Azure.Cosmos.Emulator.exe /? no prompt de comando.

Parâmetro Description Comando de exemplo
[Sem argumentos] Inicia o emulador com as configurações padrão. 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 status do emulador. Cada código de saída indica um status: 1 = Iniciando,2 = Executando 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 Desliga 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 da porta a ser usado para o serviço de gateway de interoperabilidade de computação. A porta de teste de ponto de extremidade HTTP do gateway é calculada como ComputePort + 79. Por isso, ComputePort e ComputePort + 79 deve estar aberto e disponível. O valor predefinido é 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 Habilita a API para o MongoDB versão 3.2. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 Habilita a API para o MongoDB versão 3.6. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 Habilita a API para o MongoDB versão 4.0. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort Especifica o número da porta a ser usado para a API do MongoDB. O valor predefinido é 10255. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint Habilita a API para Apache Cassandra. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort Especifica o número da porta a ser usado para a API do ponto de extremidade Cassandra. O valor predefinido é 10350. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint Habilita a API para Apache Gremlin. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort Número da porta a ser usada para a API do Apache Gremlin Endpoint. O valor predefinido é 8901. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint Habilita a API para tabela. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort Número da porta a ser usada para a API do ponto de extremidade da tabela. O valor predefinido é 8902. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile Leia a chave de autorização do arquivo especificado. Use a /GenKeyFile opção para gerar um arquivo de chave. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath Remove recursivamente todos os arquivos no caminho especificado. Se você não especificar um caminho, o padrão será %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces Comece a coletar logs de rastreamento de depuração usando LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces Pare de coletar logs de rastreamento de depuração usando LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces Comece a coletar logs de rastreamento de depuração usando a ferramenta Gravação de Desempenho do Windows. Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces Pare de coletar logs de rastreamento de depuração usando a ferramenta Gravação de Desempenho do Windows. Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch Por padrão, o emulador regenera seu certificado TLS/SSL autoassinado, se a SAN do certificado não incluir o nome de domínio do host do emulador, o endereço IP local (v4) localhoste 127.0.0.1o . Com essa opção, o emulador falha na inicialização. Em seguida, você deve usar a /GenCert opção para criar e instalar um novo certificado TLS/SSL autoassinado. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert Gere e instale um novo certificado TLS/SSL autoassinado. opcionalmente, incluindo uma lista separada por vírgulas de nomes DNS (Sistema de Nomes de Domínio) extras para acessar o emulador pela rede. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts Especifica as portas a utilizar para conectividade direta. Os padrõ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 mostre a interface do usuário 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 contêineres particionados. Para obter mais informações, consulte alterar o número de contêineres. O valor predefinido é 25. O máximo permitido é 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount Especifica o número padrão de partições para um contêiner particionado. O valor predefinido é 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess Permite o acesso ao emulador através de uma rede. Você também deve passar /Key=<key_string> ou /KeyFile=<file_name> para habilitar o acesso à rede. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall Não ajuste as regras de firewall quando /AllowNetworkAccess a opção for usada. 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 usada 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 padrão é Session. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? Mostrar a mensagem de ajuda.

Gerenciar o emulador com cmdlets do PowerShell

O emulador vem com um módulo do PowerShell para iniciar, parar, desinstalar e recuperar o status do serviço. Execute o seguinte cmdlet para usar o módulo 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 como mostrado no seguinte comando:

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

Aqui está um resumo dos comandos para controlar o emulador do PowerShell:

Get-CosmosDbEmulatorStatus

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

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

Se for encontrado um erro, nenhum valor será retornado.

Sintaxe

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

Parâmetros

Nome Tipo Description
AlternativeInstallLocation String

Exemplos

  • Obtenha o status 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. Use a -NoWait opção, se desejar que o cmdlet retorne assim que iniciar o emulador. Use os parâmetros de para especificar opções, como a porta NoSQL, a porta direta e os números de porta MongoDB Start-CosmosDbEmulator .

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 Permite o acesso a partir de todos os endereços IP atribuídos ao host do emulador. Você também deve especificar um valor para Key ou KeyFile para permitir o acesso à rede.
AlternativeInstallLocation String Caminho de local alternativo para o executável do emulador.
CassandraPort UInt16 Número da porta a ser usado para a API para Cassandra. A porta padrão é 10350.
ComputePort UInt16 Porta a ser usada para o serviço de gateway de interoperabilidade de computação. A porta de teste de ponto de extremidade HTTP do gateway é calculada como ComputePort + 79. Por isso, ComputePort e ComputePort + 79 deve estar aberto e disponível. As portas padrão são 8900, 8979.
Consistency String Define o nível de consistência padrão para o emulador como Session, Strong, Eventual, ou BoundedStaleness. O nível padrão é Session.
Credential PSCredential Especifica uma conta de usuário que tem permissão para executar essa ação. Use um nome de usuário, como User01 ou Domain01\User01, ou insira um PSCredential objeto, como um do Get-Credential cmdlet. Por padrão, o cmdlet usa as credenciais do usuário atual.
DataPath String Caminho para armazenar arquivos de dados. O local padrão para arquivos de dados é $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 O número de partições a serem reservadas por coleção particionada. O padrão é 25, que é o mesmo que o valor padrão da contagem total de partições.
DirectPort UInt16 Uma lista de quatro portas a serem usadas para conectividade direta com o back-end do emulador. A lista padrão é 10251, 10252, 10253e 10254.
EnableMongoDb SwitchParameter Especifica que a API para o ponto de extremidade MongoDB está habilitada. O padrão é false.
EnableCassandra SwitchParameter Especifica que a API para o ponto de extremidade Apache Cassandra está habilitada. O padrão é false.
EnableGremlin SwitchParameter Especifica que a API para o ponto de extremidade Apache Gremlin está habilitada. O padrão é false.
EnableTable SwitchParameter Especifica que a API para o ponto de extremidade Table está habilitada. O padrão é false.
EnableSqlCompute SwitchParameter Especifica que a API para ponto de extremidade NoSQL está habilitada. O padrão é false.
EnablePreview SwitchParameter Permite que os recursos do emulador que estão em visualização e não estão totalmente amadurecidos estejam ativados por padrão.
FailOnSslCertificateNameMismatch SwitchParameter Por padrão, o emulador regenera seu certificado TLS/SSL autoassinado, se a SAN do certificado não incluir o nome de domínio do host do emulador, o endereço IP local (v4) localhoste 127.0.0.1o . Essa opção faz com que o emulador falhe na inicialização. Em seguida, você deve usar a New-CosmosDbEmulatorCertificate opção para criar e instalar um novo certificado TLS/SSL autoassinado.
GremlinPort UInt16 Número da porta a ser usada para a API do Apache Gremlin. O número de porta padrão é 8901.
TablePort UInt16 Número da porta a ser usada para a API para Tabela. O número de porta padrão é 8902.
SqlComputePort UInt16 Número da porta a ser usada para a API para NoSQL. O número de porta padrão é 8903.
Key String Chave de autorização para o emulador. Esse valor deve ser a codificação base 64 de um vetor de 64 bytes.
MongoPort UInt16 Número da porta a ser usada para a API do MongoDB. O número de porta padrão é 10250.
MongoApiVersion String Especifica qual versão usar para a API do MongoDB. A versão padrão é 4.0.
NoFirewall SwitchParameter Especifica que nenhuma regra de porta de entrada deve ser adicionada ao firewall do host do emulador.
NoTelemetry SwitchParameter Especifica que o cmdlet não deve coletar dados para a sessão atual do emulador.
NoUI SwitchParameter Especifica que o cmdlet não deve apresentar a interface do usuário ou o ícone da barra de tarefas.
NoWait SwitchParameter Especifica que o cmdlet deve retornar assim que o emulador começar a iniciar. Por padrão, o cmdlet aguarda até que a inicialização seja concluída e o emulador esteja pronto para receber solicitações antes de retornar.
PartitionCount UInt16 O número total de partições alocadas pelo emulador.
Port UInt16 Número da porta para o Serviço de Gateway do emulador e a interface do usuário da Web. O número de porta padrão é 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

Exemplos

  • Inicie o emulador e aguarde até que ele esteja pronto para aceitar solicitações.

    Start-CosmosDbEmulator
    
  • Inicie o emulador com 5 partições reservadas para cada coleção particionada. O número total de partições é definido como padrã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 é 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 retornar assim que o desligamento começar.
Trace SwitchParameter

Exemplos

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

Uninstall-CosmosDbEmulator

Desinstala o emulador e, opcionalmente, remove todo o conteúdo do $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 excluir todos os dados depois de remover o emulador.

Exemplos

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

Alterar o número de contêineres padrão

Por padrão, você pode criar até 25 contêineres de tamanho fixo (com suporte apenas usando SDKs (kits de desenvolvimento de software) do Azure Cosmos DB) ou 5 contêineres ilimitados usando o emulador. Ao modificar o valor PartitionCount, você pode criar até 250 contêineres de tamanho fixo ou 50 contêineres ilimitados, ou qualquer combinação dos dois que não exceda 250 contêineres de tamanho fixo (onde um contêiner ilimitado = 5 contêineres de tamanho fixo). No entanto, não recomendamos que você configure o emulador para ser executado com mais de 200 contêineres de tamanho fixo. Devido à sobrecarga que ele adiciona às operações de E/S do disco, que resultam em tempos limite imprevisíveis ao usar as APIs de ponto de extremidade.

Se você tentar criar um contêiner depois que a contagem de partições atual for excedida, o emulador lançará 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 contêineres disponíveis no emulador, execute as seguintes etapas:

  1. Exclua todos os dados do emulador local clicando com o botão direito do mouse no ícone do emulador na bandeja do sistema e clicando em Redefinir dados....

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

  3. Saia de todas as instâncias abertas clicando com o botão direito do mouse no ícone do emulador na bandeja do sistema e clicando em Sair. Pode levar um minuto para que todas as instâncias saiam.

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

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

Próximos passos