Uso del emulador de Azure Cosmos para desarrollo y pruebas localesUse the Azure Cosmos Emulator for local development and testing

El emulador de Azure Cosmos proporciona un entorno local que emula el servicio Azure Cosmos DB con fines de desarrollo.The Azure Cosmos Emulator provides a local environment that emulates the Azure Cosmos DB service for development purposes. Mediante el emulador de Azure Cosmos puede desarrollar y probar su aplicación localmente, sin necesidad de crear una suscripción de Azure ni incurrir en costos.Using the Azure Cosmos Emulator, you can develop and test your application locally, without creating an Azure subscription or incurring any costs. Cuando esté satisfecho con el funcionamiento de la aplicación en el emulador, puede cambiar a una cuenta de Azure Cosmos en la nube.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.

Puede desarrollar mediante el emulador de Azure Cosmos con cuentas de SQL, Cassandra, MongoDB, Gremlin y Table API.You can develop using Azure Cosmos Emulator with SQL, Cassandra, MongoDB, Gremlin, and Table API accounts. Sin embargo, en este momento la vista del explorador de datos en el emulador solo es totalmente compatible con los clientes de SQL API.However at this time the Data Explorer view in the emulator fully supports clients for SQL API only.

Funcionamiento del emuladorHow the emulator works

El emulador de Azure Cosmos proporciona una emulación de gran fidelidad del servicio Azure Cosmos DB.The Azure Cosmos Emulator provides a high-fidelity emulation of the Azure Cosmos DB service. Admite una funcionalidad idéntica a la de Azure Cosmos DB, incluida la compatibilidad con la creación y la consulta de datos, el aprovisionamiento y el escalado de contenedores y la ejecución de procedimientos y desencadenadores almacenados.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. Puede desarrollar y probar aplicaciones mediante el emulador de Azure Cosmos e implementarlas en Azure a escala global realizando simplemente un cambio de configuración en el punto de conexión de 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.

Aunque la emulación del servicio Azure Cosmos DB es fiel, la implementación del emulador es diferente de la del servicio.While emulation of the Azure Cosmos DB service is faithful, the emulator's implementation is different than the service. Por ejemplo, el emulador utiliza componentes del sistema operativo estándar; por ejemplo, utiliza el sistema de archivos local para la persistencia y la pila del protocolo HTTPS para la conectividad.For example, the emulator uses standard OS components such as the local file system for persistence, and the HTTPS protocol stack for connectivity. No procede la funcionalidad que se basa en la infraestructura de Azure, como la replicación global, la latencia de milisegundos de un solo dígito para lectura/escritura y los niveles de coherencia ajustable.Functionality that relies on Azure infrastructure like global replication, single-digit millisecond latency for reads/writes, and tunable consistency levels are not applicable.

Puede migrar datos entre el emulador de Azure Cosmos y el servicio Azure Cosmos DB con la herramienta de migración de datos de 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.

Puede ejecutar el emulador de Azure Cosmos en el contenedor de Docker de Windows, consulte Docker Hub para el comando docker pull y GitHub para el código fuente del 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.

Diferencias entre el emulador y el servicioDifferences between the emulator and the service

Dado que el emulador de Azure Cosmos proporciona un entorno emulado que se ejecuta en una estación de trabajo de desarrollador local, hay algunas diferencias de funcionalidad entre el emulador y una cuenta de Azure Cosmos en la nube: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:

  • En este momento, el explorador de datos del emulador admite los clientes de SQL API.Currently Data Explorer in the emulator supports clients for SQL API. La vista de explorador de datos y las operaciones de las API de Azure Cosmos DB, como MongoDB, Table, Graph y las API de Cassandra no son totalmente compatibles.The Data Explorer view and operations for Azure Cosmos DB APIs such as MongoDB, Table, Graph, and Cassandra APIs are not fully supported.
  • El emulador de Azure Cosmos es compatible con una sola cuenta fija y una clave maestra reconocida.The Azure Cosmos Emulator supports only a single fixed account and a well-known master key. Las claves no se pueden regenerar en el emulador de Azure Cosmos; sin embargo, la clave predeterminada se puede cambiar con la opción de la línea de comandos.Key regeneration is not possible in the Azure Cosmos Emulator, however the default key can be changed using the command-line option.
  • El emulador de Azure Cosmos no es un servicio escalable y no será compatible con un gran número de contenedores.The Azure Cosmos Emulator is not a scalable service and will not support a large number of containers.
  • El emulador de Azure Cosmos no ofrece diferentes niveles de coherencia de Azure Cosmos DB.The Azure Cosmos Emulator does not offer different Azure Cosmos DB consistency levels.
  • El emulador de Azure Cosmos no ofrece replicación en varias regiones.The Azure Cosmos Emulator does not offer multi-region replication.
  • Como la copia del emulador de Azure Cosmos puede no contener siempre los cambios más recientes del servicio Azure Cosmos DB, debe consultar la herramienta de planeamiento de capacidad de Azure Cosmos DB para calcular con precisión las necesidades de rendimiento de producción (RU) de la aplicación.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.
  • Cuando se usa el emulador de Azure Cosmos, de forma predeterminada se pueden crear hasta 25 contenedores de tamaño fijo (solo compatibles con los SDK de Azure Cosmos DB) o 5 contenedores ilimitados con el emulador de 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 más información acerca de cómo cambiar este valor, consulte la sección sobre la configuración del valor de PartitionCount.For more information about changing this value, see Setting the PartitionCount value.

Requisitos del sistemaSystem requirements

