Usar o Emulador do Azure Cosmos para desenvolvimento e teste locaisUse the Azure Cosmos Emulator for local development and testing

O emulador do Azure Cosmos DB fornece um ambiente local que emula o serviço do Azure Cosmos para fins de desenvolvimento.The Azure Cosmos Emulator provides a local environment that emulates the Azure Cosmos DB service for development purposes. Com o Emulador do Azure Cosmos, você pode desenvolver e testar seu aplicativo localmente sem criar uma assinatura Azure ou incorrer em custos.Using the Azure Cosmos Emulator, you can develop and test your application locally, without creating an Azure subscription or incurring any costs. Quando estiver satisfeito com o funcionamento de seu aplicativo no Emulador do Azure Cosmos, você poderá passar a usar uma conta do Azure Cosmos na nuvem.When you're satisfied with how your application is working in the Azure Cosmos Emulator, you can switch to using an Azure Cosmos account in the cloud.

Você pode desenvolver usando o emulador do Azure Cosmos com as contas de SQL, Cassandra, MongoDB, Gremlin, e API de tabela.You can develop using Azure Cosmos Emulator with SQL, Cassandra, MongoDB, Gremlin, and Table API accounts. No entanto, neste momento o modo de exibição do Data Explorer no emulador é totalmente compatível com clientes para API do SQL somente.However at this time the Data Explorer view in the emulator fully supports clients for SQL API only.

Como o emulador funcionaHow the emulator works

O emulador do Azure Cosmos fornece uma emulação de alta fidelidade do serviço do Azure Cosmos DB.The Azure Cosmos Emulator provides a high-fidelity emulation of the Azure Cosmos DB service. Ele dá suporte a uma funcionalidade idêntica ao Azure Cosmos DB, incluindo suporte para criar e consultar dados, provisionar e dimensionar contêineres, bem como executar procedimentos armazenados e gatilhos.It supports identical functionality as Azure Cosmos DB, including support for creating and querying data, provisioning and scaling containers, and executing stored procedures and triggers. Desenvolva e teste aplicativos usando o emulador do Azure Cosmos e implante-os no Azure em escala global, apenas fazendo uma única alteração de configuração no ponto de extremidade de conexão do Azure Cosmos DB.You can develop and test applications using the Azure Cosmos Emulator, and deploy them to Azure at global scale by just making a single configuration change to the connection endpoint for Azure Cosmos DB.

Embora a emulação do serviço do Azure Cosmos DB seja fiel, a implementação do emulador é diferente do serviço.While emulation of the Azure Cosmos DB service is faithful, the emulator's implementation is different than the service. Por exemplo, o emulador usa componentes padrão do SO, como sistema de arquivos local para persistência e pilha do protocolo HTTPS para conectividade.For example, the emulator uses standard OS components such as the local file system for persistence, and the HTTPS protocol stack for connectivity. A funcionalidade que depende da infraestrutura do Azure, como replicação global, latência de único dígito em milissegundos para leituras/gravações e níveis de consistência ajustáveis, não está disponível.Functionality that relies on Azure infrastructure like global replication, single-digit millisecond latency for reads/writes, and tunable consistency levels are not applicable.

Também é possível migrar dados entre o emulador do Azure Cosmos e o serviço Azure Cosmos usando a Ferramenta de Migração de Dados do Microsoft Azure Cosmos DB.You can migrate data between the Azure Cosmos Emulator and the Azure Cosmos DB service by using the Azure Cosmos DB Data Migration Tool.

Você pode executar o emulador do Azure Cosmos no contêiner do Docker do Windows, consulte o Hub do Docker quanto ao comando docker pull e GitHub para o código de origem do emulador.You can run Azure Cosmos Emulator on the Windows Docker container, see the Docker Hub for the docker pull command and GitHub for the emulator source code.

Diferenças entre o emulador e o serviçoDifferences between the emulator and the service

Como o Emulador do Azure Cosmos fornece um ambiente emulado em execução em uma estação de trabalho do desenvolvedor local, há algumas diferenças na funcionalidade entre o emulador e a conta do Azure Cosmos na nuvem:Because the Azure Cosmos Emulator provides an emulated environment running on the local developer workstation, there are some differences in functionality between the emulator and an Azure Cosmos account in the cloud:

  • Neste momento, o Data Explorer no emulador é totalmente compatível com clientes para a API do SQL.Currently Data Explorer in the emulator supports clients for SQL API. A exibição do Gerenciador de Dados e operações para APIs do Azure Cosmos DB, como o MongoDB, tabela, Graph e APIs de Cassandra não têm suporte total.The Data Explorer view and operations for Azure Cosmos DB APIs such as MongoDB, Table, Graph, and Cassandra APIs are not fully supported.
  • O Emulador do Azure Cosmos dá suporte apenas uma única conta fixa e uma chave mestra conhecida.The Azure Cosmos Emulator supports only a single fixed account and a well-known master key. A regeneração de chave não é possível no emulador do Cosmos do Azure, mas a chave padrão pode ser alterada usando a opção da linha de comando.Key regeneration is not possible in the Azure Cosmos Emulator, however the default key can be changed using the command-line option.
  • O emulador do Azure Cosmos não é um serviço escalonável e não dará suporte a um grande número de contêineres.The Azure Cosmos Emulator is not a scalable service and will not support a large number of containers.
  • O emulador do Azure Cosmos não oferta diferentes níveis de consistência do Azure Cosmos DB.The Azure Cosmos Emulator does not offer different Azure Cosmos DB consistency levels.
  • O emulador do Azure Cosmos não oferece replicação de várias regiões.The Azure Cosmos Emulator does not offer multi-region replication.
  • Como a sua cópia do emulador do Azure Cosmos pode não ser atualizada com as alterações mais recentes com o serviço do Azure Cosmos DB, você deve consultar o planejador de capacidade do Azure Cosmos DB para estimar as necessidades de taxa de transferência (RUs) de seu aplicativo.As your copy of the Azure Cosmos Emulator might not always be up-to-date with the most recent changes in the Azure Cosmos DB service, you should refer to the Azure Cosmos DB capacity planner to accurately estimate the production throughput (RUs) needs of your application.
  • Ao usar o emulador do Cosmos do Azure, por padrão, você pode criar até 25 contêineres de tamanho fixo (suportado apenas usando os SDKs do Azure Cosmos DB) ou os 5 contêineres ilimitados usando o emulador do Azure Cosmos.When using the Azure Cosmos Emulator, by default, you can create up to 25 fixed size containers (only supported using Azure Cosmos DB SDKs), or 5 unlimited containers using the Azure Cosmos Emulator. Para saber mais sobre como alterar esse valor, veja Definição do valor de PartitionCount.For more information about changing this value, see Setting the PartitionCount value.

Requisitos do sistemaSystem requirements

