Utiliser l’émulateur Azure Cosmos pour le développement et le test en localUse the Azure Cosmos Emulator for local development and testing

L’émulateur Azure Cosmos fournit un environnement local qui émule le service Azure Cosmos DB à des fins de développement.The Azure Cosmos Emulator provides a local environment that emulates the Azure Cosmos DB service for development purposes. Cet émulateur vous permet de développer et de tester votre application localement, sans créer d’abonnement Azure et sans frais.Using the Azure Cosmos Emulator, you can develop and test your application locally, without creating an Azure subscription or incurring any costs. Lorsque vous êtes satisfait du fonctionnement de votre application dans l’émulateur Azure Cosmos, vous pouvez commencer à utiliser un compte Azure Cosmos dans le cloud.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.

Le développement à l’aide de l’émulateur Azure Cosmos est possible avec des comptes des API SQL, Cassandra, MongoDB, Gremlin et Table.You can develop using Azure Cosmos Emulator with SQL, Cassandra, MongoDB, Gremlin, and Table API accounts. Toutefois, à l’heure actuelle, l’Explorateur de données dans l’émulateur ne prend totalement en charge que les clients pour l’API SQL.However at this time the Data Explorer view in the emulator fully supports clients for SQL API only.

Fonctionnement de l’émulateurHow the emulator works

L’émulateur Azure Cosmos fournit une émulation haute fidélité du service Azure Cosmos DB.The Azure Cosmos Emulator provides a high-fidelity emulation of the Azure Cosmos DB service. Il prend en charge les mêmes fonctionnalités qu’Azure Cosmos DB, notamment la prise en charge de la création et de l’interrogation des données, la configuration et la mise à l’échelle des conteneurs, et l’exécution des procédures stockées et des déclencheurs.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. Vous pouvez développer et tester des applications à l’aide de l’émulateur Azure Cosmos et les déployer ensuite vers Azure à l’échelle mondiale en apportant une seule modification à la configuration du point de terminaison de connexion pour 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.

Si l’émulation du service Azure Cosmos DB est fidèle, l’implémentation de l’émulateur est différente de celle du service.While emulation of the Azure Cosmos DB service is faithful, the emulator's implementation is different than the service. Par exemple, l’émulateur utilise les composants du système d’exploitation standard, notamment le système de fichiers local pour la persistance, et la pile de protocole HTTPS pour la connectivité.For example, the emulator uses standard OS components such as the local file system for persistence, and the HTTPS protocol stack for connectivity. Les fonctionnalités qui s’appuient sur l’infrastructure Azure, comme la réplication globale, la latence en quelques millisecondes pour les lectures/écritures et les niveaux de cohérence ajustables ne s’appliquent pas.Functionality that relies on Azure infrastructure like global replication, single-digit millisecond latency for reads/writes, and tunable consistency levels are not applicable.

Vous pouvez migrer des données entre l’émulateur Azure Cosmos et le service Azure Cosmos DB à l’aide de l’outil de migration de données 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.

Vous pouvez exécuter l’émulateur Azure Cosmos sur le conteneur Docker pour Windows. Consultez le Hub Docker pour en savoir plus sur la commande docker pull et GitHub pour obtenir le code de l’émulateur.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.

Différences entre l’émulateur et le serviceDifferences between the emulator and the service

L’émulateur Azure Cosmos offrant un environnement émulé exécuté sur une station de travail de développement locale, il y a quelques différences entre les fonctionnalités de l’émulateur et celles d’un compte Azure Cosmos dans le cloud :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:

  • À l’heure actuelle, l’Explorateur de données dans l’émulateur prend en charge les clients pour l’API SQL uniquement.Currently Data Explorer in the emulator supports clients for SQL API. La vue de l’Explorateur de données et les opérations pour les API MongoDB, Table, Graph et Cassandra d’Azure Cosmos DB ne sont pas entièrement prises en charge.The Data Explorer view and operations for Azure Cosmos DB APIs such as MongoDB, Table, Graph, and Cassandra APIs are not fully supported.
  • L’émulateur Azure Cosmos prend uniquement en charge un seul compte fixe et une clé principale connue.The Azure Cosmos Emulator supports only a single fixed account and a well-known master key. La regénération de clé n’est pas possible dans l’émulateur Azure Cosmos, mais la clé par défaut peut être changée à l’aide de l’option de ligne de commande.Key regeneration is not possible in the Azure Cosmos Emulator, however the default key can be changed using the command-line option.
  • L’émulateur Azure Cosmos n’est pas un service de stockage scalable et ne prend pas en charge un grand nombre de conteneurs.The Azure Cosmos Emulator is not a scalable service and will not support a large number of containers.
  • L’émulateur Azure Cosmos n’offre pas de niveaux de cohérence Azure Cosmos DB différents.The Azure Cosmos Emulator does not offer different Azure Cosmos DB consistency levels.
  • L’émulateur Azure Cosmos ne permet pas la réplication entre plusieurs régions.The Azure Cosmos Emulator does not offer multi-region replication.
  • Votre copie de l’émulateur Azure Cosmos n’étant pas obligatoirement à jour par rapport aux dernières modifications apportées au service Azure Cosmos DB, nous vous conseillons de consulter la section Planificateur de capacité Azure Cosmos DB pour évaluer avec précision les besoins en débit de production (RU) de votre application.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.
  • Quand vous utilisez l’émulateur Azure Cosmos, par défaut, vous pouvez créer jusqu’à 25 conteneurs de taille fixe (pris en charge uniquement avec les SDK Azure Cosmos DB), ou cinq conteneurs illimités avec l’émulateur 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. Pour plus d’informations sur la modification de cette valeur, voir la section relative à la définition de la valeur PartitionCount.For more information about changing this value, see Setting the PartitionCount value.

Conditions requises pour le systèmeSystem requirements