El emulador de Azure Cosmos presenta los siguientes requisitos de hardware y software:The Azure Cosmos Emulator has the following hardware and software requirements:

  • Requisitos de softwareSoftware requirements
    • Windows Server 2012 R2, Windows Server 2016 o Windows 10Windows Server 2012 R2, Windows Server 2016, or Windows 10
    • Sistema operativo de 64 bits64-bit operating system
  • Requisitos mínimos de hardwareMinimum Hardware requirements
    • 2 GB de RAM2-GB RAM
    • 10 GB de espacio disponible en el disco duro10-GB available hard disk space

InstalaciónInstallation

Puede descargar e instalar el emulador de Azure Cosmos desde el Centro de descarga de Microsoft o ejecutarlo en Docker para 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 obtener instrucciones acerca de cómo utilizar el emulador en Docker para Windows, consulte Ejecución en Docker para Windows.For instructions on using the emulator on Docker for Windows, see Running on Docker.

Nota

Para instalar, configurar y ejecutar el emulador de Azure Cosmos, debe tener privilegios administrativos en el equipo.To install, configure, and run the Azure Cosmos Emulator, you must have administrative privileges on the computer. El emulador creará/agregará un certificado y establecerá las reglas de firewall para ejecutar sus servicios; por lo tanto, es necesario que el emulador pueda ejecutar estas operaciones.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.

Ejecución en WindowsRunning on Windows

Para iniciar el emulador de Azure Cosmos, seleccione el botón Inicio o presione la tecla Windows.To start the Azure Cosmos Emulator, select the Start button or press the Windows key. Comience por escribir Emulador de Azure Cosmos y seleccione el emulador de la lista de aplicaciones.Begin typing Azure Cosmos Emulator, and select the emulator from the list of applications.

Seleccione el botón Inicio o presione la tecla Windows, comience a escribir Emulador de Azure Cosmos y seleccione el emulador en la lista de aplicaciones.

Cuando se ejecuta el emulador, verá un icono en el área de notificación de la barra de tareas de Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area. Notificación en la barra de tareas del emulador local de Azure Cosmos DB

El emulador de Azure Cosmos se ejecuta de forma predeterminada en la máquina local ("localhost") que escucha en el puerto 8081.The Azure Cosmos Emulator by default runs on the local machine ("localhost") listening on port 8081.

El emulador de Azure Cosmos se instala de forma predeterminada en C:\Program Files\Azure Cosmos DB Emulator.The Azure Cosmos Emulator is installed to C:\Program Files\Azure Cosmos DB Emulator by default. También puede iniciar y detener el emulador desde la línea de comandos.You can also start and stop the emulator from the command-line. Para más información consulte la referencia de la herramienta de la línea de comandos.For more information, see the command-line tool reference.

Inicio del Explorador de datosStart Data Explorer

Cuando se inicia el emulador de Azure Cosmos, el explorador de datos de Azure Cosmos se abre automáticamente en el explorador.When the Azure Cosmos Emulator launches, it automatically opens the Azure Cosmos Data Explorer in your browser. La dirección aparece como https://localhost:8081/_explorer/index.html.The address appears as https://localhost:8081/_explorer/index.html. Si cierra el explorador y desea volver a abrirlo más adelante, puede abrir la dirección URL en el explorador o iniciarlo desde el icono del emulador de Azure Cosmos de la bandeja de Windows, tal como se muestra a continuación.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 del explorador de datos del emulador local de Azure Cosmos

Búsqueda de actualizacionesChecking for updates

En el Explorador de datos se indica si hay una nueva actualización disponible para descarga.Data Explorer indicates if there is a new update available for download.

Nota

No se garantiza que los datos que se crean en una versión del emulador de Azure Cosmos (consulte %LOCALAPPDATA%\CosmosDBEmulator o la configuración opcional de la ruta de acceso de los datos) estén disponibles cuando se utilice una versión diferente.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. Si necesita conservar los datos a largo plazo, es recomendable que los almacene en una cuenta de Azure Cosmos y no en el emulador de 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.

Autenticación de solicitudesAuthenticating requests

Al igual que con Azure Cosmos DB en la nube, todas las solicitudes que se realicen en el emulador de Azure Cosmos deben autenticarse.As with Azure Cosmos DB in the cloud, every request that you make against the Azure Cosmos Emulator must be authenticated. El emulador de Azure Cosmos es compatible con una sola cuenta fija y una clave de autenticación reconocida para la autenticación de clave maestra.The Azure Cosmos Emulator supports a single fixed account and a well-known authentication key for master key authentication. Esta cuenta y la clave son las únicas credenciales que se admiten para su uso con el emulador de Azure Cosmos.This account and key are the only credentials permitted for use with the Azure Cosmos Emulator. Son las siguientes:They are:

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

Nota

La clave maestra admitida por el emulador de Azure Cosmos está destinada a su uso exclusivo con el emulador.The master key supported by the Azure Cosmos Emulator is intended for use only with the emulator. No puede usar su clave y cuenta de producción de Azure Cosmos DB con el emulador de Azure Cosmos.You cannot use your production Azure Cosmos DB account and key with the Azure Cosmos Emulator.

Nota

Si ha iniciado el emulador con la opción /Key, use la clave generada en lugar 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 más información sobre la opción /Key, consulte la referencia de la herramienta de la línea de comandos.For more information about /Key option, see Command-line tool reference.

Al igual que Azure Cosmos DB, el emulador de Azure Cosmos solo admite la comunicación segura a través de SSL.As with the Azure Cosmos DB, the Azure Cosmos Emulator supports only secure communication via SSL.