O emulador do Azure Cosmos DB tem os seguintes requisitos de hardware e software:The Azure Cosmos Emulator has the following hardware and software requirements:

  • Requisitos de softwareSoftware requirements
    • Windows Server 2012 R2, Windows Server 2016 ou Windows 10Windows Server 2012 R2, Windows Server 2016, or Windows 10
    • Sistema operacional de 64 bits64-bit operating system
  • Requisitos mínimos de hardwareMinimum Hardware requirements
    • 2 GB de RAM2-GB RAM
    • Espaço disponível no disco rígido de 10 GB10-GB available hard disk space

InstalaçãoInstallation

Você pode baixar e instalar o Emulador do Azure Cosmos no Centro de Download da Microsoft ou você pode executar o emulador no Docker CE for Windows.You can download and install the Azure Cosmos Emulator from the Microsoft Download Center or you can run the emulator on Docker for Windows. Para obter instruções sobre como usar o emulador no Docker for Windows, confira Em execução no Docker.For instructions on using the emulator on Docker for Windows, see Running on Docker.

Observação

Para instalar, configurar e executar o emulador do Azure Cosmos DB, você deve ter privilégios administrativos no computador.To install, configure, and run the Azure Cosmos Emulator, you must have administrative privileges on the computer. O emulador criará ou adicionará um certificado e também definirá as regras de firewall para executar seus serviços. Portanto, é necessário para o emulador ser capaz de executar essas operações.The emulator will create/add a certificate and also set the firewall rules in order to run its services; therefore it's necessary for the emulator to be able to execute such operations.

Em execução no WindowsRunning on Windows

Para iniciar o emulador do Azure Cosmos, selecione o botão Iniciar ou pressione a tecla Windows.To start the Azure Cosmos Emulator, select the Start button or press the Windows key. Comece a digitar emulador do Azure Cosmos e selecione o emulador na lista de aplicativos.Begin typing Azure Cosmos Emulator, and select the emulator from the list of applications.

Selecione o botão Iniciar ou pressione a tecla Windows, comece a digitar Emulador do Azure Cosmos e selecione o emulador na lista de aplicativos

Quando o emulador estiver em execução, você verá um ícone na área de notificação da barra de tarefas do Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area. Notificação na barra de tarefas do emulador local do Azure Cosmos DB

O Emulador do Azure Cosmos, por padrão, é executado no computador local ("localhost") escutando na porta 8081.The Azure Cosmos Emulator by default runs on the local machine ("localhost") listening on port 8081.

O emulador do Azure Cosmos DB é instalado em C:\Program Files\Azure Cosmos DB Emulator por padrão.The Azure Cosmos Emulator is installed to C:\Program Files\Azure Cosmos DB Emulator by default. Você também pode iniciar e parar o emulador pela linha de comando.You can also start and stop the emulator from the command-line. Para saber mais, veja a referência da ferramenta de linha de comando.For more information, see the command-line tool reference.

Iniciar o Data ExplorerStart Data Explorer

Quando o emulador do Azure Cosmos é iniciado, ele abre automaticamente o Data Explorer do Azure Cosmos no seu navegador.When the Azure Cosmos Emulator launches, it automatically opens the Azure Cosmos Data Explorer in your browser. O endereço é exibido como https://localhost:8081/_explorer/index.html.The address appears as https://localhost:8081/_explorer/index.html. Se você fechar o Explorer e quiser reabri-lo mais tarde, é possível abrir a URL no navegador ou iniciá-lo no Emulador do Azure Cosmos no Ícone de Bandeja do Windows, como mostrado abaixo.If you close the explorer and would like to reopen it later, you can either open the URL in your browser or launch it from the Azure Cosmos Emulator in the Windows Tray Icon as shown below.

Iniciador do Data Explorer do emulador local do Azure Cosmos

Procurando atualizaçõesChecking for updates

O Data Explorer indica se há uma nova atualização disponível para download.Data Explorer indicates if there is a new update available for download.

Observação

Não há garantias de que os dados criados em uma versão do emulador do Azure Cosmos (consulte %LOCALAPPDATA%\CosmosDBEmulator ou configurações opcionais do caminho de dados) possam ser acessados em outras versões.Data created in one version of the Azure Cosmos Emulator (see %LOCALAPPDATA%\CosmosDBEmulator or data path optional settings) is not guaranteed to be accessible when using a different version. Se você precisar persistir seus dados por longo prazo, é recomendável armazená-los em uma conta do Azure Cosmos e não no Emulador do Azure Cosmos.If you need to persist your data for the long term, it is recommended that you store that data in an Azure Cosmos account, rather than in the Azure Cosmos Emulator.

Autenticar solicitaçõesAuthenticating requests

Assim como no Azure Cosmos DB na nuvem, cada solicitação feita no emulador do Azure Cosmos deve ser autenticada.As with Azure Cosmos DB in the cloud, every request that you make against the Azure Cosmos Emulator must be authenticated. O Emulador do Azure Cosmos dá suporte a uma única conta fixa e a uma chave de autenticação conhecida para autenticação de chave mestra.The Azure Cosmos Emulator supports a single fixed account and a well-known authentication key for master key authentication. Essa conta e a chave são as únicas credenciais permitidas para uso com o Emulador do Azure Cosmos.This account and key are the only credentials permitted for use with the Azure Cosmos Emulator. Eles são:They are:

Account name: localhost:<port>
Account key: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==

Observação

A chave mestra com suporte do Emulador do Azure Cosmos destina-se ao uso somente com o emulador.The master key supported by the Azure Cosmos Emulator is intended for use only with the emulator. Você não pode usar sua conta do Microsoft Azure Cosmos DB de produção e a chave com o emulador do Azure Cosmos.You cannot use your production Azure Cosmos DB account and key with the Azure Cosmos Emulator.

Observação

Se você tiver iniciado o emulador com a opção /Key, use a chave gerada em vez de C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==.If you have started the emulator with the /Key option, then use the generated key instead of C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==. Para saber mais sobre a opção /Keym veja a referência da ferramenta da linha de comando.For more information about /Key option, see Command-line tool reference.

Além disso, assim como o Azure Cosmos DB, o emulador do Azure Cosmos tem suporte apenas à comunicação segura por SSL.As with the Azure Cosmos DB, the Azure Cosmos Emulator supports only secure communication via SSL.

Em execução em uma rede localRunning on a local network

Você pode executar o emulador em uma rede local.You can run the emulator on a local network. Para habilitar o acesso à rede, especifique a opção /AllowNetworkAccess na linha de comando, o que também requer que você especifique /Key=key_string ou /KeyFile=file_name.To enable network access, specify the /AllowNetworkAccess option at the command-line, which also requires that you specify /Key=key_string or /KeyFile=file_name. Você pode usar /GenKeyFile=file_name para gerar um arquivo com uma chave aleatória antecipadamente.You can use /GenKeyFile=file_name to generate a file with a random key upfront. Em seguida, você pode passá-lo para /KeyFile=file_name ou /Key=contents_of_file.Then you can pass that to /KeyFile=file_name or /Key=contents_of_file.