L’émulateur Azure Cosmos nécessite la configuration matérielle et logicielle suivante :The Azure Cosmos Emulator has the following hardware and software requirements:

  • Configuration logicielle requiseSoftware requirements
    • Windows Server 2012 R2, Windows Server 2016 ou Windows 10Windows Server 2012 R2, Windows Server 2016, or Windows 10
    • Système d’exploitation 64 bits64-bit operating system
  • Conditions matérielles minimales requisesMinimum Hardware requirements
    • 2 Go de RAM2-GB RAM
    • 10 Go d’espace disque disponible10-GB available hard disk space

InstallationInstallation

Vous pouvez télécharger et installer l’émulateur Azure Cosmos à partir du Centre de téléchargement Microsoft, ou exécuter l’émulateur sur Docker pour 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. Pour obtenir des instructions sur l’utilisation de l’émulateur sur Docker pour Windows, consultez Exécution sur Docker.For instructions on using the emulator on Docker for Windows, see Running on Docker.

Notes

Pour installer, configurer et exécuter l’émulateur Azure Cosmos, vous devez avoir des privilèges d’administrateur sur l’ordinateur.To install, configure, and run the Azure Cosmos Emulator, you must have administrative privileges on the computer. L’émulateur va créer/ajouter un certificat, mais également définir les règles de pare-feu pour exécuter ses services. Il doit donc être en mesure d’exécuter ces opérations.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.

Exécution sur DockerRunning on Windows

Pour démarrer l’émulateur Azure Cosmos, sélectionnez le bouton Démarrer ou appuyez sur la touche Windows.To start the Azure Cosmos Emulator, select the Start button or press the Windows key. Commencez à taper Émulateur Azure Cosmos, puis sélectionnez l’émulateur dans la liste des applications.Begin typing Azure Cosmos Emulator, and select the emulator from the list of applications.

Sélectionnez le bouton Démarrer ou appuyez sur la touche Windows, commencez à taper Émulateur Azure Cosmos, puis sélectionnez l’émulateur dans la liste des applications

Lorsque l’émulateur est en cours d’exécution, une icône est affichée dans la zone de notification de la barre des tâches Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area. Notification dans la barre des tâches de l'émulateur local Azure Cosmos DB

Par défaut, l’émulateur Azure Cosmos s’exécute sur la machine locale (« localhost ») et écoute sur le port 8081.The Azure Cosmos Emulator by default runs on the local machine ("localhost") listening on port 8081.

L’émulateur Azure Cosmos est installé dans C:\Program Files\Azure Cosmos DB Emulator par défaut.The Azure Cosmos Emulator is installed to C:\Program Files\Azure Cosmos DB Emulator by default. Vous pouvez également démarrer et arrêter l’émulateur à partir de la ligne de commande.You can also start and stop the emulator from the command-line. Pour plus d’informations, consultez la section Référence de l’outil en ligne de commande.For more information, see the command-line tool reference.

Démarrer l’Explorateur de donnéesStart Data Explorer

Au démarrage de l’émulateur Azure Cosmos, l’Explorateur de données Azure Cosmos s’ouvre automatiquement dans votre navigateur.When the Azure Cosmos Emulator launches, it automatically opens the Azure Cosmos Data Explorer in your browser. L’adresse apparaît sous la forme https://localhost:8081/_explorer/index.html.The address appears as https://localhost:8081/_explorer/index.html. Si vous fermez l’explorateur et que vous souhaitez le rouvrir ultérieurement, vous pouvez ouvrir l’URL dans votre navigateur ou la lancer à partir de l’émulateur Azure Cosmos dans l’icône de la barre d’état système Windows, comme illustré ci-dessous.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.

Lanceur de l’Explorateur de données de l’émulateur local Azure Cosmos

Recherche de mises à jourChecking for updates

L’Explorateur de données indique si une nouvelle mise à jour est disponible en téléchargement.Data Explorer indicates if there is a new update available for download.

Notes

Certaines données créées dans une version de l’émulateur Azure Cosmos (voir %LOCALAPPDATA%\CosmosDBEmulator ou les paramètres facultatifs du chemin des données) peuvent ne pas être accessibles à partir d’une autre version.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 vous devez rendre vos données persistantes à long terme, nous vous recommandons de les stocker dans un compte Azure Cosmos plutôt que dans l’émulateur 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.

Authentification des demandesAuthenticating requests

Tout comme avec Azure Cosmos DB dans le cloud, chaque requête envoyée à l’émulateur Azure Cosmos doit être authentifiée.As with Azure Cosmos DB in the cloud, every request that you make against the Azure Cosmos Emulator must be authenticated. L’émulateur Azure Cosmos prend uniquement en charge un seul compte fixe et une clé d’authentification connue pour l’authentification de la clé principale.The Azure Cosmos Emulator supports a single fixed account and a well-known authentication key for master key authentication. Ce compte et cette clé sont les seules informations d’identification autorisées avec l’émulateur Azure Cosmos.This account and key are the only credentials permitted for use with the Azure Cosmos Emulator. Il s'agit de :They are:

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

Notes

La clé principale prise en charge par l’émulateur Azure Cosmos peut être utilisée uniquement avec l’émulateur.The master key supported by the Azure Cosmos Emulator is intended for use only with the emulator. Vous ne pouvez pas utiliser votre compte et votre clé Azure Cosmos DB de production avec l’émulateur Azure Cosmos.You cannot use your production Azure Cosmos DB account and key with the Azure Cosmos Emulator.

Notes

Si vous avez démarré l’émulateur avec l’option /Key, utilisez la clé générée à la place 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==. Pour plus d’informations sur l’option /Key, consultez la section Référence sur l’outil en ligne de commande.For more information about /Key option, see Command-line tool reference.

Comme Azure Cosmos DB, l’émulateur Azure Cosmos prend en charge uniquement la communication sécurisée via SSL.As with the Azure Cosmos DB, the Azure Cosmos Emulator supports only secure communication via SSL.