Ejecución en una red localRunning on a local network

Puede ejecutar el emulador en una red local.You can run the emulator on a local network. Para habilitar el acceso de red, especifique la opción /AllowNetworkAccess en la línea de comandos, que también requiere que especifique /Key=key_string o /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. Puede usar /GenKeyFile=file_name para generar un archivo con una clave aleatoria por adelantado.You can use /GenKeyFile=file_name to generate a file with a random key upfront. Después, puede pasar a /KeyFile=file_name o /Key=contents_of_file.Then you can pass that to /KeyFile=file_name or /Key=contents_of_file.

La primera vez que se habilita el acceso de red, el usuario debe apagar el emulador y eliminar el directorio de datos del 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).

Desarrollo con el emuladorDeveloping with the emulator

API DE SQLSQL API

Cuando tenga el emulador de Azure Cosmos funcionando en su escritorio, puede usar cualquier SDK de Azure Cosmos DB admitido o la API REST de Azure Cosmos DB para interactuar con el 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. El emulador de Azure Cosmos también incluye un explorador de datos integrado que permite crear contenedores para SQL API o Cosmos DB para MongoDB API, así como ver y editar elementos sin escribir ningún 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 de Azure Cosmos DB para MongoDBAzure Cosmos DB's API for MongoDB

Cuando tenga el emulador de Azure Cosmos funcionando en su escritorio, puede usar la API de Azure Cosmos DB para MongoDB para interactuar con el 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 el emulador desde el símbolo del sistema como administrador con "/EnableMongoDbEndpoint".Start emulator from command prompt as an administrator with "/EnableMongoDbEndpoint". Luego, use la siguiente cadena de conexión para conectarse a la cuenta de la API de 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

Table APITable API

Cuando tenga el emulador de Azure Cosmos funcionando en su escritorio, puede usar el SDK de Table API de Azure Cosmos DB para interactuar con el 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 el emulador desde el símbolo del sistema como administrador con "/EnableTableEndpoint".Start emulator from command prompt as an administrator with “/EnableTableEndpoint”. A continuación, ejecute el siguiente código para conectarse a la cuenta de Table API: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")));

Cassandra APICassandra API

Inicie el emulador desde un símbolo del sistema como administrador con "/EnableCassandraEndpoint".Start emulator from an administrator command prompt with “/EnableCassandraEndpoint”. Como alternativa, también puede establecer la variable de entorno AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.Alternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.

  • Instale Python 2.7Install Python 2.7

  • Instale la CLI/CQLSH de CassandraInstall Cassandra CLI/CQLSH

  • Ejecute los siguientes comandos en una ventana normal del símbolo del sistema: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
    
  • En el shell de CQLSH, ejecute los siguientes comandos para conectarse al punto de conexión de 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 de GremlinGremlin API

Inicie el emulador desde un símbolo del sistema como administrador con "/EnableGremlinEndpoint".Start emulator from an administrator command prompt with “/EnableGremlinEndpoint”. Como alternativa, también puede establecer la variable de entorno AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=trueAlternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=true

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

  • En el explorador de datos del emulador, cree una base de datos "db1" y una colección "coll1"; para la clave de partición, elija "/nombre"In the emulator’s Data Explorer create a database "db1" and a collection "coll1"; for the partition key, choose "/name"

  • Ejecute los siguientes comandos en una ventana normal del símbolo del sistema: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
    
  • En el shell de Gremlin, ejecute los siguientes comandos para conectarse al punto de conexión de 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()
    

Exportación del certificado SSLExport the SSL certificate

El sistema en tiempo de ejecución y los lenguajes .NET utilizan el almacén de certificados de Windows para conectarse de forma segura al emulador local de Azure Cosmos DB..NET languages and runtime use the Windows Certificate Store to securely connect to the Azure Cosmos DB local emulator. Otros lenguajes tienen sus propios métodos de administración y uso de certificados.Other languages have their own method of managing and using certificates. Java utiliza su propio almacén de certificados, mientras que Python utiliza contenedores de sockets.Java uses its own certificate store whereas Python uses socket wrappers.

Para obtener un certificado que se pueda utilizar con los lenguajes y runtimes que no están integrados en el almacén de certificados de Windows, tendrá que realizar la exportación por medio del administrador de certificados de 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. Para iniciarlo, ejecute certlm.msc o siga las instrucciones paso a paso del artículo sobre la Exportación de los certificados del emulador de Azure Cosmos.You can start it by running certlm.msc or follow the step by step instructions in Export the Azure Cosmos Emulator Certificates. Una vez que el Administrador de certificados se esté ejecutando, abra los certificados personales, tal y como se muestra a continuación, y exporte el certificado con el nombre descriptivo "DocumentDBEmulatorCertificate" como archivo X.509 codificado en 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 del emulador local de Azure Cosmos DB

El certificado X.509 puede importarse en el almacén de certificados de Java siguiendo las instrucciones de Incorporación de un certificado al almacén de certificados CA de 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. Cuando el certificado se haya importado en el almacén de certificados, los clientes para las API de SQL y Azure Cosmos DB para MongoDB podrán conectarse al emulador de 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.

Al conectarse al emulador desde los SDK de Node.js y Python, se deshabilita la verificación de SSL.When connecting to the emulator from Python and Node.js SDKs, SSL verification is disabled.

Referencia de la herramienta de la línea de comandosCommand-line tool reference

Desde la ubicación de instalación, puede usar la línea de comandos para iniciar y detener el emulador, configurar las opciones y realizar otras operaciones.From the installation location, you can use the command-line to start and stop the emulator, configure options, and perform other operations.