Para habilitar o acesso de rede pela primeira vez, o usuário deve desligar o emulador e excluir o diretório de dados do emulador (%LOCALAPPDATA%\CosmosDBEmulator).To enable network access for the first time the user should shut down the emulator and delete the emulator’s data directory (%LOCALAPPDATA%\CosmosDBEmulator).

Desenvolver com o emuladorDeveloping with the emulator

API do SQLSQL API

Depois que o emulador do Azure Cosmos estiver em execução na área de trabalho, você poderá usar qualquer SDK do Azure Cosmos DB com suporte ou a API REST do Azure Cosmos DB para interagir com o emulador.Once you have the Azure Cosmos Emulator running on your desktop, you can use any supported Azure Cosmos DB SDK or the Azure Cosmos DB REST API to interact with the emulator. O Emulador do Azure Cosmos também inclui um Data Explorer interno que permite criar contêineres para a API do SQL ou Cosmos DB para API do Mongo DB, bem como exibir e editar itens sem precisar escrever nenhum código.The Azure Cosmos Emulator also includes a built-in Data Explorer that lets you create containers for SQL API or Cosmos DB for Mongo DB API, and view and edit items without writing any code.

// Connect to the Azure Cosmos Emulator running locally
DocumentClient client = new DocumentClient(
   new Uri("https://localhost:8081"), "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==");

API do Azure Cosmos DB para MongoDBAzure Cosmos DB's API for MongoDB

Depois que o Emulador do Azure Cosmos estiver em execução na sua área de trabalho, você poderá usar a API para MongoDB do Azure Cosmos DB para interagir com o emulador.Once you have the Azure Cosmos Emulator running on your desktop, you can use the Azure Cosmos DB's API for MongoDB to interact with the emulator. Inicie o emulador no prompt de comando como administrador com "/EnableMongoDbEndpoint".Start emulator from command prompt as an administrator with "/EnableMongoDbEndpoint". Em seguida, use a seguinte cadeia de conexão para se conectar à conta da API do MongoDB:Then use the following connection string to connect to the MongoDB API account:

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true

API de TabelaTable API

Depois que o emulador do Azure Cosmos estiver em execução na sua área de trabalho, você poderá usar qualquer SDK da API da Tabela do Azure Cosmos DB com suporte ou o SDK da API de Tabela do Azure Cosmos DB para interagir com o emulador.Once you have the Azure Cosmos Emulator running on your desktop, you can use the Azure Cosmos DB Table API SDK to interact with the emulator. Inicie o emulador de prompt de comando como administrador com “/EnableTableEndpoint”.Start emulator from command prompt as an administrator with “/EnableTableEndpoint”. Em seguida, execute o código a seguir para conectar-se à conta de API da tabela:Next run the following code to connect to the table API account:

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
using CloudTable = Microsoft.WindowsAzure.Storage.Table.CloudTable;
using CloudTableClient = Microsoft.WindowsAzure.Storage.Table.CloudTableClient;

string connectionString = "DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;";

CloudStorageAccount account = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("testtable");
table.CreateIfNotExists();
table.Execute(TableOperation.Insert(new DynamicTableEntity("partitionKey", "rowKey")));

API CassandraCassandra API

Inicie o emulador em um prompt de comando do administrador com “/EnableCassandraEndpoint”.Start emulator from an administrator command prompt with “/EnableCassandraEndpoint”. Como alternativa, você também pode definir a variável de ambiente AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.Alternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.

  • Instalar o Python 2.7Install Python 2.7

  • Instalar Cassandra CLI/CQLSHInstall Cassandra CLI/CQLSH

  • Execute os seguintes comandos em uma janela de prompt de comando regular:Run the following commands in a regular command prompt window:

    set Path=c:\Python27;%Path%
    cd /d C:\sdk\apache-cassandra-3.11.3\bin
    set SSL_VERSION=TLSv1_2
    set SSL_VALIDATE=false
    cqlsh localhost 10350 -u localhost -p C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== --ssl
    
  • No shell CQLSH, execute os comandos a seguir para se conectar ao ponto de extremidade do Cassandra:In the CQLSH shell, run the following commands to connect to the Cassandra endpoint:

    CREATE KEYSPACE MyKeySpace WITH replication = {'class':'MyClass', 'replication_factor': 1};
    DESCRIBE keyspaces;
    USE mykeyspace;
    CREATE table table1(my_id int PRIMARY KEY, my_name text, my_desc text);
    INSERT into table1 (my_id, my_name, my_desc) values( 1, 'name1', 'description 1');
    SELECT * from table1;
    EXIT
    

API do GremlinGremlin API

Inicie o emulador em um prompt de comando do administrador com “/EnableGremlinEndpoint”.Start emulator from an administrator command prompt with “/EnableGremlinEndpoint”. Como alternativa, você também pode definir a variável de ambiente AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=trueAlternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=true

  • Instale o apache-tinkerpop-gremlin-console-3.3.4Install apache-tinkerpop-gremlin-console-3.3.4

  • No Azure Data Explorer do emulador, crie um banco de dados "db1" e uma coleção "coll1"; para a chave de partição, escolha "/name"In the emulator’s Data Explorer create a database "db1" and a collection "coll1"; for the partition key, choose "/name"

  • Execute os seguintes comandos em uma janela de prompt de comando regular:Run the following commands in a regular command prompt window:

    cd /d C:\sdk\apache-tinkerpop-gremlin-console-3.3.4-bin\apache-tinkerpop-gremlin-console-3.3.4
    
    copy /y conf\remote.yaml conf\remote-localcompute.yaml
    notepad.exe conf\remote-localcompute.yaml
      hosts: [localhost]
      port: 8901
      username: /dbs/db1/colls/coll1
      password: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
      connectionPool: {
      enableSsl: false}
      serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,
      config: { serializeResultToString: true  }}
    
    bin\gremlin.bat
    
  • No shell Gremlin, execute os comandos a seguir para se conectar ao ponto de extremidade do Gremlin:In the Gremlin shell run the following commands to connect to the Gremlin endpoint:

    :remote connect tinkerpop.server conf/remote-localcompute.yaml
    :remote console
    :> g.V()
    :> g.addV('person1').property(id, '1').property('name', 'somename1')
    :> g.addV('person2').property(id, '2').property('name', 'somename2')
    :> g.V()
    

Exportar o certificado SSLExport the SSL certificate

As linguagens e o tempo de execução .NET usam o Repositório de Certificados do Windows para a conexão segura com o emulador local do Azure Cosmos DB..NET languages and runtime use the Windows Certificate Store to securely connect to the Azure Cosmos DB local emulator. Outras linguagens têm seu próprio método de gerenciar e usar certificados.Other languages have their own method of managing and using certificates. O Java usa seu próprio repositório de certificados enquanto o Python usa wrappers de soquete.Java uses its own certificate store whereas Python uses socket wrappers.