Exécution sur un réseau localRunning on a local network

Vous pouvez exécuter l’émulateur sur un réseau local.You can run the emulator on a local network. Pour activer l’accès réseau, spécifiez l’option /AllowNetworkAccess sur la ligne de commande, avec /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. Vous pouvez initialement utiliser /GenKeyFile=file_name pour générer un fichier avec une clé aléatoire.You can use /GenKeyFile=file_name to generate a file with a random key upfront. Passez ensuite cette clé à /KeyFile=file_name ou /Key=contents_of_file.Then you can pass that to /KeyFile=file_name or /Key=contents_of_file.

Avant d’activer l’accès réseau pour la première fois, l’utilisateur doit arrêter l’émulateur et supprimer le répertoire de données de l’émulateur (%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).

Développement avec l’émulateurDeveloping with the emulator

API SQLSQL API

Une fois que l’émulateur Azure Cosmos est démarré sur votre bureau, vous pouvez utiliser n’importe quel SDK Azure Cosmos DB pris en charge ou l’API REST Azure Cosmos DB pour interagir avec lui.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. L’émulateur Azure Cosmos fournit également un Explorateur de données à partir duquel vous pouvez créer des conteneurs pour l’API SQL ou l’API de Cosmos DB pour Mongo DB, ou encore afficher et modifier des éléments sans avoir à écrire de code.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 d’Azure Cosmos DB pour MongoDBAzure Cosmos DB's API for MongoDB

Une fois que l’émulateur Azure Cosmos est démarré sur votre bureau, vous pouvez utiliser l’API d’Azure Cosmos DB pour MongoDB pour interagir avec lui.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. Démarrez l’émulateur à partir d’une invite de commandes administrateur avec « /EnableMongoDbEndpoint ».Start emulator from command prompt as an administrator with "/EnableMongoDbEndpoint". Utilisez ensuite la chaîne de connexion suivante pour vous connecter au compte de l’API 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 tableTable API

Une fois que l’émulateur Azure Cosmos est démarré sur votre bureau, vous pouvez utiliser le SDK API Table d’Azure Cosmos DB pour interagir avec lui.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. Démarrez l’émulateur à partir d’une invite de commandes administrateur avec « /EnableTableEndpoint ».Start emulator from command prompt as an administrator with “/EnableTableEndpoint”. Ensuite, exécutez le code suivant pour vous connecter au compte d’API Table :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

Démarrez l’émulateur à partir d’une invite de commandes administrateur avec « /EnableCassandraEndpoint ».Start emulator from an administrator command prompt with “/EnableCassandraEndpoint”. Vous pouvez également définir la variable d’environnement AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.Alternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_CASSANDRA_ENDPOINT=true.

  • Installez Python 2.7Install Python 2.7

  • Installez Cassandra CLI/CQLSHInstall Cassandra CLI/CQLSH

  • Exécutez les commandes ci-dessous à partir d’une fenêtre d’invite de commandes :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
    
  • Dans l’interpréteur de commandes CQLSH, exécutez les commandes suivantes pour vous connecter au point de terminaison 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 GremlinGremlin API

Démarrez l’émulateur à partir d’une invite de commandes administrateur avec « /EnableGremlinEndpoint ».Start emulator from an administrator command prompt with “/EnableGremlinEndpoint”. Vous pouvez également définir la variable d’environnement AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=trueAlternatively you can also set the environment variable AZURE_COSMOS_EMULATOR_GREMLIN_ENDPOINT=true

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

  • Dans l’Explorateur de données de l’émulateur, créez une base de données « db1 » et une collection « coll1 » ; pour la clé de partition, définissez le nom avec « /name »In the emulator’s Data Explorer create a database "db1" and a collection "coll1"; for the partition key, choose "/name"

  • Exécutez les commandes ci-dessous à partir d’une fenêtre d’invite de commandes :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
    
  • Dans l’interpréteur de commandes Gremlin, exécutez les commandes suivantes pour vous connecter au point de terminaison 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()
    

Exporter le certificat SSLExport the SSL certificate

Les langages .NET et le runtime utilisent le magasin de certificats Windows pour se connecter en toute sécurité à l’émulateur local Azure Cosmos DB..NET languages and runtime use the Windows Certificate Store to securely connect to the Azure Cosmos DB local emulator. D’autres langages ont leur propre méthode de gestion et de l’utilisation des certificats.Other languages have their own method of managing and using certificates. Java utilise son propre magasin de certificats, tandis que Python utilise des wrappers de socket.Java uses its own certificate store whereas Python uses socket wrappers.

Pour obtenir un certificat à utiliser avec les langages et les runtimes qui ne s’intègrent pas au magasin de certificats Windows, vous devrez l’exporter à l’aide du Gestionnaire de certificats 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. Vous pouvez le démarrer en exécutant le fichier certlm.msc ou suivre les instructions étape par étape fournies dans Exporter les certificats de l’émulateur Azure Cosmos.You can start it by running certlm.msc or follow the step by step instructions in Export the Azure Cosmos Emulator Certificates. Une fois le certificat en cours d’exécution, ouvrez les certificats personnels comme indiqué ci-dessous et exportez le certificat avec le nom convivial "DocumentDBEmulatorCertificate" en tant que fichier X.509 (.cer) codé en Base 64.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.

Certificat SSL de l’émulateur local Azure Cosmos DB

Le certificat X.509 peut être importé dans le magasin de certificats Java en suivant les instructions de la publication Ajout d’un certificat au magasin de certificats d’autorité de certification 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. Une fois le certificat importé dans le magasin de certificats, les clients pour l’API SQL et l’API d’Azure Cosmos DB pour MongoDB peuvent se connecter à l’émulateur 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.

Lors de la connexion à l’émulateur à partir des Kits de développement logiciel (SDK) Python et Node.js, la vérification SSL est désactivée.When connecting to the emulator from Python and Node.js SDKs, SSL verification is disabled.