Sintaxis de línea de comandosCommand-line syntax

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

Para ver la lista de opciones, escriba CosmosDB.Emulator.exe /? en el símbolo del sistema.To view the list of options, type CosmosDB.Emulator.exe /? at the command prompt.

OpciónOption DescripciónDescription ComandoCommand ArgumentosArguments
[Sin argumentos][No arguments] Inicia el emulador de Azure Cosmos con la configuración predeterminada.Starts up the Azure Cosmos Emulator with default settings. CosmosDB.Emulator.exeCosmosDB.Emulator.exe
[Ayuda][Help] Muestra la lista de argumentos de la línea de comandos admitidos.Displays the list of supported command-line arguments. CosmosDB.Emulator.exe /?CosmosDB.Emulator.exe /?
GetStatusGetStatus Obtiene el estado del emulador de Azure Cosmos.Gets the status of the Azure Cosmos Emulator. El estado se indica mediante el código de salida: 1 = iniciado, 2 = en ejecución, 3 = detenido.The status is indicated by the exit code: 1 = Starting, 2 = Running, 3 = Stopped. Un código de salida negativo indica que se ha producido un error.A negative exit code indicates that an error occurred. Se produce ninguna otra salida.No other output is produced. CosmosDB.Emulator.exe /GetStatusCosmosDB.Emulator.exe /GetStatus
ShutdownShutdown Cierra el emulador de Azure Cosmos.Shuts down the Azure Cosmos Emulator. CosmosDB.Emulator.exe /ShutdownCosmosDB.Emulator.exe /Shutdown
DataPathDataPath Especifica la ruta de acceso en la que se almacenarán los archivos de datos.Specifies the path in which to store data files. El valor predeterminado es %LocalAppdata%\CosmosDBEmulator.Default value is %LocalAppdata%\CosmosDBEmulator. CosmosDB.Emulator.exe /DataPath=<datapath>CosmosDB.Emulator.exe /DataPath=<datapath> <datapath>: una ruta de acceso accesible<datapath>: An accessible path
PortPort Especifica el número de puerto que se utilizará para el emulador.Specifies the port number to use for the emulator. El valor predeterminado es 8081.Default value is 8081. CosmosDB.Emulator.exe /Port=<port>CosmosDB.Emulator.exe /Port=<port> <port>: número de puerto sencillo<port>: Single port number
ComputePortComputePort Especifica el número de puerto que se usará para el servicio Compute Interop Gateway.Specified the port number to use for the Compute Interop Gateway service. El puerto de sondeo del punto de conexión HTTP de la puerta de enlace se calcula como ComputePort + 79.The Gateway's HTTP endpoint probe port is calculated as ComputePort + 79. Por lo tanto, ComputePort y ComputePort + 79 deben estar abiertos y disponibles.Hence, ComputePort and ComputePort + 79 must be open and available. Los valores predeterminados son 8900, 8979.The default values are 8900, 8979. CosmosDB.Emulator.exe /ComputePort = <computeport>CosmosDB.Emulator.exe /ComputePort = <computeport> <computeport>: número de puerto sencillo<computeport>: Single port number
EnableMongoDbEndpointEnableMongoDbEndpoint Habilita la API de MongoDB.Enables MongoDB API CosmosDB.Emulator.exe /EnableMongoDbEndpointCosmosDB.Emulator.exe /EnableMongoDbEndpoint
MongoPortMongoPort Especifica el número de puerto que se utilizará para la API de compatibilidad de MongoDB.Specifies the port number to use for MongoDB compatibility API. El valor predeterminado es 10255.Default value is 10255. CosmosDB.Emulator.exe /MongoPort= <mongoport>CosmosDB.Emulator.exe /MongoPort= <mongoport> <mongoport>: número de puerto sencillo<mongoport>: Single port number
EnableCassandraEndpointEnableCassandraEndpoint Habilita Cassandra APIEnables Cassandra API CosmosDB.Emulator.exe /EnableCassandraEndpointCosmosDB.Emulator.exe /EnableCassandraEndpoint
CassandraPortCassandraPort Especifica el número de puerto que se utilizará para el punto de conexión de Cassandra.Specifies the port number to use for the Cassandra endpoint. El valor predeterminado es 10350.Default value is 10350. CosmosDB.Emulator.exe /CassandraPort = <cassandraport>CosmosDB.Emulator.exe /CassandraPort = <cassandraport> <cassandraport>: número de puerto sencillo<cassandraport>: Single port number
EnableGremlinEndpointEnableGremlinEndpoint Habilita Gremlin APIEnables Gremlin API CosmosDB.Emulator.exe /EnableGremlinEndpointCosmosDB.Emulator.exe /EnableGremlinEndpoint
GremlinPortGremlinPort Número de puerto que se usará para el punto de conexión de Gremlin.Port number to use for the Gremlin Endpoint. El valor predeterminado es 8901.Default value is 8901. CosmosDB.Emulator.exe /GremlinPort=<port>CosmosDB.Emulator.exe /GremlinPort=<port> <port>: número de puerto sencillo<port>: Single port number
EnableTableEndpointEnableTableEndpoint Habilita Azure Table APIEnables Azure Table API CosmosDB.Emulator.exe /EnableTableEndpointCosmosDB.Emulator.exe /EnableTableEndpoint
TablePortTablePort Número de puerto que se utilizará para el punto de conexión de Azure Table.Port number to use for the Azure Table Endpoint. El valor predeterminado es 8902.Default value is 8902. CosmosDB.Emulator.exe /TablePort=<port>CosmosDB.Emulator.exe /TablePort=<port> <port>: número de puerto sencillo<port>: Single port number
KeyFileKeyFile Lee la clave de autorización del archivo especificado.Read authorization key from the specified file. Usa la opción/GenKeyFile para generar un archivo de clavesUse the /GenKeyFile option to generate a keyfile CosmosDB.Emulator.exe /KeyFile=<file_name>CosmosDB.Emulator.exe /KeyFile=<file_name> <file_name>: Ruta de acceso al archivo<file_name>: Path to the file
ResetDataPathResetDataPath Quita todos los archivos repetidamente de la ruta de acceso especificada.Recursively removes all the files in the specified path. Si no especifica una ruta de acceso, el valor predeterminado es %LOCALAPPDATA%\CosmosDbEmulatorIf you don't specify a path, it defaults to %LOCALAPPDATA%\CosmosDbEmulator CosmosDB.Emulator.exe /ResetDataPath=<path>CosmosDB.Emulator.exe /ResetDataPath=<path> <path>: Ruta de acceso del archivo<path>: File path
StartTracesStartTraces Comienza a recopilar los registros de seguimiento de la depuración.Start collecting debug trace logs. CosmosDB.Emulator.exe /StartTracesCosmosDB.Emulator.exe /StartTraces
StopTracesStopTraces Deja de recopilar los registros de seguimiento de la depuración.Stop collecting debug trace logs. CosmosDB.Emulator.exe /StopTracesCosmosDB.Emulator.exe /StopTraces
FailOnSslCertificateNameMismatchFailOnSslCertificateNameMismatch De forma predeterminada, el emulador vuelve a generar su certificado SSL autofirmado, si los SAN de certificado no incluyen el nombre de dominio del host del emulador, la dirección IPv4 local, "localhost" y "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'. Con esta opción, el emulador producirá un error al inicio en su lugar.With this option, the emulator will fail at startup instead. A continuación, debe usar la opción /GenCert para crear e instalar un nuevo certificado SSL autofirmado.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 Genera e instala un nuevo certificado SSL autofirmado.Generate and install a new self-signed SSL certificate. Puede incluir una lista de nombres DNS adicionales separada por comas para acceder al emulador a través de la red.optionally including a comma-separated list of additional DNS names for accessing the Emulator over the network. CosmosDB.Emulator.exe /GenCert=<dns-names>CosmosDB.Emulator.exe /GenCert=<dns-names> <dns-names>: lista opcional de nombres dns adicionales separada por comas<dns-names>: Optional comma-separated list of additional dns names
DirectPortsDirectPorts Especifica los puertos que se usarán para la conectividad directa.Specifies the ports to use for direct connectivity. Los valores predeterminados son 10251,10252,10253,10254.Defaults are 10251,10252,10253,10254. CosmosDB.Emulator.exe /DirectPorts:<directports>CosmosDB.Emulator.exe /DirectPorts:<directports> <directports>: una lista delimitada por comas de 4 puertos<directports>: Comma-delimited list of 4 ports
ClaveKey Clave de autorización para el emulador.Authorization key for the emulator. La clave debe ser la codificación en base 64 de un vector de 64 bytes.Key must be the base-64 encoding of a 64-byte vector. CosmosDB.Emulator.exe /Key:<key>CosmosDB.Emulator.exe /Key:<key> <key>: Las claves deben ser la codificación en base 64 de un vector de 64 bytes.<key>: Key must be the base-64 encoding of a 64-byte vector
EnableRateLimitingEnableRateLimiting Especifica que el comportamiento de limitación de velocidad de solicitudes está habilitado.Specifies that request rate limiting behavior is enabled. CosmosDB.Emulator.exe /EnableRateLimitingCosmosDB.Emulator.exe /EnableRateLimiting
DisableRateLimitingDisableRateLimiting Especifica que el comportamiento de limitación de velocidad de solicitudes está deshabilitado.Specifies that request rate limiting behavior is disabled. CosmosDB.Emulator.exe /DisableRateLimitingCosmosDB.Emulator.exe /DisableRateLimiting
NoUINoUI No muestra la interfaz de usuario del emulador.Do not show the emulator user interface. CosmosDB.Emulator.exe /NoUICosmosDB.Emulator.exe /NoUI
NoExplorerNoExplorer No muestra el Explorador de datos en el inicio.Don't show data explorer on startup. CosmosDB.Emulator.exe /NoExplorerCosmosDB.Emulator.exe /NoExplorer
PartitionCountPartitionCount Especifica el número máximo de los contenedores particionados.Specifies the maximum number of partitioned containers. Consulte Cambio del número de contenedores para más información.See Change the number of containers for more information. CosmosDB.Emulator.exe /PartitionCount=<partitioncount>CosmosDB.Emulator.exe /PartitionCount=<partitioncount> <partitioncount>: Número máximo de contenedores de una sola partición permitidos.<partitioncount>: Maximum number of allowed single partition containers. El valor predeterminado es 25.Default value is 25. El máximo permitido es 250.Maximum allowed is 250.
DefaultPartitionCountDefaultPartitionCount Especifica el número predeterminado de particiones para un contenedor.Specifies the default number of partitions for a partitioned container. CosmosDB.Emulator.exe /DefaultPartitionCount=<defaultpartitioncount>CosmosDB.Emulator.exe /DefaultPartitionCount=<defaultpartitioncount> El valor predeterminado de <defaultpartitioncount> es 25.<defaultpartitioncount> Default value is 25.
AllowNetworkAccessAllowNetworkAccess Permite acceder al emulador a través de una red.Enables access to the emulator over a network. También debe pasar /Key=<key_string> o /KeyFile=<file_name> para habilitar el acceso de red.You must also pass /Key=<key_string> or /KeyFile=<file_name> to enable network access. CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<key_string> o CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<file_name>CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<key_string> or CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<file_name>
NoFirewallNoFirewall No ajuste las reglas de firewall cuando se utilice la opción /AllowNetworkAccess.Don't adjust firewall rules when /AllowNetworkAccess option is used. CosmosDB.Emulator.exe /NoFirewallCosmosDB.Emulator.exe /NoFirewall
GenKeyFileGenKeyFile Genere una nueva clave de autorización y guárdela en el archivo especificado.Generate a new authorization key and save to the specified file. La clave generada se puede utilizar con las opciones /Key o /KeyFile.The generated key can be used with the /Key or /KeyFile options. CosmosDB.Emulator.exe /GenKeyFile=<ruta de acceso al archivo de clave>CosmosDB.Emulator.exe /GenKeyFile=<path to key file>
CoherenciaConsistency Defina el nivel de coherencia predeterminado de la cuenta.Set the default consistency level for the account. CosmosDB.Emulator.exe /Consistency=<consistency>CosmosDB.Emulator.exe /Consistency=<consistency> <consistency>: el valor debe ser de uno de los siguientes niveles de consistencia: Sesión, Strong, Eventual o BoundedStaleness.<consistency>: Value must be one of the following consistency levels: Session, Strong, Eventual, or BoundedStaleness. El valor predeterminado es Session.The default value is Session.
?? Se muestra el mensaje de ayuda.Show the help message.