Para obter um certificado para uso com linguagens e tempos de execução que não se integram ao Repositório de Certificados do Windows, você precisará exportá-lo usando o Gerenciador de Certificados do Windows.In order to obtain a certificate to use with languages and runtimes that do not integrate with the Windows Certificate Store, you will need to export it using the Windows Certificate Manager. Você pode iniciá-lo executando certlm.msc ou seguir as instruções passo a passo em Exportar os certificados do emulador do Azure Cosmos.You can start it by running certlm.msc or follow the step by step instructions in Export the Azure Cosmos Emulator Certificates. Depois que o gerenciador de certificados estiver em execução, abra os Certificados Pessoais, conforme mostrado abaixo, e exporte o certificado com o nome amigável "DocumentDBEmulatorCertificate" como um arquivo X.509 codificado em BASE-64 (.cer).Once the certificate manager is running, open the Personal Certificates as shown below and export the certificate with the friendly name "DocumentDBEmulatorCertificate" as a BASE-64 encoded X.509 (.cer) file.

Certificado SSL do emulador local do Azure Cosmos DB

O certificado X.509 pode ser importado no repositório de certificados Java seguindo as instruções em Adicionando um certificado ao repositório de certificados de AC do Java.The X.509 certificate can be imported into the Java certificate store by following the instructions in Adding a Certificate to the Java CA Certificates Store. Depois que o certificado é importado para o repositório de certificados, os clientes para API do SQL e do Azure Cosmos DB para MongoDB podem se conectar ao Emulador do Azure Cosmos.Once the certificate is imported into the certificate store, clients for SQL and Azure Cosmos DB's API for MongoDB will be able to connect to the Azure Cosmos Emulator.

Durante a conexão do emulador de SDKs Python e Node.js, a verificação de SSL é desabilitada.When connecting to the emulator from Python and Node.js SDKs, SSL verification is disabled.

Referência da ferramenta de linha de comandoCommand-line tool reference

No local da instalação, você pode usar a linha de comando para iniciar e interromper o emulador, configurar opções e executar outras operações.From the installation location, you can use the command-line to start and stop the emulator, configure options, and perform other operations.

Sintaxe da linha de comandoCommand-line syntax

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

Para exibir a lista de opções, digite CosmosDB.Emulator.exe /? no prompt de comando.To view the list of options, type CosmosDB.Emulator.exe /? at the command prompt.