Référence sur l’outil en ligne de commandeCommand-line tool reference

À partir de l’emplacement d’installation, vous pouvez utiliser la ligne de commande pour démarrer et arrêter l’émulateur, configurer les options et effectuer d’autres opérations.From the installation location, you can use the command-line to start and stop the emulator, configure options, and perform other operations.

Syntaxe de ligne de commandeCommand-line syntax

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

Pour afficher la liste des options, tapez CosmosDB.Emulator.exe /? dans l’invite de commandes.To view the list of options, type CosmosDB.Emulator.exe /? at the command prompt.

OptionOption DescriptionDescription CommandeCommand ArgumentsArguments
[aucun argument][No arguments] Démarre l’émulateur Azure Cosmos avec les paramètres par défaut.Starts up the Azure Cosmos Emulator with default settings. CosmosDB.Emulator.exeCosmosDB.Emulator.exe
[Aide][Help] Affiche la liste des arguments de ligne de commande pris en charge.Displays the list of supported command-line arguments. CosmosDB.Emulator.exe /?CosmosDB.Emulator.exe /?
GetStatusGetStatus Obtient l’état de l’émulateur Azure Cosmos.Gets the status of the Azure Cosmos Emulator. L’état est indiqué par le code de sortie : 1 = démarrage, 2 = exécution, 3 = arrêté.The status is indicated by the exit code: 1 = Starting, 2 = Running, 3 = Stopped. Un code de sortie négatif indique qu’une erreur s’est produite.A negative exit code indicates that an error occurred. Aucune autre sortie n’est générée.No other output is produced. CosmosDB.Emulator.exe /GetStatusCosmosDB.Emulator.exe /GetStatus
ShutdownShutdown Arrête l’émulateur Azure Cosmos.Shuts down the Azure Cosmos Emulator. CosmosDB.Emulator.exe /ShutdownCosmosDB.Emulator.exe /Shutdown
DataPathDataPath Spécifie le chemin d’accès dans lequel stocker les fichiers de données.Specifies the path in which to store data files. La valeur par défaut est %LocalAppdata%\CosmosDBEmulator.Default value is %LocalAppdata%\CosmosDBEmulator. CosmosDB.Emulator.exe /DataPath=<datapath>CosmosDB.Emulator.exe /DataPath=<datapath> <datapath> : Un chemin accessible<datapath>: An accessible path
PortPort Spécifie le numéro de port à utiliser pour l'émulateur.Specifies the port number to use for the emulator. La valeur par défaut est 8081.Default value is 8081. CosmosDB.Emulator.exe /Port=<port>CosmosDB.Emulator.exe /Port=<port> <port> : Numéro de port unique<port>: Single port number
ComputePortComputePort Spécifie le numéro de port à utiliser pour le service de passerelle Interop Compute.Specified the port number to use for the Compute Interop Gateway service. Le port de sonde du point de terminaison HTTP de la passerelle est calculé comme étant égal à ComputePort + 79.The Gateway's HTTP endpoint probe port is calculated as ComputePort + 79. Par conséquent, les ports ComputePort et ComputePort + 79 doivent être ouverts et disponibles.Hence, ComputePort and ComputePort + 79 must be open and available. Les valeurs par défaut sont 8900 et 8979.The default values are 8900, 8979. CosmosDB.Emulator.exe /ComputePort = <computeport>CosmosDB.Emulator.exe /ComputePort = <computeport> <computeport> : Numéro de port unique<computeport>: Single port number
EnableMongoDbEndpointEnableMongoDbEndpoint Active l’API MongoDBEnables MongoDB API CosmosDB.Emulator.exe /EnableMongoDbEndpointCosmosDB.Emulator.exe /EnableMongoDbEndpoint
MongoPortMongoPort Spécifie le numéro de port à utiliser pour l'API de compatibilité MongoDB.Specifies the port number to use for MongoDB compatibility API. La valeur par défaut est 10255.Default value is 10255. CosmosDB.Emulator.exe /MongoPort= <mongoport>CosmosDB.Emulator.exe /MongoPort= <mongoport> <mongoport> : Numéro de port unique<mongoport>: Single port number
EnableCassandraEndpointEnableCassandraEndpoint Active l’API CassandraEnables Cassandra API CosmosDB.Emulator.exe /EnableCassandraEndpointCosmosDB.Emulator.exe /EnableCassandraEndpoint
CassandraPortCassandraPort Spécifie le numéro de port à utiliser pour le point de terminaison Cassandra.Specifies the port number to use for the Cassandra endpoint. La valeur par défaut est 10350.Default value is 10350. CosmosDB.Emulator.exe /CassandraPort = <cassandraport>CosmosDB.Emulator.exe /CassandraPort = <cassandraport> <cassandraport> : Numéro de port unique<cassandraport>: Single port number
EnableGremlinEndpointEnableGremlinEndpoint Active l’API GremlinEnables Gremlin API CosmosDB.Emulator.exe /EnableGremlinEndpointCosmosDB.Emulator.exe /EnableGremlinEndpoint
GremlinPortGremlinPort Numéro de port à utiliser pour le point de terminaison Gremlin.Port number to use for the Gremlin Endpoint. La valeur par défaut est 8901.Default value is 8901. CosmosDB.Emulator.exe /GremlinPort=<port>CosmosDB.Emulator.exe /GremlinPort=<port> <port> : Numéro de port unique<port>: Single port number
EnableTableEndpointEnableTableEndpoint Active l’API Table AzureEnables Azure Table API CosmosDB.Emulator.exe /EnableTableEndpointCosmosDB.Emulator.exe /EnableTableEndpoint
TablePortTablePort Numéro de port à utiliser pour le point de terminaison Table Azure.Port number to use for the Azure Table Endpoint. La valeur par défaut est 8902.Default value is 8902. CosmosDB.Emulator.exe /TablePort=<port>CosmosDB.Emulator.exe /TablePort=<port> <port> : Numéro de port unique<port>: Single port number
KeyFileKeyFile Lit la clé d’autorisation dans le fichier spécifié.Read authorization key from the specified file. Utilisez l’option /GenKeyFile pour générer un fichier de cléUse the /GenKeyFile option to generate a keyfile CosmosDB.Emulator.exe /KeyFile=<file_name>CosmosDB.Emulator.exe /KeyFile=<file_name> <file_name> : chemin du fichier<file_name>: Path to the file
ResetDataPathResetDataPath Supprime de manière récursive tous les fichiers du chemin spécifié.Recursively removes all the files in the specified path. Si vous ne spécifiez pas de chemin, le chemin par défaut est %LOCALAPPDATA%\CosmosDbEmulatorIf you don't specify a path, it defaults to %LOCALAPPDATA%\CosmosDbEmulator CosmosDB.Emulator.exe /ResetDataPath=<chemin>CosmosDB.Emulator.exe /ResetDataPath=<path> <path> : Chemin de fichier<path>: File path
StartTracesStartTraces Démarre la collecte des journaux de trace du débogage.Start collecting debug trace logs. CosmosDB.Emulator.exe /StartTracesCosmosDB.Emulator.exe /StartTraces
StopTracesStopTraces Arrête la collecte des journaux de trace du débogage.Stop collecting debug trace logs. CosmosDB.Emulator.exe /StopTracesCosmosDB.Emulator.exe /StopTraces
FailOnSslCertificateNameMismatchFailOnSslCertificateNameMismatch Par défaut, l’émulateur regénère son certificat SSL auto-signé, si le réseau SAN du certificat n’inclut pas les informations de l’hôte émulateur (nom de domaine, adresse IPv4 locale, « localhost » et « 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'. Avec cette option, l’émulateur échoue au démarrage.With this option, the emulator will fail at startup instead. Vous devez alors utiliser l’option /GenCert pour créer et installer un nouveau certificat SSL auto-signé.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 Génère et installe un nouveau certificat SSL auto-signé,Generate and install a new self-signed SSL certificate. incluant de manière facultative une liste de noms DNS supplémentaires séparés par des virgules pour accéder à l’émulateur via le réseau.optionally including a comma-separated list of additional DNS names for accessing the Emulator over the network. CosmosDB.Emulator.exe /GenCert=<noms-dns>CosmosDB.Emulator.exe /GenCert=<dns-names> <noms-dns> : Liste de noms DNS supplémentaires séparés par des virgules (facultatif)<dns-names>: Optional comma-separated list of additional dns names
DirectPortsDirectPorts Spécifie les ports à utiliser pour une connectivité directe.Specifies the ports to use for direct connectivity. Les valeurs par défaut sont 10251,10252,10253,10254.Defaults are 10251,10252,10253,10254. CosmosDB.Emulator.exe /DirectPorts:<directports>CosmosDB.Emulator.exe /DirectPorts:<directports> <directports> : Liste de 4 ports séparée par des virgules<directports>: Comma-delimited list of 4 ports
CléKey Clé d’autorisation pour l’émulateur.Authorization key for the emulator. La clé doit être le codage en base 64 d’un vecteur de 64 octets.Key must be the base-64 encoding of a 64-byte vector. CosmosDB.Emulator.exe /Key:<key>CosmosDB.Emulator.exe /Key:<key> <clé> : La clé doit être le codage en base 64 d’un vecteur de 64 octets<key>: Key must be the base-64 encoding of a 64-byte vector
EnableRateLimitingEnableRateLimiting Spécifie que le comportement de limitation de taux de demandes est activé.Specifies that request rate limiting behavior is enabled. CosmosDB.Emulator.exe /EnableRateLimitingCosmosDB.Emulator.exe /EnableRateLimiting
DisableRateLimitingDisableRateLimiting Spécifie que le comportement de limitation de taux de demandes est désactivé.Specifies that request rate limiting behavior is disabled. CosmosDB.Emulator.exe /DisableRateLimitingCosmosDB.Emulator.exe /DisableRateLimiting
NoUINoUI Ne pas afficher l’interface utilisateur de l’émulateur.Do not show the emulator user interface. CosmosDB.Emulator.exe /NoUICosmosDB.Emulator.exe /NoUI
NoExplorerNoExplorer Ne pas afficher l’Explorateur de données au démarrage.Don't show data explorer on startup. CosmosDB.Emulator.exe /NoExplorerCosmosDB.Emulator.exe /NoExplorer
PartitionCountPartitionCount Spécifie le nombre maximal de conteneurs partitionnés.Specifies the maximum number of partitioned containers. Pour plus d’informations, consultez Changer le nombre de conteneurs.See Change the number of containers for more information. CosmosDB.Emulator.exe /PartitionCount=<partitioncount>CosmosDB.Emulator.exe /PartitionCount=<partitioncount> <partitionCount> : nombre maximal de conteneurs à partition unique autorisés.<partitioncount>: Maximum number of allowed single partition containers. La valeur par défaut est 25.Default value is 25. Valeur maximale autorisée : 250.Maximum allowed is 250.
DefaultPartitionCountDefaultPartitionCount Spécifie le nombre par défaut de partitions pour un conteneur partitionné.Specifies the default number of partitions for a partitioned container. CosmosDB.Emulator.exe /DefaultPartitionCount =<defaultpartitioncount>CosmosDB.Emulator.exe /DefaultPartitionCount=<defaultpartitioncount> <defaultpartitioncount> : la valeur par défaut est 25.<defaultpartitioncount> Default value is 25.
AllowNetworkAccessAllowNetworkAccess Permet d’accéder à l’émulateur sur un réseau.Enables access to the emulator over a network. Vous devez également passer/Key =<key_string> ou/keyfile =<nom_fichier> pour activer l’accès réseau.You must also pass /Key=<key_string> or /KeyFile=<file_name> to enable network access. CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<chaîne_clé> ou CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<nom_fichier>CosmosDB.Emulator.exe /AllowNetworkAccess /Key=<key_string> or CosmosDB.Emulator.exe /AllowNetworkAccess /KeyFile=<file_name>
NoFirewallNoFirewall Ne pas ajuster les règles de pare-feu quand l’option /AllowNetworkAccess est utilisée.Don't adjust firewall rules when /AllowNetworkAccess option is used. CosmosDB.Emulator.exe /NoExplorerCosmosDB.Emulator.exe /NoFirewall
GenKeyFileGenKeyFile Générer une nouvelle clé d’autorisation et Générer une nouvelle clé d’autorisation et l’enregistrer dans le fichier spécifié.Generate a new authorization key and save to the specified file. La clé générée peut être utilisée avec les options /Key or /KeyFile.The generated key can be used with the /Key or /KeyFile options. CosmosDB.Emulator.exe /GenKeyFile=<chemin vers le fichier de clé>CosmosDB.Emulator.exe /GenKeyFile=<path to key file>
CohérenceConsistency Définir le niveau de cohérence par défaut pour le compte.Set the default consistency level for the account. CosmosDB.Emulator.exe /Consistency=<consistency>CosmosDB.Emulator.exe /Consistency=<consistency> <cohérence> : La valeur doit être l’un des niveaux de cohérence suivants : Session, Strong, Eventual ou BoundedStaleness.<consistency>: Value must be one of the following consistency levels: Session, Strong, Eventual, or BoundedStaleness. La valeur par défaut est Session.The default value is Session.
?? Afficher le message d’aide.Show the help message.

Changer le nombre de conteneursChange the number of containers

Par défaut, vous pouvez créer jusqu’à 25 conteneurs de taille fixe (pris en charge uniquement avec les SDK Azure Cosmos DB), ou cinq conteneurs illimités avec l’émulateur 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. En changeant la valeur PartitionCount, vous pouvez créer jusqu’à 250 conteneurs de taille fixe ou 50 conteneurs illimités, ou n’importe quelle combinaison des deux à hauteur de 250 conteneurs de taille fixe au total (sachant qu’un conteneur illimité est égal à cinq conteneurs de taille fixe).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). Toutefois, il est déconseillé de configurer l’émulateur pour s’exécuter avec plus de 200 conteneurs de taille fixe.However it's not recommended to set up the emulator to run with more than 200 fixed size containers. En effet, cela ajoute une surcharge aux opérations d’E/S sur le disque, qui entraîne des délais d’attente imprévisibles lors de l’utilisation des API de point de terminaison.Because of the overhead that it adds to the disk IO operations, which result in unpredictable timeouts when using the endpoint APIs.