Cambio del número de contenedoresChange the number of containers

De forma predeterminada se pueden crear hasta 25 contenedores de tamaño fijo (solo compatibles con los SDK de Azure Cosmos DB) o 5 contenedores ilimitados con el emulador de 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. Al modificar el valor de PartitionCount, se pueden crear hasta 250 contenedores de tamaño fijo o 50 contenedores ilimitados, o cualquier combinación de los dos que no supere los 250 contenedores de tamaño fijo (un contenedor ilimitado = 5 contenedores de tamaño fijo).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). Sin embargo, no se recomienda configurar el emulador para que se ejecute con más de 200 contenedores de tamaño fijo.However it's not recommended to set up the emulator to run with more than 200 fixed size containers. Esto se debe a la sobrecarga añadida a las operaciones de E/S del disco, que producen tiempos de expiración impredecibles al usar las API de punto de conexión.Because of the overhead that it adds to the disk IO operations, which result in unpredictable timeouts when using the endpoint APIs.

Si intenta crear un contenedor después de que se haya excedido el recuento de particiones actual, el emulador generará una excepción ServiceUnavailable con el siguiente mensaje.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.

"Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time."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.We work continuously to bring more and more capacity online, and encourage you to try again. Please do not hesitate to email askcosmosdb@microsoft.com at any time or for any reason.Please do not hesitate to email askcosmosdb@microsoft.com at any time or for any reason. ActivityId: 12345678-1234-1234-1234-123456789abc" (Lo sentimos, la demanda actual en esta región es alta y no podemos responder a su solicitud en este momento. Trabajamos constantemente para añadir capacidad en línea, inténtelo de nuevo. Puede enviarnos un correo electrónico a askcosmosdb@microsoft.com en cualquier momento, con cualquier motivo. ActivityId: 12345678-1234-1234-1234-123456789abc)ActivityId: 12345678-1234-1234-1234-123456789abc"