OpçãoOption DescriçãoDescription ComandoCommand ArgumentosArguments
[No arguments][No arguments] Inicia o Emulador do Azure Cosmos com as configurações padrão.Starts up the Azure Cosmos Emulator with default settings. CosmosDB.Emulator.exeCosmosDB.Emulator.exe
[Ajuda][Help] Exibe a lista de argumentos de linha de comando com suporte.Displays the list of supported command-line arguments. CosmosDB.Emulator.exe /?CosmosDB.Emulator.exe /?
GetStatusGetStatus Obtém o status do Emulador do Azure Cosmos.Gets the status of the Azure Cosmos Emulator. O status é indicado pelo código de saída: 1 = Iniciando, 2 = Em execução, 3 = Parado.The status is indicated by the exit code: 1 = Starting, 2 = Running, 3 = Stopped. Um código de saída negativo indica que ocorreu um erro.A negative exit code indicates that an error occurred. Nenhum outro resultado é produzido.No other output is produced. CosmosDB.Emulator.exe /GetStatusCosmosDB.Emulator.exe /GetStatus
ShutdownShutdown Desliga o Emulador do Azure Cosmos.Shuts down the Azure Cosmos Emulator. CosmosDB.Emulator.exe /ShutdownCosmosDB.Emulator.exe /Shutdown
DataPathDataPath Especifica o caminho no qual armazenar os arquivos de dados.Specifies the path in which to store data files. O valor padrão é %LocalAppdata%\CosmosDBEmulator.Default value is %LocalAppdata%\CosmosDBEmulator. CosmosDB.Emulator.exe /DataPath=<datapath>CosmosDB.Emulator.exe /DataPath=<datapath> <datapath>: um caminho acessível<datapath>: An accessible path
PortaPort Especifica o número da porta a ser usada para o emulador.Specifies the port number to use for the emulator. O valor padrão é de 8081.Default value is 8081. CosmosDB.Emulator.exe /Port=<porta>CosmosDB.Emulator.exe /Port=<port> <port>: número da porta único<port>: Single port number
ComputePortComputePort Especificado o número da porta a ser usada para o serviço de Gateway de interoperabilidade de computação.Specified the port number to use for the Compute Interop Gateway service. A porta de investigação de ponto de extremidade HTTP do Gateway é calculada como ComputePort + 79.The Gateway's HTTP endpoint probe port is calculated as ComputePort + 79. Portanto, ComputePort e ComputePort + 79 deve estar aberta e disponível.Hence, ComputePort and ComputePort + 79 must be open and available. Os valores padrão são 8900, 8979.The default values are 8900, 8979. CosmosDB.Emulator.exe /ComputePort = <computeport>CosmosDB.Emulator.exe /ComputePort = <computeport> <computeport>: número da porta único<computeport>: Single port number
EnableMongoDbEndpointEnableMongoDbEndpoint Habilita a API do MongoDBEnables MongoDB API CosmosDB.Emulator.exe /EnableMongoDbEndpointCosmosDB.Emulator.exe /EnableMongoDbEndpoint
MongoPortMongoPort Especifica o número da porta a ser usada para API de compatibilidade do MongoDB.Specifies the port number to use for MongoDB compatibility API. O valor padrão é de 10255.Default value is 10255. CosmosDB.Emulator.exe /MongoPort= <mongoport>CosmosDB.Emulator.exe /MongoPort= <mongoport> <mongoport>: número da porta único<mongoport>: Single port number
EnableCassandraEndpointEnableCassandraEndpoint Sobre a API do CassandraEnables Cassandra API CosmosDB.Emulator.exe /EnableCassandraEndpointCosmosDB.Emulator.exe /EnableCassandraEndpoint
CassandraPortCassandraPort Especifica o número da porta a ser usada para o ponto de extremidade Cassandra.Specifies the port number to use for the Cassandra endpoint. O valor padrão é 10350.Default value is 10350. CosmosDB.Emulator.exe /CassandraPort = <cassandraport>CosmosDB.Emulator.exe /CassandraPort = <cassandraport> <cassandraport>: número da porta único<cassandraport>: Single port number
EnableGremlinEndpointEnableGremlinEndpoint Habilitar a API do GremlinEnables Gremlin API CosmosDB.Emulator.exe /EnableGremlinEndpointCosmosDB.Emulator.exe /EnableGremlinEndpoint
GremlinPortGremlinPort Número da porta a ser usado para o ponto de extremidade do Gremlin.Port number to use for the Gremlin Endpoint. O valor padrão é: 8901.Default value is 8901. CosmosDB.Emulator.exe /GremlinPort=<port>CosmosDB.Emulator.exe /GremlinPort=<port> <port>: número da porta único<port>: Single port number
EnableTableEndpointEnableTableEndpoint Permite a API de Tabela do AzureEnables Azure Table API CosmosDB.Emulator.exe /EnableTableEndpointCosmosDB.Emulator.exe /EnableTableEndpoint
TablePortTablePort O número da porta a ser usado para o ponto de extremidade da Tabela do Azure.Port number to use for the Azure Table Endpoint. O valor padrão é 8902.Default value is 8902. CosmosDB.Emulator.exe /TablePort=<port>CosmosDB.Emulator.exe /TablePort=<port> <port>: número da porta único<port>: Single port number
KeyFileKeyFile A chave de autorização de leitura do arquivo especificado.Read authorization key from the specified file. Use a opção de /GenKeyFile para gerar um keyfileUse the /GenKeyFile option to generate a keyfile CosmosDB.Emulator.exe /KeyFile=<file_name>CosmosDB.Emulator.exe /KeyFile=<file_name> <file_name>: Caminho para o compartilhamento o arquivo<file_name>: Path to the file
ResetDataPathResetDataPath Remove recursivamente todos os arquivos no caminho especificado.Recursively removes all the files in the specified path. Se você não especificar um caminho, o padrão será %LOCALAPPDATA%\CosmosDbEmulatorIf you don't specify a path, it defaults to %LOCALAPPDATA%\CosmosDbEmulator CosmosDB.Emulator.exe /ResetDataPath[=<path>]CosmosDB.Emulator.exe /ResetDataPath[=<path>] <path>: Caminho do arquivo<path>: File path
StartTracesStartTraces Iniciar os logs de rastreamento de depuração de coleta.Start collecting debug trace logs. CosmosDB.Emulator.exe /StartTracesCosmosDB.Emulator.exe /StartTraces
StopTracesStopTraces Parar os logs de rastreamento de depuração de coleta.Stop collecting debug trace logs. CosmosDB.Emulator.exe /StopTracesCosmosDB.Emulator.exe /StopTraces
FailOnSslCertificateNameMismatchFailOnSslCertificateNameMismatch Por padrão o emulador regenera seu certificado SSL autoassinado, se o SAN do certificado não incluir o nome de domínio do host do Emulador, o endereço do Ipv4 local, “localhost” e “127.0.0.1”.By default the Emulator regenerates its self-signed SSL certificate, if the certificate's SAN does not include the Emulator host's domain name, local IPv4 address, 'localhost', and '127.0.0.1'. Com essa opção, o emulador falhará na inicialização em vez disso.With this option, the emulator will fail at startup instead. Em seguida, você deve usar a opção /GenCert para criar e instalar um novo certificado SSL autoassinado.You should then use the /GenCert option to create and install a new self-signed SSL certificate. CosmosDB.Emulator.exe /FailOnSslCertificateNameMismatchCosmosDB.Emulator.exe /FailOnSslCertificateNameMismatch
GenCertGenCert Gerar e instalar um novo certificado SSL autoassinado.Generate and install a new self-signed SSL certificate. opcionalmente, incluindo uma lista separada por vírgulas de nomes DNS adicionais para acessar o emulador pela rede.optionally including a comma-separated list of additional DNS names for accessing the Emulator over the network. Lista separada por vírgula do CosmosDB.Emulator.exe /GenCert[ <dos nomes dns adicionais>]CosmosDB.Emulator.exe /GenCert[ <comma-separated list of additional dns-names>]
DirectPortsDirectPorts Especifica as portas a serem usadas para conectividade direta.Specifies the ports to use for direct connectivity. Os padrões são 10251,10252,10253,10254.Defaults are 10251,10252,10253,10254. CosmosDB.Emulator.exe /DirectPorts:<directports>CosmosDB.Emulator.exe /DirectPorts:<directports> <directports>: lista de 4 portas delimitada por vírgula<directports>: Comma-delimited list of 4 ports
ChaveKey Chave de autorização para o emulador.Authorization key for the emulator. A chave deve ser a codificação de base 64 de um vetor de 64 bytes.Key must be the base-64 encoding of a 64-byte vector. CosmosDB.Emulator.exe /Key:<chave>CosmosDB.Emulator.exe /Key:<key> <key>: A chave deve ser a codificação base-64 de um vetor de 64 bytes<key>: Key must be the base-64 encoding of a 64-byte vector
EnableRateLimitingEnableRateLimiting Especifica que o comportamento de limitação da taxa de solicitação está habilitado.Specifies that request rate limiting behavior is enabled. CosmosDB.Emulator.exe /EnableRateLimitingCosmosDB.Emulator.exe /EnableRateLimiting
DisableRateLimitingDisableRateLimiting Especifica que o comportamento de limitação da taxa de solicitação está desabilitado.Specifies that request rate limiting behavior is disabled. CosmosDB.Emulator.exe /DisableRateLimitingCosmosDB.Emulator.exe /DisableRateLimiting
NoUINoUI Não mostra o emulador de interface do usuário.Do not show the emulator user interface. CosmosDB.Emulator.exe /NoUICosmosDB.Emulator.exe /NoUI
NoExplorerNoExplorer Não mostra o Data Explorer na inicialização.Don't show data explorer on startup. CosmosDB.Emulator.exe /NoExplorerCosmosDB.Emulator.exe /NoExplorer
PartitionCountPartitionCount Especifica o número máximo de contêineres particionados.Specifies the maximum number of partitioned containers. Veja Alterar o número de contêineres para saber mais.See Change the number of containers for more information. CosmosDB.Emulator.exe /PartitionCount=<partitioncount>CosmosDB.Emulator.exe /PartitionCount=<partitioncount> <partitioncount>: Número máximo permitido de contêineres de partição única.<partitioncount>: Maximum number of allowed single partition containers. O valor padrão é de 25.Default value is 25. O máximo permitido é 250.Maximum allowed is 250.
DefaultPartitionCountDefaultPartitionCount Especifica o número padrão de partições para um contêiner particionado.Specifies the default number of partitions for a partitioned container. CosmosDB.Emulator.exe /DefaultPartitionCount=<defaultpartitioncount>CosmosDB.Emulator.exe /DefaultPartitionCount=<defaultpartitioncount> <defaultpartitioncount> O valor padrão é 25.<defaultpartitioncount> Default value is 25.
AllowNetworkAccessAllowNetworkAccess Permite o acesso para o emulador através de uma rede.Enables access to the emulator over a network. Você também deve passar /Key=<key_string> ou /KeyFile=<file_name> para habilitar o acesso à rede.You must also pass /Key=<key_string> or /KeyFile=<file_name> to enable network access. CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<key_string> ou CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<file_name>CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<key_string> or CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<file_name>
NoFirewallNoFirewall Não ajuste as regras de firewall quando a opção /AllowNetworkAccess for usada.Don't adjust firewall rules when /AllowNetworkAccess option is used. CosmosDB.Emulator.exe /NoFirewallCosmosDB.Emulator.exe /NoFirewall
GenKeyFileGenKeyFile Gere uma nova chave de autorização e salve no arquivo especificado.Generate a new authorization key and save to the specified file. A chave gerada pode ser usada com as opções /Key ou /KeyFile.The generated key can be used with the /Key or /KeyFile options. CosmosDB.Emulator.exe /GenKeyFile=<caminho para o arquivo da chave>CosmosDB.Emulator.exe /GenKeyFile=<path to key file>
ConsistênciaConsistency Defina o nível de consistência padrão da conta.Set the default consistency level for the account. CosmosDB.Emulator.exe /Consistency=<consistência>CosmosDB.Emulator.exe /Consistency=<consistency> <consistency>: O valor deve ser um dos seguintes níveis de consistência: Session, Strong, Eventual ou BoundedStaleness.<consistency>: Value must be one of the following consistency levels: Session, Strong, Eventual, or BoundedStaleness. O valor padrão é Sessão.The default value is Session.
?? Mostre a mensagem de ajuda.Show the help message.