Si vous tentez de créer un conteneur après le dépassement du nombre de partitions actuel, l’émulateur lève une exception ServiceUnavailable et affiche un message similaire à celui-ci.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.

« Nous sommes désolés, mais nous rencontrons actuellement une demande élevée dans cette région et nous ne pouvons pas répondre à votre demande pour l’instant."Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time. Nous nous efforçons d’offrir une capacité en ligne toujours plus grande, et nous vous encourageons à réessayer plus tard.We work continuously to bring more and more capacity online, and encourage you to try again. N’hésitez pas à nous contacter par e-mail à l’adresse askcosmosdb@microsoft.com à tout moment et pour quelque raison que ce soit.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"

Pour changer le nombre de conteneurs disponibles dans l’émulateur Azure Cosmos, effectuez les étapes suivantes :To change the number of containers available in the Azure Cosmos Emulator, run the following steps:

  1. Supprimez toutes les données locales de l’émulateur Azure Cosmos en cliquant avec le bouton droit sur l’icône Émulateur Azure Cosmos DB dans la zone d’état, puis en cliquant sur Reset Data... (Réinitialiser les données...).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. Supprimez toutes les données de l’émulateur dans le dossier %LOCALAPPDATA%\CosmosDBEmulator.Delete all emulator data in this folder %LOCALAPPDATA%\CosmosDBEmulator.
  3. Quittez toutes les instances ouvertes en cliquant avec le bouton droit sur l’icône Émulateur Azure Cosmos DB dans la zone d’état, puis en cliquant sur Quitter.Exit all open instances by right-clicking the Azure Cosmos DB Emulator icon on the system tray, and then clicking Exit. Quitter l’ensemble des instances peut prendre une minute.It may take a minute for all instances to exit.
  4. Installez la dernière version de l’émulateur Azure Cosmos.Install the latest version of the Azure Cosmos Emulator.
  5. Lancez l’émulateur avec l’indicateur PartitionCount en définissant une valeur <= 250.Launch the emulator with the PartitionCount flag by setting a value <= 250. Par exemple : 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.