Para cambiar el número de contenedores disponibles en el emulador de Azure Cosmos, ejecute los siguientes pasos:To change the number of containers available in the Azure Cosmos Emulator, run the following steps:

  1. Elimine todos los datos del emulador local de Azure Cosmos; para ello, haga clic con el botón derecho en el icono del Emulador de Azure Cosmos DB de la bandeja del sistema y haga clic en Reset Data… (Restablecer datos...).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. Elimine todos los datos del emulador de la carpeta %LOCALAPPDATA%\CosmosDBEmulator.Delete all emulator data in this folder %LOCALAPPDATA%\CosmosDBEmulator.
  3. Cierre todas las instancias abiertas; para ello, haga clic con el botón derecho en el icono del Emulador de Azure Cosmos DB de la bandeja del sistema y, luego, haga clic en Salir.Exit all open instances by right-clicking the Azure Cosmos DB Emulator icon on the system tray, and then clicking Exit. Todas las instancias pueden tardar un minuto en salir.It may take a minute for all instances to exit.
  4. Instale la versión más reciente del Emulador de Azure Cosmos.Install the latest version of the Azure Cosmos Emulator.
  5. Para iniciar el emulador con la marca PartitionCount, establezca un valor <= 250.Launch the emulator with the PartitionCount flag by setting a value <= 250. Por ejemplo: 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.

Control del emuladorControlling the emulator

El emulador incluye un módulo de PowerShell para iniciar, detener, desinstalar y recuperar el estado del servicio.The emulator comes with a PowerShell module to start, stop, uninstall, and retrieve the status of the service. Ejecute el siguiente cmdlet para utilizar el módulo de PowerShell:Run the following cmdlet to use the PowerShell module:

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

o bien coloque el directorio PSModules en su PSModulesPath e impórtelo como se muestra en el siguiente comando: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

Este es un resumen de los comandos de control del emulador desde PowerShell:Here is a summary of the commands for controlling the emulator from PowerShell:

Get-CosmosDbEmulatorStatus

SintaxisSyntax

Get-CosmosDbEmulatorStatus