Altere o número de contêineresChange the number of containers

Por padrão, você pode criar até 25 contêineres de tamanho fixo (suportado apenas usando os SDKs do Azure Cosmos DB) ou os 5 contêineres ilimitados usando o emulador do Azure Cosmos.By default, you can create up to 25 fixed size containers (only supported using Azure Cosmos DB SDKs), or 5 unlimited containers using the Azure Cosmos Emulator. Ao modificar o valor do PartitionCount, que você pode criar até 250 contêineres de tamanho fixo ou 50 contêineres ilimitados ou qualquer combinação dos dois que não excedam 250 contêineres de tamanho fixo (em que um contêiner ilimitado = 5 de tamanho fixo contêineres).By modifying the PartitionCount value, you can create up to 250 fixed size containers or 50 unlimited containers, or any combination of the two that does not exceed 250 fixed size containers (where one unlimited container = 5 fixed size containers). No entanto, não é recomendado configurar o emulador para executar com mais de 200 contêineres de tamanho fixo.However it's not recommended to set up the emulator to run with more than 200 fixed size containers. Por causa da sobrecarga que isso adiciona a operações de E/S de disco, que resulta em tempo limite imprevisível ao usar o ponto de extremidade de APIs.Because of the overhead that it adds to the disk IO operations, which result in unpredictable timeouts when using the endpoint APIs.

Se você tentar criar contêiner depois que a contagem de partição atual tiver sido excedida, o emulador lançará uma exceção de ServiceUnavailable, com a mensagem de erro a seguir.If you attempt to create a container after the current partition count has been exceeded, the emulator throws a ServiceUnavailable exception, with the following message.

"Desculpe, estamos tendo alta demanda nesta região e não podemos atender sua solicitação neste momento."Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time. Estamos trabalhando continuamente para trazer cada vez mais capacidade online e incentivamos você a tentar novamente.We work continuously to bring more and more capacity online, and encourage you to try again. Não hesite em enviar um email askcosmosdb@microsoft.com a qualquer momento ou por qualquer motivo.Please do not hesitate to email askcosmosdb@microsoft.com at any time or for any reason. ActivityId: 12345678-1234-1234-1234-123456789abc"ActivityId: 12345678-1234-1234-1234-123456789abc"

Para alterar o número de contêineres disponíveis para o emulador do Azure Cosmos DB, faça o seguinte:To change the number of containers available in the Azure Cosmos Emulator, run the following steps:

  1. Exclua todos os dados locais do emulador do Azure Cosmos clicando com o botão direito do mouse no ícone Emulador do Azure Cosmos DB na bandeja do sistema e clicando em Redefinir Dados… .Delete all local Azure Cosmos Emulator data by right-clicking the Azure Cosmos DB Emulator icon on the system tray, and then clicking Reset Data….
  2. Excluir todos os dados de emulador desta pasta %LOCALAPPDATA%\CosmosDBEmulator.Delete all emulator data in this folder %LOCALAPPDATA%\CosmosDBEmulator.
  3. Saia de todas as instâncias abertas clicando com o botão direito do mouse no ícone do Emulador do Azure Cosmos DB na bandeja do sistema e clicando em Sair.Exit all open instances by right-clicking the Azure Cosmos DB Emulator icon on the system tray, and then clicking Exit. Pode levar um minuto para que todas as instâncias saiam.It may take a minute for all instances to exit.
  4. Instale a versão mais recente do emulador Azure Cosmos.Install the latest version of the Azure Cosmos Emulator.
  5. Inicie o emulador com o sinalizador PartitionCount definindo um valor <= 250.Launch the emulator with the PartitionCount flag by setting a value <= 250. Por exemplo: C:\Program Files\Azure Cosmos DB Emulator> CosmosDB.Emulator.exe /PartitionCount=100.For example: C:\Program Files\Azure Cosmos DB Emulator> CosmosDB.Emulator.exe /PartitionCount=100.

Controlar o emuladorControlling the emulator

O emulador vem com um módulo PowerShell para iniciar, parar, desinstalar e recuperar o status do serviço.The emulator comes with a PowerShell module to start, stop, uninstall, and retrieve the status of the service. Execute o seguinte cmdlet para usar o módulo do PowerShell:Run the following cmdlet to use the PowerShell module:

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

ou coloque o diretório PSModules no seu PSModulesPath e importe-o conforme mostrado no comando a seguir:or place the PSModules directory on your PSModulesPath and import it as shown in the following command:

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

Aqui é apresentado um resumo dos comandos para controlar o emulador do PowerShell:Here is a summary of the commands for controlling the emulator from PowerShell:

Get-CosmosDbEmulatorStatus

SintaxeSyntax

Get-CosmosDbEmulatorStatus

ComentáriosRemarks

Retorna um destes valores ServiceControllerStatus: ServiceControllerStatus.StartPending, ServiceControllerStatus.Running ou ServiceControllerStatus.Stopped.Returns one of these ServiceControllerStatus values: ServiceControllerStatus.StartPending, ServiceControllerStatus.Running, or ServiceControllerStatus.Stopped.

Start-CosmosDbEmulator

SintaxeSyntax

Start-CosmosDbEmulator [-DataPath <string>] [-DefaultPartitionCount <uint16>] [-DirectPort <uint16[]>] [-MongoPort <uint16>] [-NoUI] [-NoWait] [-PartitionCount <uint16>] [-Port <uint16>] [<CommonParameters>]

ComentáriosRemarks

Inicia o emulador.Starts the emulator. Por padrão, o comando aguarda até que o emulador esteja pronto para aceitar solicitações.By default, the command waits until the emulator is ready to accept requests. Use a opção -NoWait, se quiser que o cmdlet seja retornado assim que ele iniciar o emulador.Use the -NoWait option, if you wish the cmdlet to return as soon as it starts the emulator.

Stop-CosmosDbEmulator

SintaxeSyntax

Stop-CosmosDbEmulator [-NoWait]

ComentáriosRemarks

Parada do emulador.Stops the emulator. Por padrão, esse comando aguarda até que o emulador seja completamente desligado.By default, this command waits until the emulator is fully shut down. Use a opção -NoWait, se quiser que o cmdlet seja retornado assim que o emulador iniciar o desligamento.Use the -NoWait option, if you wish the cmdlet to return as soon as the emulator begins to shut down.