Contrôle de l’émulateurControlling the emulator

L’émulateur est fourni avec un module PowerShell que vous pouvez utiliser pour démarrer, arrêter et désinstaller le service, et récupérer son état.The emulator comes with a PowerShell module to start, stop, uninstall, and retrieve the status of the service. Exécutez l’applet de commande suivante pour utiliser le module PowerShell :Run the following cmdlet to use the PowerShell module:

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

Vous pouvez aussi placer le répertoire PSModules dans PSModulesPath et importer le module en utilisant la commande suivante :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

Voici un récapitulatif des commandes permettant de contrôler l’émulateur à partir de PowerShell :Here is a summary of the commands for controlling the emulator from PowerShell:

Get-CosmosDbEmulatorStatus

SyntaxeSyntax

Get-CosmosDbEmulatorStatus

RemarquesRemarks

Retourne une des valeurs ServiceControllerStatus suivantes : ServiceControllerStatus.StartPending, ServiceControllerStatus.Running ou ServiceControllerStatus.Stopped.Returns one of these ServiceControllerStatus values: ServiceControllerStatus.StartPending, ServiceControllerStatus.Running, or ServiceControllerStatus.Stopped.

Start-CosmosDbEmulator

SyntaxeSyntax

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

RemarquesRemarks

Démarre l’émulateur.Starts the emulator. Par défaut, la commande attend que l’émulateur soit prêt à accepter les requêtes.By default, the command waits until the emulator is ready to accept requests. Utilisez l’option -NoWait si vous souhaitez que l’applet de commande soit retournée dès le démarrage de l’émulateur.Use the -NoWait option, if you wish the cmdlet to return as soon as it starts the emulator.