Comentarios:Remarks

Devuelve uno de estos valores de ServiceControllerStatus: ServiceControllerStatus.StartPending, ServiceControllerStatus.Running o ServiceControllerStatus.Stopped.Returns one of these ServiceControllerStatus values: ServiceControllerStatus.StartPending, ServiceControllerStatus.Running, or ServiceControllerStatus.Stopped.

Start-CosmosDbEmulator

SintaxisSyntax

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

Comentarios:Remarks

Inicia el emulador.Starts the emulator. De forma predeterminada, el comando espera hasta que el emulador está listo para aceptar solicitudes.By default, the command waits until the emulator is ready to accept requests. Utilice la opción -NoWait, si desea que el cmdlet realice la devolución en cuanto inicie el emulador.Use the -NoWait option, if you wish the cmdlet to return as soon as it starts the emulator.

Stop-CosmosDbEmulator

SintaxisSyntax

Stop-CosmosDbEmulator [-NoWait]

Comentarios:Remarks

Detiene el emulador.Stops the emulator. De forma predeterminada, este comando espera hasta que el emulador esté completamente apagado.By default, this command waits until the emulator is fully shut down. Utilice la opción -NoWait, si desea que el cmdlet realice la devolución en cuanto el emulador comience el apagado.Use the -NoWait option, if you wish the cmdlet to return as soon as the emulator begins to shut down.

Uninstall-CosmosDbEmulator

SintaxisSyntax

Uninstall-CosmosDbEmulator [-RemoveData]

Comentarios:Remarks

Desinstala el emulador y, opcionalmente, quita todo el contenido de $env: LOCALAPPDATA\CosmosDbEmulator.Uninstalls the emulator and optionally removes the full contents of $env:LOCALAPPDATA\CosmosDbEmulator. El cmdlet garantiza que el emulador se detiene antes de desinstalarlo.The cmdlet ensures the emulator is stopped before uninstalling it.

Ejecución en DockerRunning on Docker

El emulador de Azure Cosmos se puede ejecutar en Docker para Windows.The Azure Cosmos Emulator can be run on Docker for Windows. El emulador no funciona en Docker para Oracle Linux.The emulator does not work on Docker for Oracle Linux.