Uninstall-CosmosDbEmulator

SintaxeSyntax

Uninstall-CosmosDbEmulator [-RemoveData]

ComentáriosRemarks

Desinstala o emulador e, opcionalmente, remove o conteúdo completo do $env:LOCALAPPDATA\CosmosDbEmulator.Uninstalls the emulator and optionally removes the full contents of $env:LOCALAPPDATA\CosmosDbEmulator. O cmdlet garante que o emulador seja parado antes de desinstalá-lo.The cmdlet ensures the emulator is stopped before uninstalling it.

Em execução no DockerRunning on Docker

O emulador do Azure Cosmos pode ser executado no Docker CE for Windows.The Azure Cosmos Emulator can be run on Docker for Windows. O emulador não funciona no Docker for Oracle Linux.The emulator does not work on Docker for Oracle Linux.

Uma vez que você tenha o Docker para Windows instalado, mude para contêineres do Windows clicando com o botão direito do mouse no ícone do Docker na barra de ferramentas e selecionando Mudar para contêineres do Windows.Once you have Docker for Windows installed, switch to Windows containers by right-clicking the Docker icon on the toolbar and selecting Switch to Windows containers.

Em seguida, efetue pull da imagem do emulador do Hub do Docker, executando o comando a seguir do seu shell favorito.Next, pull the emulator image from Docker Hub by running the following command from your favorite shell.

docker pull mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator

Para iniciar a imagem, execute os comandos a seguir.To start the image, run the following commands.

Na linha de comando:From the command-line:


md %LOCALAPPDATA%\CosmosDBEmulator\bind-mount

docker run --name azure-cosmosdb-emulator --memory 2GB --mount "type=bind,source=%LOCALAPPDATA%\CosmosDBEmulator\bind-mount,destination=C:\CosmosDB.Emulator\bind-mount" --interactive --tty -p 8081:8081 -p 8900:8900 -p 8901:8901 -p 8902:8902 -p 10250:10250 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -p 10255:10255 -p 10256:10256 -p 10350:10350 mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator --rm

Observação

Se você vir um erro de conflito de porta (a porta especificada já está em uso) ao executar o comando de execução do docker, você poderá passar uma porta personalizada alterando os números de porta.If you see a port conflict error (specified port is already in use) when you run the docker run command, you can pass a custom port by altering the port numbers. Por exemplo, você pode alterar "-p 8081:8081" para "-p 443:8081"For example, you can change the "-p 8081:8081" to "-p 443:8081"

Do PowerShell:From PowerShell:


md $env:LOCALAPPDATA\CosmosDBEmulator\bind-mount 2>null

docker run --name azure-cosmosdb-emulator --memory 2GB --mount "type=bind,source=$env:LOCALAPPDATA\CosmosDBEmulator\bind-mount,destination=C:\CosmosDB.Emulator\bind-mount" --interactive --tty -p 8081:8081 -p 8900:8900 -p 8901:8901 -p 8902:8902 -p 10250:10250 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -p 10255:10255 -p 10256:10256 -p 10350:10350 mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator

A resposta tem aparência semelhante à seguinte:The response looks similar to the following:

Starting emulator
Emulator Endpoint: https://172.20.229.193:8081/
Master Key: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
Exporting SSL Certificate
You can import the SSL certificate from an administrator command prompt on the host by running:
cd /d %LOCALAPPDATA%\CosmosDBEmulatorCert
powershell .\importcert.ps1
--------------------------------------------------------------------------------------------------
Starting interactive shell

Agora use o ponto de extremidade e a chave mestra da resposta no seu cliente e importe o certificado SSL no seu host.Now use the endpoint and master key-in from the response in your client and import the SSL certificate into your host. Para importar o certificado SSL, faça o seguinte em um prompt de comando do administrador:To import the SSL certificate, do the following from an admin command prompt:

Na linha de comando:From the command-line:

cd  %LOCALAPPDATA%\CosmosDBEmulator\bind-mount
powershell .\importcert.ps1

Do PowerShell:From PowerShell:

cd $env:LOCALAPPDATA\CosmosDBEmulator\bind-mount
.\importcert.ps1

Fechar o shell interativo depois de o emulador ter sido iniciado desligará o contêiner do emulador.Closing the interactive shell once the emulator has been started will shut down the emulator’s container.

Para abrir o Data Explorer, navegue até a URL a seguir no seu navegador.To open the Data Explorer, navigate to the following URL in your browser. O ponto de extremidade do emulador é fornecido na mensagem de resposta mostrada acima.The emulator endpoint is provided in the response message shown above.

https://<emulator endpoint provided in response>/_explorer/index.html

Executar no Mac ou LinuxRunning on Mac or Linux

Atualmente, o emulador do Cosmos somente pode ser executado no Windows.Currently the Cosmos emulator can only be run on Windows. Os usuários do Mac ou do Linux podem executar o emulador em uma máquina virtual do Windows hospedada em um hipervisor, como o Parallels ou o VirtualBox.Users running Mac or Linux can run the emulator in a Windows virtual machine hosted a hypervisor such as Parallels or VirtualBox. Abaixo estão as etapas para habilitá-lo.Below are the steps to enable this.

Na VM do Windows, execute o comando a seguir e anote o endereço IPv4.Within the Windows VM run the command below and make note of the IPv4 address.

ipconfig.exe

No seu aplicativo, você precisa alterar o URI do objeto DocumentClient para usar o endereço IPv4 retornado por ipconfig.exe.Within your application you need to change the URI for the DocumentClient object to use the IPv4 address returned by ipconfig.exe. A próxima etapa é contornar a validação de autoridade de certificação ao construir o objeto DocumentClient.The next step is to work around the CA validation when constructing the DocumentClient object. Para isso, você precisará fornecer um objeto HttpClientHandler para o construtor do DocumentClient, que tem sua própria implementação para ServerCertificateCustomValidationCallback.For this you will need to provide an HttpClientHandler to the DocumentClient constructor, which has it's own implementation for ServerCertificateCustomValidationCallback.

Abaixo é mostrado um exemplo de como deve ser o código.Below is an example of what the code should look like.

using System;
using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using System.Net.Http;

namespace emulator
{
    class Program
    {
        static async void Main(string[] args)
        {
            string strEndpoint = "https://10.135.16.197:8081/";  //IPv4 address from ipconfig.exe
            string strKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";

            //Work around the CA validation
            var httpHandler = new HttpClientHandler()
            {
                ServerCertificateCustomValidationCallback = (req,cert,chain,errors) => true
            };

            //Pass http handler to document client
            using (DocumentClient client = new DocumentClient(new Uri(strEndpoint), strKey, httpHandler))
            {
                Database database = await client.CreateDatabaseIfNotExistsAsync(new Database { Id = "myDatabase" });
                Console.WriteLine($"Created Database: id - {database.Id} and selfLink - {database.SelfLink}");
            }
        }
    }
}