Stop-CosmosDbEmulator

SyntaxeSyntax

Stop-CosmosDbEmulator [-NoWait]

RemarquesRemarks

Arrête l’émulateur.Stops the emulator. Par défaut, cette commande attend que l’émulateur soit complètement arrêté.By default, this command waits until the emulator is fully shut down. Utilisez l’option -NoWait si vous souhaitez que l’applet de commande soit retournée dès le début du processus d’arrêt de l’émulateur.Use the -NoWait option, if you wish the cmdlet to return as soon as the emulator begins to shut down.

Uninstall-CosmosDbEmulator

SyntaxeSyntax

Uninstall-CosmosDbEmulator [-RemoveData]

RemarquesRemarks

Désinstalle l’émulateur et supprime éventuellement l’intégralité du contenu de $env:LOCALAPPDATA\CosmosDbEmulator.Uninstalls the emulator and optionally removes the full contents of $env:LOCALAPPDATA\CosmosDbEmulator. L’applet de commande garantit que l’émulateur est arrêté avant d’être désinstallé.The cmdlet ensures the emulator is stopped before uninstalling it.

Exécution sur DockerRunning on Docker

L’émulateur Azure Cosmos peut être exécuté sur Docker pour Windows.The Azure Cosmos Emulator can be run on Docker for Windows. L’émulateur ne fonctionne pas sur Docker pour Oracle Linux.The emulator does not work on Docker for Oracle Linux.

Une fois Docker pour Windows installé, basculez vers les conteneurs Windows en double-cliquant sur l’icône Docker dans la barre d’outils et en sélectionnant Switch to Windows containers (Basculer vers les conteneurs 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.

Ensuite, extrayez l’image de l’émulateur à partir de Docker Hub en exécutant la commande suivante à partir de l’interpréteur de commandes de votre choix.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

Pour démarrer l’image, exécutez les commandes suivantes :To start the image, run the following commands.

À partir de la ligne de commande :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

Notes

Si vous voyez une erreur de conflit de port (le port spécifié est déjà utilisé) quand vous exécutez la commande docker run, vous pouvez transmettre un port personnalisé en modifiant les numéros de port.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. Par exemple, vous pouvez remplacer « -p 8081:8081 » par « -p 443:8081 ».For example, you can change the "-p 8081:8081" to "-p 443:8081"

À partir de 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 réponse ressemble à ce qui suit :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

Utilisez maintenant le point de terminaison et la clé principale de la réponse sur votre client et importez le certificat SSL sur votre hôte.Now use the endpoint and master key-in from the response in your client and import the SSL certificate into your host. Pour importer le certificat SSL, procédez comme suit à partir d’une invite de commandes administrateur :To import the SSL certificate, do the following from an admin command prompt:

À partir de la ligne de commande :From the command-line:

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

À partir de PowerShell :From PowerShell:

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

Si vous fermez l’interpréteur de commandes interactif une fois que l’émulateur a démarré, le conteneur de l’émulateur s’arrête.Closing the interactive shell once the emulator has been started will shut down the emulator’s container.

Pour ouvrir l’Explorateur de données, accédez à l’URL suivante dans votre navigateur.To open the Data Explorer, navigate to the following URL in your browser. Le point de terminaison de l’émulateur est fourni dans le message de réponse ci-dessus.The emulator endpoint is provided in the response message shown above.

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

Exécution sur Mac ou LinuxRunning on Mac or Linux

Actuellement, l’émulateur Cosmos peut uniquement être exécuté sur Windows.Currently the Cosmos emulator can only be run on Windows. Les utilisateurs sous Mac ou Linux peuvent exécuter l’émulateur sur une machine virtuelle Windows hébergée sur un hyperviseur comme Parallels ou VirtualBox.Users running Mac or Linux can run the emulator in a Windows virtual machine hosted a hypervisor such as Parallels or VirtualBox. Voici les étapes pour activer cela.Below are the steps to enable this.

Dans la machine virtuelle Windows, exécutez la commande suivante et notez l’adresse IPv4.Within the Windows VM run the command below and make note of the IPv4 address.

ipconfig.exe

Au sein de votre application, vous devez modifier l’URI de l’objet DocumentClient pour utiliser l’adresse IPv4 retournée par ipconfig.exe.Within your application you need to change the URI for the DocumentClient object to use the IPv4 address returned by ipconfig.exe. L’étape suivante consiste à contourner la validation de l’autorité de certification lors de la construction de l’objet DocumentClient.The next step is to work around the CA validation when constructing the DocumentClient object. Pour ce faire, vous devez fournir un objet HttpClientHandler au constructeur DocumentClient, qui a sa propre implémentation pour ServerCertificateCustomValidationCallback.For this you will need to provide an HttpClientHandler to the DocumentClient constructor, which has it's own implementation for ServerCertificateCustomValidationCallback.

Voici à quoi devrait ressembler le code.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}");
            }
        }
    }
}

Enfin, à partir de la machine virtuelle Windows, lancez l’émulateur Cosmos à partir de la ligne de commande avec les options suivantes.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==

Résolution de problèmesTroubleshooting