Una vez que haya instalado Docker para Windows, cambie a contenedores de Windows haciendo clic con el botón derecho en el icono de Docker en la barra de herramientas, y seleccione Switch to Windows containers (Cambiar a contenedores de 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.

A continuación, extraiga la imagen del emulador de Docker Hub ejecutando el siguiente comando desde el shell que prefiera.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 la imagen, ejecute los siguientes comandos.To start the image, run the following commands.

Desde la línea de comandos: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

Nota

Si ve un error de conflicto de puerto (el puerto especificado ya está en uso) al ejecutar el comando docker run, puede pasar un puerto personalizado modificando los números de puerto.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 ejemplo, puede cambiar "-p 8081:8081" por "-p 443:8081".For example, you can change the "-p 8081:8081" to "-p 443:8081"

Desde 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

La respuesta será similar a la siguiente: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

Ahora, use el punto de conexión y la clave maestra de la respuesta en el cliente e importe el certificado SSL en el 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 el certificado SSL, haga lo siguiente desde un símbolo del sistema de administración:To import the SSL certificate, do the following from an admin command prompt:

Desde la línea de comandos:From the command-line:

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

Desde PowerShell:From PowerShell:

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

Si cierra el shell interactivo después de que se haya iniciado el emulador, se cerrará el contenedor de este.Closing the interactive shell once the emulator has been started will shut down the emulator’s container.

Para abrir el Explorador de datos vaya a la siguiente dirección URL en el explorador.To open the Data Explorer, navigate to the following URL in your browser. El punto de conexión del emulador se proporciona en el mensaje de respuesta mostrado anteriormente.The emulator endpoint is provided in the response message shown above.

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

Ejecución en Mac o LinuxRunning on Mac or Linux

Actualmente, el emulador de Cosmos solo se puede ejecutar en Windows.Currently the Cosmos emulator can only be run on Windows. Los usuarios con Mac o Linux pueden ejecutar el emulador en una máquina virtual Windows hospedada por un hipervisor como Parallels o VirtualBox.Users running Mac or Linux can run the emulator in a Windows virtual machine hosted a hypervisor such as Parallels or VirtualBox. A continuación se muestran los pasos necesarios para habilitarlo.Below are the steps to enable this.

En la máquina virtual Windows, ejecute el comando siguiente y tome nota de la dirección IPv4.Within the Windows VM run the command below and make note of the IPv4 address.

ipconfig.exe

En su aplicación, debe cambiar el URI del objeto DocumentClient para usar la dirección IPv4 que ipconfig.exe devuelve.Within your application you need to change the URI for the DocumentClient object to use the IPv4 address returned by ipconfig.exe. El paso siguiente es ofrecer una solución alternativa a la validación de la CA al construir el objeto DocumentClient.The next step is to work around the CA validation when constructing the DocumentClient object. Para ello, tendrá que proporcionar un HttpClientHandler al constructor DocumentClient, que tiene su propia implementación para ServerCertificateCustomValidationCallback.For this you will need to provide an HttpClientHandler to the DocumentClient constructor, which has it's own implementation for ServerCertificateCustomValidationCallback.

En el ejemplo siguiente se muestra cómo quedaría el 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 último, desde dentro de la máquina virtual Windows, inicie el emulador de Cosmos desde la línea de comandos mediante las siguientes opciones.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==

Solución de problemasTroubleshooting

Use las siguientes sugerencias para solucionar los problemas que podrían surgir con el emulador de Azure Cosmos:Use the following tips to help troubleshoot issues you encounter with the Azure Cosmos Emulator:

  • Si se instala una nueva versión del emulador y se experimentan errores, asegúrese de restablecer los datos.If you installed a new version of the emulator and are experiencing errors, ensure you reset your data. Para restablecer los datos, haga clic con el botón derecho en el icono del Emulador de Azure Cosmos de la bandeja del sistema y haga clic en Reset Data... (Restablecer datos....)You can reset your data by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Reset Data…. Si no se solucionan los errores, puede desinstalar el emulador y las versiones anteriores de este (si se encuentran), quitar el directorio "C:\Program files\Azure Cosmos DB Emulator" y volver a instalar el 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. Consulte Desinstalación del emulador local para obtener instrucciones.See Uninstall the local emulator for instructions.

  • Si el emulador de Azure Cosmos se bloquea, recopile los archivos de volcado de memoria de la carpeta %LoCALAPPDATA%\CrashDumps, comprímalos y adjúntelos a un correo electrónico 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.

  • Si experimenta bloqueos en Microsoft.Azure.Cosmos.ComputeServiceStartupEntryPoint.exe, podría ser un síntoma de donde los contadores de rendimiento tienen un estado dañado.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, ejecutar el siguiente comando desde un símbolo del sistema de administración corrige el problema:Usually running the following command from an admin command prompt fixes the issue:

    lodctr /R
    
  • Si se produce un problema de conectividad, recopile los archivos de seguimiento, comprímalos y adjúntelos a un correo electrónico y envíelo a askcosmosdb@microsoft.com .If you encounter a connectivity issue, collect trace files, compress them, and attach them to an email to askcosmosdb@microsoft.com.

  • Si recibe un mensaje de Servicio no disponible, es posible que el emulador no pueda inicializar la pila de red.If you receive a Service Unavailable message, the emulator might be failing to initialize the network stack. Compruebe si tiene instalado el cliente de Pulse Secure o el cliente de Juniper Networks, ya que sus controladores de filtro de red podrían ser la causa del 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. Normalmente el problema se corrige al desinstalar los controladores del filtro de red de otros fabricantes.Uninstalling third-party network filter drivers typically fixes the issue. Como alternativa, puede iniciar el emulador con /DisableRIO, lo cual cambiará la comunicación de red del emulador a una Winsock normal.Alternatively, start the emulator with /DisableRIO, which will switch the emulator network communication to regular Winsock.

  • Mientras se ejecuta el emulador, si el equipo entra en modo de suspensión o se ejecuta alguna actualización del sistema operativo, es posible que aparezca un mensaje del tipo el servicio no está disponible en estos momentos.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. Restablezca el emulador; para ello, haga clic con el botón derecho en el icono que aparece en la bandeja de notificaciones de Windows y seleccione Reset Data (Restablecer datos).Reset the emulator's data, by right-clicking on the icon that appears on the windows notification tray and select Reset Data.

Recopilación de archivos de seguimientoCollect trace files

Para recopilar los seguimientos de depuración, ejecute los siguientes comandos desde un símbolo del sistema 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. Vea la bandeja del sistema para asegurarse de que el programa se ha cerrado; esto podría tardar un minuto.Watch the system tray to make sure the program has shut down, it may take a minute. También puede hacer clic en Salir en la interfaz de usuario del emulador de 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. Reproduzca el problema.Reproduce the problem. Si el Explorador de datos no funciona, solo necesitará esperar a que el explorador se abra durante unos segundos para detectar el error.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. Vaya a %ProgramFiles%\Azure Cosmos DB Emulator y localice el archivo docdbemulator_000001.etl.Navigate to %ProgramFiles%\Azure Cosmos DB Emulator and find the docdbemulator_000001.etl file.
  8. Envíe el archivo .etl junto con los pasos para reproducirlo a askcosmosdb@microsoft.com para la depuración.Send the .etl file along with repro steps to askcosmosdb@microsoft.com for debugging.

Desinstalación del emulador localUninstall the local emulator

  1. Cierre todas las instancias abiertas del emulador local; para ello, haga clic con el botón derecho en el icono del emulador de Azure Cosmos en la bandeja del sistema y haga clic en Salir.Exit all open instances of the local emulator by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Exit. Todas las instancias pueden tardar un minuto en salir.It may take a minute for all instances to exit.
  2. En el cuadro de búsqueda de Windows, escriba Aplicaciones y características y haga clic en el resultado Aplicaciones y características (configuración del sistema) .In the Windows search box, type Apps & features and click on the Apps & features (System settings) result.
  3. En la lista de aplicaciones, desplácese a Emulador de Azure Cosmos DB, selecciónela, haga clic en Desinstalar, confirme y haga clic en Desinstalar de nuevo.In the list of apps, scroll to Azure Cosmos DB Emulator, select it, click Uninstall, then confirm and click Uninstall again.
  4. Cuando la aplicación se haya desinstalado, vaya a %LOCALAPPDATA%\CosmosDBEmulator y elimine la carpeta.When the app is uninstalled, navigate to %LOCALAPPDATA%\CosmosDBEmulator and delete the folder.

Pasos siguientesNext steps

En este tutorial, ha aprendido a usar el emulador local para desarrollar código en un entorno local gratuito.In this tutorial, you've learned how to use the local emulator for free local development. Ahora puede pasar al siguiente tutorial y aprender a exportar certificados SSL del emulador.You can now proceed to the next tutorial and learn how to export emulator SSL certificates.