Por fim, na VM do Windows, inicie o emulador do Cosmos a partir da linha de comando usando as opções a seguir.Finally, from the within the Windows VM, launch the Cosmos emulator from the command line using the following options.

Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==

solução de problemasTroubleshooting

Use as dicas a seguir para ajudar a solucionar problemas encontrados com o emulador do Azure Cosmos:Use the following tips to help troubleshoot issues you encounter with the Azure Cosmos Emulator:

  • Se você tiver instalado uma nova versão do emulador e se houver erros, redefina os dados.If you installed a new version of the emulator and are experiencing errors, ensure you reset your data. Você pode redefinir seus dados clicando com o botão direito do mouse no ícone emulador do Azure Cosmos DB na bandeja do sistema e clicando em Redefinir Dados...You can reset your data by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Reset Data…. Se isso não resolver os erros, você pode desinstalar o emulador e as versões mais antigas do emulador se encontradas, remova o diretório "C:\Program files\Azure Cosmos DB Emulator" e reinstale o emulador.If that does not fix the errors, you can uninstall the emulator and any older versions of the emulator if found, remove "C:\Program files\Azure Cosmos DB Emulator" directory and reinstall the emulator. Veja Desinstalar o emulador local para obter instruções.See Uninstall the local emulator for instructions.

  • Se o emulador do Azure Cosmos falhar, colete os arquivos de despejo na pasta '%LOCALAPPDATA%\CrashDumps', compacte-os e anexe-os a um email que deve ser enviado para askcosmosdb@microsoft.com.If the Azure Cosmos Emulator crashes, collect dump files from '%LOCALAPPDATA%\CrashDumps' folder, compress them, and attach them to an email to askcosmosdb@microsoft.com.

  • Se você enfrentar falhas em Microsoft.Azure.Cosmos.ComputeServiceStartupEntryPoint.exe, isso pode ser um sintoma de onde os contadores de desempenho estão em um estado corrompido.If you experience crashes in Microsoft.Azure.Cosmos.ComputeServiceStartupEntryPoint.exe, this might be a symptom where the Performance Counters are in a corrupted state. Normalmente, executar o seguinte comando em um prompt de comando do administrador corrige o problema:Usually running the following command from an admin command prompt fixes the issue:

    lodctr /R
    
  • Se você encontrar um problema de conectividade, colete os arquivos de rastreamento, compacte-os e anexe-os a um email que deve ser enviado para askcosmosdb@microsoft.com.If you encounter a connectivity issue, collect trace files, compress them, and attach them to an email to askcosmosdb@microsoft.com.

  • Se você receber uma mensagem de Serviço Indisponível, o emulador poderá estar falhando em inicializar a pilha de rede.If you receive a Service Unavailable message, the emulator might be failing to initialize the network stack. Verifique se você tem o cliente seguro Pulse ou o cliente de redes Juniper instalado, uma vez que seus drivers de filtro de rede podem causar o problema.Check to see if you have the Pulse secure client or Juniper networks client installed, as their network filter drivers may cause the problem. Desinstalar os drivers de filtro de rede de terceiros geralmente corrige o problema.Uninstalling third-party network filter drivers typically fixes the issue. Como alternativa, inicie o emulador com /DisableRIO, que mudará a comunicação de rede do emulador para Winsock regular.Alternatively, start the emulator with /DisableRIO, which will switch the emulator network communication to regular Winsock.

  • Enquanto o emulador é executado, se o computador entrar em modo de suspensão ou executar atualizações do sistema operacional, talvez você veja uma mensagem O serviço não disponível no momento.While the emulator is running, if your computer goes to sleep mode or runs any OS updates, you might see a Service is currently unavailable message. Reinicie os dados do emulador clicando com o botão direito do mouse no ícone que aparece na bandeja de notificação do Windows e selecione Redefinir dados.Reset the emulator's data, by right-clicking on the icon that appears on the windows notification tray and select Reset Data.

Coletar arquivos de rastreamentoCollect trace files

Para coletar rastreamentos de depuração, execute os seguintes comandos em um prompt de comando administrativo:To collect debugging traces, run the following commands from an administrative command prompt:

  1. cd /d "%ProgramFiles%\Azure Cosmos DB Emulator"
  2. CosmosDB.Emulator.exe /shutdown.CosmosDB.Emulator.exe /shutdown. Confira a bandeja do sistema para ter certeza de que o programa foi desligado. Isso pode levar um minuto.Watch the system tray to make sure the program has shut down, it may take a minute. Você também pode simplesmente clicar em Sair na interface do usuário do emulador do Azure Cosmos.You can also just click Exit in the Azure Cosmos Emulator user interface.
  3. CosmosDB.Emulator.exe /starttraces
  4. CosmosDB.Emulator.exe
  5. Reproduza o problema.Reproduce the problem. Se o Data Explorer não está funcionando, você só precisa aguardar que o navegador abra por alguns segundos para capturar o erro.If Data Explorer is not working, you only need to wait for the browser to open for a few seconds to catch the error.
  6. CosmosDB.Emulator.exe /stoptraces
  7. Navegue até %ProgramFiles%\Azure Cosmos DB Emulator e localize o arquivo docdbemulator_000001.etl.Navigate to %ProgramFiles%\Azure Cosmos DB Emulator and find the docdbemulator_000001.etl file.
  8. Envie o arquivo .etl junto com as etapas reproduzidas para askcosmosdb@microsoft.com para fins de depuração.Send the .etl file along with repro steps to askcosmosdb@microsoft.com for debugging.

Desinstalar o emulador localUninstall the local emulator

  1. Saia de todas as instâncias abertas do emulador local clicando com o botão direito do mouse no ícone do Emulador do Azure Cosmos na bandeja do sistema e clicando em Sair.Exit all open instances of the local emulator by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Exit. Pode levar um minuto para que todas as instâncias saiam.It may take a minute for all instances to exit.
  2. Na caixa de pesquisa do Windows, digite Aplicativos e recursos e clique no resultado de Aplicativos e recursos (Configurações do sistema) .In the Windows search box, type Apps & features and click on the Apps & features (System settings) result.
  3. Na lista de aplicativos, vá para Emulador do Azure Cosmos DB, selecione-o, clique em Desinstalar e então confirme e clique em Desinstalar novamente.In the list of apps, scroll to Azure Cosmos DB Emulator, select it, click Uninstall, then confirm and click Uninstall again.
  4. Após a desinstalação do aplicativo, navegue até %LOCALAPPDATA%\CosmosDBEmulator e exclua a pasta.When the app is uninstalled, navigate to %LOCALAPPDATA%\CosmosDBEmulator and delete the folder.

Próximas etapasNext steps

Neste tutorial, você aprendeu como usar o emulador local para o desenvolvimento local gratuito.In this tutorial, you've learned how to use the local emulator for free local development. Agora, você pode seguir para o próximo tutorial e aprender como exportar certificados SSL do emulador.You can now proceed to the next tutorial and learn how to export emulator SSL certificates.