Aidez-vous des conseils suivants pour résoudre les problèmes rencontrés avec l’émulateur Azure Cosmos :Use the following tips to help troubleshoot issues you encounter with the Azure Cosmos Emulator:

  • Si vous avez installé une nouvelle version de l’émulateur et si vous rencontrez des erreurs, réinitialisez vos données.If you installed a new version of the emulator and are experiencing errors, ensure you reset your data. Pour réinitialiser vos données, cliquez avec le bouton droit sur l’icône de l’émulateur Azure Cosmos dans la zone d’état, puis cliquez sur Réinitialiser les données….You can reset your data by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Reset Data…. Si cela ne résout pas les erreurs, désinstallez l’émulateur et toute autre version ultérieure de l’émulateur détectée, supprimez le répertoire « C:\Program files\Azure Cosmos DB Emulator » et réinstallez l’émulateur.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. Pour obtenir des instructions, consultez Désinstaller l’émulateur local.See Uninstall the local emulator for instructions.

  • Si l’émulateur Azure Cosmos plante, collectez les fichiers de vidage du dossier « %LOCALAPPDATA%\CrashDumps », compressez-les et joignez-les à un e-mail que vous envoyez à l’adresse 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 des problèmes de plantage se produisent dans Microsoft.Azure.Cosmos.ComputeServiceStartupEntryPoint.exe, cela peut être le symptôme d’un état endommagé d’un compteur de performances.If you experience crashes in Microsoft.Azure.Cosmos.ComputeServiceStartupEntryPoint.exe, this might be a symptom where the Performance Counters are in a corrupted state. Généralement, l’exécution de la commande suivante à partir d’une invite de commandes administrateur résout le problème :Usually running the following command from an admin command prompt fixes the issue:

    lodctr /R
    
  • Si vous rencontrez un problème de connectivité, collectez les fichiers de trace, compressez-les et joignez-les à un e-mail à 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 vous recevez un message Service indisponible, il se peut que l’émulateur n’arrive pas à initialiser la pile réseau.If you receive a Service Unavailable message, the emulator might be failing to initialize the network stack. Vérifiez si les clients Pulse Secure ou Juniper Networks sont installés, car leurs pilotes de filtre réseau peuvent être à l’origine du problème.Check to see if you have the Pulse secure client or Juniper networks client installed, as their network filter drivers may cause the problem. La désinstallation des pilotes de filtre de réseau tiers permet généralement de résoudre le problème.Uninstalling third-party network filter drivers typically fixes the issue. Vous pouvez également démarrer l’émulateur avec l’option /DisableRIO, pour passer la communication réseau de l’émulateur à Winsock standard.Alternatively, start the emulator with /DisableRIO, which will switch the emulator network communication to regular Winsock.

  • Lorsque l’émulateur est en cours d’exécution, si votre ordinateur se met en mode veille ou exécute une mise à jour du système d’exploitation, le message Le service est actuellement indisponible peut s’afficher.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. Réinitialisez les données de l’émulateur en cliquant avec le bouton droit sur l’icône qui apparaît dans la zone de notification Windows, puis en sélectionnant Réinitialiser les données.Reset the emulator's data, by right-clicking on the icon that appears on the windows notification tray and select Reset Data.

Collecter les fichiers de traceCollect trace files

Pour collecter des traces de débogage, exécutez les commandes suivantes à partir d’une invite de commande d’administration :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. Regardez la barre d’état système pour vérifier que le programme s’est arrêté ; l’arrêt peut prendre une minute.Watch the system tray to make sure the program has shut down, it may take a minute. Vous pouvez aussi simplement cliquer sur Quitter dans l’interface utilisateur de l’émulateur 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. Reproduisez le problème.Reproduce the problem. Si l’Explorateur de données ne fonctionne pas, attendez quelques secondes pour que le navigateur s’ouvre afin d’intercepter l’erreur.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. Accédez à %ProgramFiles%\Azure Cosmos DB Emulator et recherchez le fichier docdbemulator_000001.etl.Navigate to %ProgramFiles%\Azure Cosmos DB Emulator and find the docdbemulator_000001.etl file.
  8. Envoyez le fichier .etl ainsi que les étapes de reproduction à askcosmosdb@microsoft.com pour le débogage.Send the .etl file along with repro steps to askcosmosdb@microsoft.com for debugging.

Désinstaller l’émulateur localUninstall the local emulator

  1. Quittez toutes les instances ouvertes de l’émulateur local en cliquant avec le bouton droit sur l’icône de l’émulateur Azure Cosmos dans la barre d’état système, puis en cliquant sur Quitter.Exit all open instances of the local emulator by right-clicking the Azure Cosmos Emulator icon on the system tray, and then clicking Exit. Quitter l’ensemble des instances peut prendre une minute.It may take a minute for all instances to exit.
  2. Dans la zone de recherche Windows, tapez Applications et fonctionnalités, puis cliquez sur le résultat Applications et fonctionnalités (paramètres système) .In the Windows search box, type Apps & features and click on the Apps & features (System settings) result.
  3. Dans la liste des applications, faites défiler la page jusqu’à trouver Émulateur Azure Cosmos DB, sélectionnez-le, cliquez sur Désinstaller, puis confirmez en cliquant de nouveau sur Désinstaller.In the list of apps, scroll to Azure Cosmos DB Emulator, select it, click Uninstall, then confirm and click Uninstall again.
  4. Lorsque l’application est désinstallée, accédez à %LOCALAPPDATA%\CosmosDBEmulator et supprimez le dossier.When the app is uninstalled, navigate to %LOCALAPPDATA%\CosmosDBEmulator and delete the folder.

Étapes suivantesNext steps

Dans ce didacticiel, vous avez appris à utiliser l’émulateur local pour un développement local gratuit.In this tutorial, you've learned how to use the local emulator for free local development. Vous pouvez maintenant passer à l’étape suivante du didacticiel et découvrir comment exporter les certificats SSL de l’émulateur.You can now proceed to the next tutorial and learn how to export emulator SSL certificates.