Un cas d’usage courant pour l’émulateur consiste à servir de base de données de développement pendant que vous générez vos applications. L’utilisation de l’émulateur pour le développement peut vous aider à découvrir les caractéristiques de création et de modélisation des données pour une base de données comme Azure Cosmos DB sans entraîner de coûts de service. En outre, l’utilisation de l’émulateur dans le cadre d’un workflow d’automatisation peut vous permettre d’exécuter la même suite de tests d’intégration. Vous pouvez vous assurer que les mêmes tests s’exécutent localement sur votre ordinateur de développement et à distance dans un travail d’intégration continue.
Prérequis
Installer l’émulateur
Il existe plusieurs variantes de l’émulateur et chaque variante a un processus d’installation relativement fluide.
Pour commencer, récupérez la variante Linux de l’image conteneur à partir de Microsoft Container Registry (MCR).
Extrayez l’image mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
conteneur Linux du registre de conteneurs vers l’hôte Docker local.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Vérifiez si l’image de l’émulateur est disponible sur votre hôte Docker local.
docker images
Pour commencer, récupérez la variante Windows de l’image conteneur à partir de Microsoft Container Registry (MCR).
Extrayez l’image mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
conteneur Windows du registre de conteneurs vers l’hôte Docker local.
docker pull mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
Vérifiez si l’image de l’émulateur est disponible sur votre hôte Docker local.
docker images
Pour commencer, téléchargez et installez la dernière version de l’émulateur Azure Cosmos DB sur votre ordinateur local.
Conseil
L’article Notes de publication de l’émulateur répertorie toutes les versions disponibles et les mises à jour de fonctionnalités qui ont été effectuées dans chaque version.
Téléchargez l’émulateur Azure Cosmos DB.
Exécutez le programme d’installation sur votre ordinateur local avec des privilèges d’administration.
L’émulateur installe automatiquement les certificats de développement appropriés et configure les règles de pare-feu sur votre ordinateur local.
Pour commencer, récupérez la variante Linux de l’image conteneur à partir de Microsoft Container Registry (MCR).
Extrayez l’image mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
conteneur Linux à l’aide de la mongodb
balise du registre de conteneurs vers l’hôte Docker local.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:mongodb
Vérifiez si l’image de l’émulateur est disponible sur votre hôte Docker local.
docker images
L’image conteneur Docker (Windows) ne prend pas en charge l’API pour MongoDB.
Pour commencer, téléchargez et installez la dernière version de l’émulateur Azure Cosmos DB sur votre ordinateur local.
Conseil
L’article Notes de publication de l’émulateur répertorie toutes les versions disponibles et les mises à jour de fonctionnalités qui ont été effectuées dans chaque version.
Téléchargez l’émulateur Azure Cosmos DB.
Exécutez le programme d’installation sur votre ordinateur local avec des privilèges d’administration.
L’émulateur installe automatiquement les certificats de développement appropriés et configure les règles de pare-feu sur votre ordinateur local.
La variante de conteneur Docker (Linux ou Windows) de l’émulateur ne prend pas en charge l’API pour Apache Cassandra, l’API pour Apache Gremlin ou l’API pour Table.
Pour commencer, téléchargez et installez la dernière version de l’émulateur Azure Cosmos DB sur votre ordinateur local.
Conseil
L’article Notes de publication de l’émulateur répertorie toutes les versions disponibles et les mises à jour de fonctionnalités qui ont été effectuées dans chaque version.
Téléchargez l’émulateur Azure Cosmos DB.
Exécutez le programme d’installation sur votre ordinateur local avec des privilèges d’administration.
L’émulateur installe automatiquement les certificats de développement appropriés et configure les règles de pare-feu sur votre ordinateur local.
Démarrer l’émulateur
Une fois téléchargé, démarrez l’émulateur avec votre API spécifiée activée.
La variante de conteneur Docker de l’émulateur ne prend pas en charge l’API pour Apache Cassandra.
Démarrez l’exécutable de l’émulateur (Microsoft.Azure.Cosmos.Emulator.exe
) au niveau du chemin d’accès %ProgramFiles%\Azure Cosmos DB Emulator
. Utilisez ces paramètres pour configurer l’émulateur :
|
Description |
EnableCassandraEndpoint |
Active le point de terminaison API pour Apache Cassandra. |
CassandraPort |
Numéro de port à utiliser pour le point de terminaison. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint /CassandraPort=65200
L’émulateur ouvre automatiquement l’Explorateur de données à l’aide de l’URL https://localhost:8081/_explorer/index.html
.
La variante de conteneur Docker de l’émulateur ne prend pas en charge l’API pour Apache Gremlin.
Démarrez l’exécutable de l’émulateur (Microsoft.Azure.Cosmos.Emulator.exe
) au niveau du chemin d’accès %ProgramFiles%\Azure Cosmos DB Emulator
. Utilisez ces paramètres pour configurer l’émulateur :
|
Description |
EnableGremlinEndpoint |
Active l’API pour le point de terminaison Apache Gremlin. |
GremlinPort |
Numéro de port à utiliser pour le point de terminaison. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint /GremlinPort=65400
L’émulateur ouvre automatiquement l’Explorateur de données à l’aide de l’URL https://localhost:8081/_explorer/index.html
.
La variante de conteneur Docker de l’émulateur ne prend pas en charge l’API pour Table.
Démarrez l’exécutable de l’émulateur (Microsoft.Azure.Cosmos.Emulator.exe
) au niveau du chemin d’accès %ProgramFiles%\Azure Cosmos DB Emulator
. Utilisez ces paramètres pour configurer l’émulateur :
|
Description |
EnableTableEndpoint |
Active l’API pour le point de terminaison Table. |
TablePort |
Numéro de port à utiliser pour le point de terminaison. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint /TablePort=65500
L’émulateur ouvre automatiquement l’Explorateur de données à l’aide de l’URL https://localhost:8081/_explorer/index.html
.
Exécutez un nouveau conteneur à l’aide de l’image conteneur et de la configuration suivante :
|
Description |
AZURE_COSMOS_EMULATOR_PARTITION_COUNT (Facultatif) |
Spécifiez le nombre de partitions à utiliser. |
AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE (Facultatif) |
Activer la persistance des données entre les exécutions de l’émulateur. |
AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE (Facultatif) |
Remplacez l’adresse IP par défaut de l’émulateur. |
Pour les systèmes Linux, utilisez :
docker run \
--publish 8081:8081 \
--publish 10250-10255:10250-10255 \
--name linux-emulator \
--detach \
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Pour les systèmes Windows, utilisez :
$parameters = @(
"--publish", "8081:8081"
"--publish", "10250-10255:10250-10255"
"--name", "windows-emulator"
"--detach"
)
docker run @parameters mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Accédez à https://localhost:8081/_explorer/index.html
pour accéder à l’Explorateur de données.
Créer un répertoire pour le montage de liaison
Exécutez un nouveau conteneur à l’aide de l’image conteneur.
$parameters = @(
"--publish", "8081:8081"
"--publish", "10250-10255:10250-10255"
"--name", "windows-emulator"
"--detach"
)
docker run @parameters mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
Accédez à https://localhost:8081/_explorer/index.html
pour accéder à l’Explorateur de données.
Démarrez l’émulateur en sélectionnant l’application dans le menu Démarrer de Windows.
Vous pouvez également démarrer l’exécutable de l’émulateur (Microsoft.Azure.Cosmos.Emulator.exe
) au niveau du chemin d’accès %ProgramFiles%\Azure Cosmos DB Emulator
.
Vous pouvez également démarrer l’émulateur à partir de la ligne de commande. Utilisez ces paramètres pour configurer l’émulateur :
|
Description |
Port |
Numéro de port à utiliser pour le point de terminaison API for NoSQL. |
Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
L’émulateur ouvre automatiquement l’Explorateur de données à l’aide de l’URL https://localhost:8081/_explorer/index.html
.
Exécutez un nouveau conteneur à l’aide de l’image conteneur et de la configuration suivante :
|
Description |
AZURE_COSMOS_EMULATOR_ENABLE_MONGODB_ENDPOINT |
Spécifiez la version du point de terminaison MongoDB à utiliser. Les points de terminaison pris en charge sont les suivants : 3.2 , 3.6 ou 4.0 . |
AZURE_COSMOS_EMULATOR_PARTITION_COUNT (Facultatif) |
Spécifiez le nombre de partitions à utiliser. |
AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE (Facultatif) |
Activer la persistance des données entre les exécutions de l’émulateur. |
AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE (Facultatif) |
Remplacez l’adresse IP par défaut de l’émulateur. |
Pour les systèmes Linux, utilisez :
docker run \
--publish 8081:8081 \
--publish 10250:10250 \
--env AZURE_COSMOS_EMULATOR_ENABLE_MONGODB_ENDPOINT=4.0 \
--name linux-emulator \
--detach \
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:mongodb
Pour les systèmes Windows, utilisez :
$parameters = @(
"--publish", "8081:8081"
"--publish", "10250:10250"
"--env", "AZURE_COSMOS_EMULATOR_ENABLE_MONGODB_ENDPOINT=4.0"
"--name", "windows-emulator"
"--detach"
)
docker run @parameters mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:mongodb
Accédez à https://localhost:8081/_explorer/index.html
pour accéder à l’Explorateur de données.
L’image conteneur Docker (Windows) ne prend pas en charge l’API pour MongoDB.
Démarrez l’exécutable de l’émulateur (Microsoft.Azure.Cosmos.Emulator.exe
) au niveau du chemin d’accès %ProgramFiles%\Azure Cosmos DB Emulator
. Utilisez ces paramètres pour configurer l’émulateur :
|
Description |
EnableMongoDbEndpoint |
Active l’API pour le point de terminaison MongoDB à la version MongoDB spécifiée. |
MongoPort |
Numéro de port à utiliser pour le point de terminaison. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0 /MongoPort=65200
Remarque
Pour plus d’informations sur les arguments de ligne de commande et les versions MongoDB prises en charge par l’émulateur, consultez Paramètres de ligne de commande.
L’émulateur ouvre automatiquement l’Explorateur de données à l’aide de l’URL https://localhost:8081/_explorer/index.html
.
Importer le certificat TLS/SSL de l'émulateur
Importez le certificat TLS/SSL de l'émulateur pour utiliser l'émulateur avec votre kit SDK de développement préféré sans désactiver TLS/SSL sur le client.
La variante de conteneur Docker (Linux ou Windows) de l’émulateur ne prend pas en charge l’API pour Apache Cassandra, l’API pour Apache Gremlin ou l’API pour Table.
L’installation locale Windows de l’émulateur importe automatiquement les certificats TLS/SSL. Aucune action supplémentaire n’est nécessaire.
Le certificat de l'émulateur est disponible sur le chemin d'accès _explorer/emulator.pem
sur le conteneur en cours d'exécution. Utilisez curl
pour télécharger le certificat depuis conteneur en cours d’exécution sur votre ordinateur local.
Obtenez le certificat à partir du conteneur en cours d’exécution.
Pour les systèmes Linux, utilisez :
curl --insecure https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
Pour les systèmes Windows, utilisez :
$parameters = @{
Uri = 'https://localhost:8081/_explorer/emulator.pem'
Method = 'GET'
OutFile = 'emulatorcert.crt'
SkipCertificateCheck = $True
}
Invoke-WebRequest @parameters
Regénérez le bundle de certificats à l’aide de la commande appropriée pour votre système d’exploitation.
Pour les systèmes Linux basés sur Debian (par exemple Ubuntu), utilisez :
sudo update-ca-certificates
Pour les systèmes Linux basés sur Red Hat (par exemple CentOS, Fedora), utilisez :
sudo update-ca-trust
Pour les systèmes Windows, utilisez :
certutil -f -addstore "Root" ~/emulatorcert.crt
Pour obtenir des instructions plus détaillées, consultez la documentation spécifique à votre système d’exploitation.
L’image conteneur Docker (Windows) ne prend pas en charge l’API pour MongoDB.
L’installation locale Windows de l’émulateur importe automatiquement les certificats TLS/SSL. Aucune action supplémentaire n’est nécessaire.
Le certificat de l'émulateur est disponible sur le chemin d'accès /_explorer/emulator.pem
sur le conteneur en cours d'exécution.
Téléchargez le certificat du conteneur en cours d’exécution sur votre machine locale.
Pour les systèmes Linux, utilisez :
curl --insecure https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
Pour les systèmes Windows, utilisez :
$parameters = @{
Uri = 'https://localhost:8081/_explorer/emulator.pem'
Method = 'GET'
OutFile = 'emulatorcert.crt'
SkipCertificateCheck = $True
}
Invoke-WebRequest @parameters
Remarque
Il peut être nécessaire de changer l’hôte (ou l’adresse IP) et le numéro de port si vous avez déjà modifié ces valeurs.
Installez le certificat selon le processus généralement utilisé pour votre système d’exploitation. Par exemple dans Linux, vous copiez le certificat dans le chemin /usr/local/share/ca-certificates/
.
Pour les systèmes Linux, utilisez :
cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
Pour les systèmes Windows, utilisez :
$parameters = @{
FilePath = 'emulatorcert.crt'
CertStoreLocation = 'Cert:\CurrentUser\Root'
}
Import-Certificate @parameters
Pour les systèmes Linux, regénérez le bundle de certificats à l’aide de la commande appropriée pour votre distribution Linux.
Pour les systèmes Linux basés sur Debian (par exemple Ubuntu), utilisez :
sudo update-ca-certificates
Pour les systèmes Linux basés sur Red Hat (par exemple CentOS, Fedora), utilisez :
sudo update-ca-trust
Pour obtenir des instructions plus détaillées, consultez la documentation spécifique à votre système d’exploitation.
Le certificat de l’émulateur est disponible dans le dossier C:\CosmosDB.Emulator\bind-mount
du conteneur en cours d’exécution. Le dossier contient également un script permettant d’installer automatiquement le certificat.
Utilisez docker cp
pour copier l’ensemble du dossier sur votre machine locale.
docker cp windows-emulator:C:\CosmosDB.Emulator\bind-mount .
Exécutez le script importcert.ps1 dans le dossier.
.\bind-mount\importcert.ps1
L’installation locale Windows de l’émulateur importe automatiquement les certificats TLS/SSL. Aucune action supplémentaire n’est nécessaire.
Se connecter à l’émulateur à partir du Kit de développement logiciel (SDK)
Chaque KIT de développement logiciel (SDK) inclut une classe de client généralement utilisée pour connecter le KIT de développement logiciel (SDK) à votre compte Azure Cosmos DB. En utilisant les informations d'identification de l'émulateur, vous pouvez connecter le kit SDK à l'instance de l'émulateur à la place.
Utilisez le Kit de développement logiciel (SDK) .NET De l’API Azure Cosmos DB pour NoSQL pour vous connecter à l’émulateur à partir d’une application .NET.
Démarrez dans un dossier vide.
Créez une application console .NET
dotnet new console
Ajoutez le package Microsoft.Azure.Cosmos
à partir de NuGet.
dotnet add package Microsoft.Azure.Cosmos
Ouvrez le fichier Program.cs.
Supprimez tout contenu existant dans le fichier.
Ajouter un bloc d'utilisation pour l'espace de noms Microsoft.Azure.Cosmos
.
using Microsoft.Azure.Cosmos;
Créez un instance d’utilisation des CosmosClient informations d’identification de l’émulateur.
using CosmosClient client = new(
accountEndpoint: "https://localhost:8081/",
authKeyOrResourceToken: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
);
Créez une base de données et un conteneur à l’aide de CreateDatabaseIfNotExistsAsync et CreateContainerIfNotExistsAsync.
Database database = await client.CreateDatabaseIfNotExistsAsync(
id: "cosmicworks",
throughput: 400
);
Container container = await database.CreateContainerIfNotExistsAsync(
id: "products",
partitionKeyPath: "/id"
);
Créez un élément dans le conteneur à l’aide de UpsertItemAsync.
var item = new
{
id = "68719518371",
name = "Kiama classic surfboard"
};
await container.UpsertItemAsync(item);
Exécutez l’application .NET.
dotnet run
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez les options du client pour désactiver la validation TLS/SSL avant de créer le client :
CosmosClientOptions options = new ()
{
HttpClientFactory = () => new HttpClient(new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
}),
ConnectionMode = ConnectionMode.Gateway,
};
using CosmosClient client = new(
...,
...,
clientOptions: options
);
Conseil
Reportez-vous au guide du développeur .NET pour plus d’opérations que vous pouvez effectuer à l’aide du Kit de développement logiciel (SDK) .NET.
Utilisez l’API Azure Cosmos DB pour le Kit de développement logiciel (SDK) Python NoSQL pour vous connecter à l’émulateur à partir d’une application Python.
Démarrez dans un dossier vide.
Importez le azure-cosmos
package à partir de l’index de package Python.
pip install azure-cosmos
Ouvrez le fichier app.py.
Importez CosmosClient
et PartitionKey
à partir du module azure.cosmos
.
from azure.cosmos import CosmosClient, PartitionKey
Créez un nouveau CosmosClient à l’aide des informations d’identification de l’émulateur.
client = CosmosClient(
url="<https://localhost:8081>",
credential=(
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGG"
"yPMbIZnqyMsEcaGQy67XIw/Jw=="
),
)
Créez une base de données et un conteneur à l’aide de create_database_if_not_exists et create_container_if_not_exists.
database = client.create_database_if_not_exists(
id="cosmicworks",
offer_throughput=400,
)
container = database.create_container_if_not_exists(
id="products",
partition_key=PartitionKey(
path="/id",
),
)
Utilisez upsert_item pour créer un élément dans le conteneur.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
container.upsert_item(item)
Exécuter l’application Python.
python app.py
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez l’application pour désactiver la validation TLS/SSL avant de créer le client :
import urllib3
urllib3.disable_warnings()
Si vous êtes toujours confronté à des erreurs SSL, il est possible que Python récupère les certificats à partir d’un autre magasin de certificats. Pour déterminer le chemin d'accès où Python recherche les certificats, procédez comme suit :
Important
Si vous utilisez un environnement virtuel (venv) Python assurez-vous qu'il est activé avant d'exécuter les commandes !
Ouvrez un terminal.
Démarrez l'interpréteur Python en tapant Python ou Python3, en fonction de votre version de Python.
Dans l'interpréteur Python, exécutez les commandes suivantes :
from requests.utils import DEFAULT_CA_BUNDLE_PATH
print(DEFAULT_CA_BUNDLE_PATH)
Dans un environnement virtuel, le chemin d’accès peut être (au moins dans Ubuntu) :
path/to/venv/lib/pythonX.XX/site-packages/certifi/cacert.pem
En dehors d’un environnement virtuel, le chemin d’accès peut être (au moins dans Ubuntu) :
/etc/ssl/certs/ca-certificates.crt
Une fois que vous avez identifié le DEFAULT_CA_BUNDLE_PATH, ouvrez un nouveau terminal, puis exécutez les commandes suivantes pour ajouter le certificat d’émulateur au bundle de certificats :
Important
Si DEFAULT_CA_BUNDLE_PATH variable pointe vers un répertoire système, vous pouvez rencontrer une erreur « Autorisation refusée ». Dans ce cas, vous devez exécuter les commandes avec des privilèges élevés (en tant que racine). En outre, vous devez mettre à jour et régénérer le pack de certificats après l'exécution des commandes fournies.
# Add a new line to the certificate bundle
echo >> /path/to/ca_bundle
# Append the emulator certificate to the certificate bundle
cat /path/to/emulatorcert.crt >> /path/to/ca_bundle
Utilisez l’API Azure Cosmos DB pour NoSQL Node.js SDK pour vous connecter à l’émulateur à partir d’une application Node.js/JavaScript.
Démarrez dans un dossier vide.
Initialiser un nouveau module.
npm init es6 --yes
Installez le package @azure/cosmos
à partir du Gestionnaire de package Node.
npm install --save @azure/cosmos
Créez le fichier app.js.
Importez le CosmosClient
type à partir du @azure/cosmos
module.
import { CosmosClient } from '@azure/cosmos'
Utilisez CosmosClient
pour créer un client instance à l’aide des informations d’identification de l’émulateur.
const cosmosClient = new CosmosClient({
endpoint: 'https://localhost:8081/',
key: 'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=='
})
Utilisez Databases.createIfNotExists
et Containers.createIfNotExists
pour créer une base de données et un conteneur.
const { database } = await cosmosClient.databases.createIfNotExists({
id: 'cosmicworks',
throughput: 400
})
const { container } = await database.containers.createIfNotExists({
id: 'products',
partitionKey: {
paths: [
'/id'
]
}
})
Upsert un nouvel élément à l’aide de Items.upsert
.
const item = {
id: '68719518371',
name: 'Kiama classic surfboard'
}
container.items.upsert(item)
Exécutez l’application Node.js.
node app.js
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez l’application pour désactiver la validation TLS/SSL avant de créer le client :
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0
Utilisez le pilote .NET MongoDB pour vous connecter à l’émulateur à partir d’une application .NET.
Démarrez dans un dossier vide.
Créez une application console .NET
dotnet new console
Ajoutez le package MongoDB.Driver
à partir de NuGet.
dotnet add package MongoDB.Driver
Ouvrez le fichier Program.cs.
Supprimez tout contenu existant dans le fichier.
Ajouter un bloc d'utilisation pour l'espace de noms MongoDB.Driver
.
using MongoDB.Driver;
Créez un instance d’utilisation des MongoClient
informations d’identification de l’émulateur.
var client = new MongoClient(
"mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true&retrywrites=false"
);
Obtenez la base de données et le conteneur à l’aide de GetDatabase
et GetCollection<>
.
var database = client.GetDatabase("cosmicworks");
var collection = database.GetCollection<dynamic>("products");
Créez un élément dans le XXX à l’aide de InsertOneAsync
.
var item = new
{
name = "Kiama classic surfboard"
};
await collection.InsertOneAsync(item);
Exécutez l’application .NET.
dotnet run
Utilisez le pilote Python MongoDB pour vous connecter à l’émulateur à partir d’une application Python.
Démarrez dans un dossier vide.
Importez le pymongo
package à partir de l’index de package Python.
pip install pymongo
Ouvrez le fichier app.py.
Importez les modules os
, sys
et pymongo
.
import pymongo
Créez un nouveau MongoClient
à l’aide des informations d’identification de l’émulateur.
client = pymongo.MongoClient(
host=(
"mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2"
"nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/a"
"dmin?ssl=true"
),
tls=True,
)
Créez une base de données et un conteneur à l’aide de list_database_names
et list_collection_names
avec les commandes personnalisées CreateDatabase
et CreateCollection
.
db = client["cosmicworks"]
if "cosmicworks" not in client.list_database_names():
db.command(
{
"customAction": "CreateDatabase",
"offerThroughput": 400,
}
)
collection = db["products"]
if "products" not in db.list_collection_names():
db.command({"customAction": "CreateCollection", "collection": "products"})
Utilisez update_one
pour créer un élément dans le conteneur.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
collection.update_one(
filter={"id": item["id"]}, update={"$set": item}, upsert=True
)
Exécuter l’application Python.
python app.py
Utilisez le pilote Node.js MongoDB pour vous connecter à l’émulateur à partir d’une application /JavaScript Node.js.
Démarrez dans un dossier vide.
Initialiser un nouveau module.
npm init es6 --yes
Installez le package mongodb
à partir du Gestionnaire de package Node.
npm install --save mongodb
Créez le fichier app.js.
Importez le MongoClient
type à partir du mongodb
module.
import { MongoClient } from 'mongodb'
Utilisez MongoClient
pour créer un client instance à l’aide des informations d’identification de l’émulateur. Utilisez connect
pour vous connecter à l’émulateur.
const client = new MongoClient(
'mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true&retrywrites=false'
)
await client.connect()
Utilisez db
et collection
pour créer une base de données et un conteneur.
const database = client.db('cosmicworks')
const collection = database.collection('products')
Créez un élément à l’aide de insertOne
.
const item = {
name: 'Kiama classic surfboard'
}
await collection.insertOne(item)
Exécutez l’application Node.js.
node app.js
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez l’application pour désactiver la validation TLS/SSL avant de créer le client :
const client = new MongoClient(
...,
{ tlsAllowInvalidCertificates: true }
)
Utilisez le pilote Apache Cassandra .NET pour vous connecter à l’émulateur à partir d’une application .NET.
Démarrez dans un dossier vide.
Créez une application console .NET
dotnet new console
Ajoutez le package CassandraCSharpDriver
à partir de NuGet.
dotnet add package CassandraCSharpDriver
Ouvrez le fichier Program.cs.
Supprimez tout contenu existant dans le fichier.
Ajouter un bloc d'utilisation pour l'espace de noms Cassandra
.
using Cassandra;
Créez un instance d’utilisation des Cluster
informations d’identification de l’émulateur. Créez une nouvelle session en utilisant Connect
.
var options = new SSLOptions(
sslProtocol: System.Security.Authentication.SslProtocols.Tls12,
checkCertificateRevocation: true,
remoteCertValidationCallback: (_, _, _, policyErrors) => policyErrors == System.Net.Security.SslPolicyErrors.None);
using var cluster = Cluster.Builder()
.WithCredentials(
username: "localhost",
password: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
)
.WithPort(
port: 10350
)
.AddContactPoint(
address: "localhost"
)
.WithSSL(
sslOptions: options
)
.Build();
using var session = cluster.Connect();
Créez une base de données et un conteneur à l’aide de PrepareAsync
et ExecuteAsync
.
var createKeyspace = await session.PrepareAsync("CREATE KEYSPACE IF NOT EXISTS cosmicworks WITH replication = {'class':'basicclass', 'replication_factor': 1};");
await session.ExecuteAsync(createKeyspace.Bind());
var createTable = await session.PrepareAsync("CREATE TABLE IF NOT EXISTS cosmicworks.products (id text PRIMARY KEY, name text)");
await session.ExecuteAsync(createTable.Bind());
Créez un élément dans la table à l’aide de ExecuteAsync
. Utilisez Bind
pour affecter des propriétés à l’élément.
var item = new
{
id = "68719518371",
name = "Kiama classic surfboard"
};
var createItem = await session.PrepareAsync("INSERT INTO cosmicworks.products (id, name) VALUES (?, ?)");
var createItemStatement = createItem.Bind(item.id, item.name);
await session.ExecuteAsync(createItemStatement);
Exécutez l’application .NET.
dotnet run
Utilisez le pilote Python Apache Cassandra pour vous connecter à l’émulateur à partir d’une application Python.
Démarrez dans un dossier vide.
Importez le cassandra-driver
package à partir de l’index de package Python.
pip install cassandra-driver
Ouvrez le fichier app.py.
Importez PROTOCOL_TLS_CLIENT
, SSLContext
et CERT_NONE
à partir du module ssl
. Ensuite, importez Cluster
à partir du modulecassandra.cluster
. Enfin, importez PlainTextAuthProvider
à partir du cassandra.auth
module.
from ssl import PROTOCOL_TLS_CLIENT, SSLContext, CERT_NONE
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
Créez une variable de contexte TLS/SSL à l’aide de SSLContext
. Configurez le contexte pour ne pas vérifier le certificat auto-signé de l’émulateur.
ssl_context = SSLContext(PROTOCOL_TLS_CLIENT)
ssl_context.check_hostname = False
ssl_context.verify_mode = CERT_NONE
Créez un à session
l’aide des informations d’identification de l’émulateur, PlainTextAuthProvider
, Cluster
et cluster.connect()
.
auth_provider = PlainTextAuthProvider(
username="localhost",
password=(
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnq"
"yMsEcaGQy67XIw/Jw=="
),
)
cluster = Cluster(
["localhost"],
port="10350",
auth_provider=auth_provider,
ssl_context=ssl_context,
)
session = cluster.connect()
Créez un espace de clés et une table à l’aide de session.execute
.
session.execute(
"CREATE KEYSPACE IF NOT EXISTS cosmicworks WITH replication = {'class':'ba"
"sicclass', 'replication_factor': 1};"
)
session.execute(
"CREATE TABLE IF NOT EXISTS cosmicworks.products (id text PRIMARY KEY, nam"
"e text)"
)
Utilisez session.execute
pour créer un élément dans la table.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
session.execute(
"INSERT INTO cosmicworks.products (id, name) VALUES (%s, %s)",
[item["id"], item["name"]],
)
Exécuter l’application Python.
python app.py
Utilisez le pilote de Node.js Apache Cassandra pour utiliser l’émulateur à partir d’une application Node.js/JavaScript.
Démarrez dans un dossier vide.
Initialiser un nouveau module.
npm init es6 --yes
Installez le package cassandra-driver
à partir du Gestionnaire de package Node.
npm install --save cassandra-driver
Créez le fichier app.js.
Importez le Client
type et auth
l’espace de noms à partir du module cassandra-driver
.
import { Client, auth } from 'cassandra-driver'
Utilisez PlainTextAuthProvider
pour créer un objet pour les informations d’identification de l’émulateur. Utilisez Client
pour vous connecter à l’émulateur à l’aide des informations d’identification.
const credentials = new auth.PlainTextAuthProvider(
'localhost',
'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=='
)
const client = new Client({
contactPoints: [
'localhost:10350'
],
authProvider: credentials,
localDataCenter: 'South Central US'
})
Permet execute
d’exécuter une commande côté serveur pour créer un espace de clés et une table.
await client.execute(
'CREATE KEYSPACE IF NOT EXISTS cosmicworks WITH replication = {\'class\':\'basicclass\', \'replication_factor\': 1};'
)
await client.execute(
'CREATE TABLE IF NOT EXISTS cosmicworks.products (id text PRIMARY KEY, name text)'
)
Utilisez execute
à nouveau pour créer un élément avec des paramètres.
const item = {
id: '68719518371',
name: 'Kiama classic surfboard'
}
await client.execute(
'INSERT INTO cosmicworks.products (id, name) VALUES (?, ?)',
[
item.id,
item.name
]
)
Exécutez l’application Node.js.
node app.js
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez le client pour désactiver la validation TLS/SSL :
const client = new Client({
...,
...,
...,
sslOptions: {
rejectUnauthorized: false
}
})
Important
Avant de commencer, l’API pour Apache Gremlin vous oblige à créer vos ressources dans l’émulateur. Créez une base de données nommée db1
et un conteneur nommé coll1
. Les paramètres de débit ne sont pas pertinents pour ce guide et peuvent être définis aussi bas que vous le souhaitez.
Utilisez le pilote Apache Cassandra .NET pour vous connecter à l’émulateur à partir d’une application .NET.
Démarrez dans un dossier vide.
Créez une application console .NET
dotnet new console
Ajoutez le package Gremlin.Net
à partir de NuGet.
dotnet add package Gremlin.Net
Ouvrez le fichier Program.cs.
Supprimez tout contenu existant dans le fichier.
Ajouter un bloc d'utilisation pour l'espace de noms Gremlin.Net.Driver
.
using Gremlin.Net.Driver;
Créez une instance de GremlinServer
et GremlinClient
à l’aide des informations d’identification de l’émulateur.
var server = new GremlinServer(
hostname: "localhost",
port: 65400,
username: "/dbs/db1/colls/coll1",
password: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
);
using var client = new GremlinClient(
gremlinServer: server,
messageSerializer: new Gremlin.Net.Structure.IO.GraphSON.GraphSON2MessageSerializer()
);
Nettoyez le graphique à l’aide de SubmitAsync
.
await client.SubmitAsync(
requestScript: "g.V().drop()"
);
Utilisez SubmitAsync
à nouveau pour ajouter un nouvel élément au graphique avec les paramètres spécifiés.
await client.SubmitAsync(
requestScript: "g.addV('product').property('id', prop_id).property('name', prop_name)",
bindings: new Dictionary<string, object>
{
{ "prop_id", "68719518371" },
{ "prop_name", "Kiama classic surfboard" }
}
);
Exécutez l’application .NET.
dotnet run
Utilisez le pilote Python Apache Gremlin pour vous connecter à l’émulateur à partir d’une application Python.
Démarrez dans un dossier vide.
Importez le gremlinpython
package à partir de l’index de package Python.
pip install gremlinpython
Ouvrez le fichier app.py.
Importez client
à partir du modulegremlin_python.driver
.
from gremlin_python.driver import client
Créez un nouveau Client
à l’aide des informations d’identification de l’émulateur.
client = client.Client(
url="ws://localhost:8901/",
traversal_source="g",
username="/dbs/db1/colls/coll1",
password=(
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnq"
"yMsEcaGQy67XIw/Jw=="
),
)
Nettoyez le graphique à l’aide de client.submit
.
client.submit(message="g.V().drop()")
Utilisez client.submit
à nouveau pour ajouter un nouvel élément au graphique avec les paramètres spécifiés.
client.submit(
message=(
"g.addV('product').property('id', prop_id).property('name', prop_name)"
),
bindings={
"prop_id": "68719518371",
"prop_name": "Kiama classic surfboard",
},
)
Exécuter l’application Python.
python app.py
Utilisez le pilote de Node.js Apache Gremlin pour utiliser l’émulateur à partir d’une application Node.js/JavaScript.
Démarrez dans un dossier vide.
Initialiser un nouveau module.
npm init es6 --yes
Installez le package gremlin
à partir du Gestionnaire de package Node.
npm install --save gremlin
Créez le fichier app.js.
Importez le module gremlin
.
import gremlin from 'gremlin'
Utilisez PlainTextSaslAuthenticator
pour créer un objet pour les informations d’identification de l’émulateur. Utilisez Client
pour vous connecter à l’émulateur à l’aide des informations d’identification.
const credentials = new gremlin.driver.auth.PlainTextSaslAuthenticator(
'/dbs/db1/colls/coll1',
'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=='
)
const client = new gremlin.driver.Client(
'ws://localhost:8901/',
{
credentials,
traversalsource: 'g',
rejectUnauthorized: false,
mimeType: 'application/vnd.gremlin-v2.0+json'
}
)
client.open()
Utilisez submit
pour exécuter une commande côté serveur pour effacer le graphique s’il contient déjà des données.
await client.submit('g.V().drop()')
Utilisez submit
à nouveau pour ajouter un nouvel élément au graphique avec les paramètres spécifiés.
await client.submit(
'g.addV(\'product\').property(\'id\', prop_id).property(\'name\', prop_name)', {
prop_id: '68719518371',
prop_name: 'Kiama classic surfboard'
}
)
Exécutez l’application Node.js.
node app.js
Utilisez le Kit de développement logiciel (SDK) Azure Tables pour .NET pour vous connecter à l’émulateur à partir d’une application .NET.
Démarrez dans un dossier vide.
Créez une application console .NET
dotnet new console
Ajoutez le package Azure.Data.Tables
à partir de NuGet.
dotnet add package Azure.Data.Tables
Ouvrez le fichier Program.cs.
Supprimez tout contenu existant dans le fichier.
Ajouter un bloc d'utilisation pour l'espace de noms Azure.Data.Tables
.
using Azure.Data.Tables;
Créez un instance d’utilisation des TableServiceClient
informations d’identification de l’émulateur.
var serviceClient = new TableServiceClient(
connectionString: "DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;"
);
Utilisez GetTableClient
pour créer un instance de TableClient
avec le nom de la table. Vérifiez ensuite que la table existe à l’aide de CreateIfNotExistsAsync
.
var client = serviceClient.GetTableClient(
tableName: "cosmicworksproducts"
);
await client.CreateIfNotExistsAsync();
Créez un record
type pour les éléments.
public record Product : Azure.Data.Tables.ITableEntity
{
public required string RowKey { get; set; }
public required string PartitionKey { get; set; }
public required string Name { get; init; }
public Azure.ETag ETag { get; set; }
public DateTimeOffset? Timestamp { get; set; }
}
Créez un élément dans la table à l’aide du modeUpsertEntityAsync
et Replace
.
var item = new Product
{
RowKey = "68719518371",
PartitionKey = "Surfboards",
Name = "Kiama classic surfboard",
Timestamp = DateTimeOffset.Now
};
await client.UpsertEntityAsync(
entity: item,
mode: TableUpdateMode.Replace
);
Exécutez l’application .NET.
dotnet run
Utilisez le Kit de développement logiciel (SDK) Python Azure Tables pour vous connecter à l’émulateur à partir d’une application Python.
Démarrez dans un dossier vide.
Importez le azure-data-tables
package à partir de l’index de package Python.
pip install azure-data-tables
Ouvrez le fichier app.py.
Importez TableServiceClient
et UpdateMode
à partir du module azure.data.tables
.
from azure.data.tables import TableServiceClient, UpdateMode
Utilisez TableServiceClient.from_connection_string
pour créer un client de niveau de service.
service = TableServiceClient.from_connection_string(
conn_str=(
"DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yD"
"jf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEca"
"GQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;"
)
)
Créez un client au niveau de la table à l’aide de create_table_if_not_exists
.
client = service.create_table_if_not_exists(table_name="cosmicworksproducts")
Utilisez upsert_entity
pour créer un élément dans le conteneur.
item = {
"PartitionKey": "68719518371",
"RowKey": "Surfboards",
"name": "Kiama classic surfboard",
}
client.upsert_entity(entity=item, mode=UpdateMode.REPLACE)
Exécuter l’application Python.
python app.py
Utilisez le Kit de développement logiciel (SDK) JavaScript Azure Tables pour utiliser l’émulateur à partir d’une application Node.js/JavaScript.
Démarrez dans un dossier vide.
Initialiser un nouveau module.
npm init es6 --yes
Installez le package @azure/data-tables
à partir du Gestionnaire de package Node.
npm install --save @azure/data-tables
Créez le fichier app.js.
Importez le TableClient
type à partir du module @azure/data-tables
.
import { TableClient } from '@azure/data-tables'
Utilisez TableClient.fromConnectionString
pour créer un nouveau client instance à l’aide de la chaîne de connexion de l’émulateur.
const client = TableClient.fromConnectionString(
'DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;',
'cosmicworksproducts'
)
Utilisez la méthode createTable
sur le pour créer uniquement une table si elle n’existe pas déjà.
await client.createTable()
Utilisez upsertEntity
pour créer or remplacer une élément.
const item = {
partitionKey: '68719518371',
rowKey: 'Surfboards',
name: 'Kiama classic surfboard'
}
await client.upsertEntity(
item,
'Replace'
)
Exécutez l’application Node.js.
node app.js
Avertissement
Si vous obtenez une erreur SSL, vous devrez peut-être désactiver TLS/SSL pour votre application. Cela se produit généralement si vous développez sur votre ordinateur local, que vous utilisez l’émulateur Azure Cosmos DB dans un conteneur et que vous n’avez pas importé le certificat SSL du conteneur. Pour résoudre ce problème, configurez le client pour désactiver la validation TLS/SSL :
const client = TableClient.fromConnectionString(
...,
...,
{
allowInsecureConnection: true
}
)
Utiliser l’émulateur dans un flux de travail CI GitHub Actions
Pour exécuter une charge de travail d’intégration continue qui valide automatiquement votre application, utilisez l’émulateur Azure Cosmos DB avec une suite de tests de l’infrastructure de votre choix. L’émulateur Azure Cosmos DB est préinstallé dans la windows-latest
variante des exécuteurs hébergés de GitHub Action.
Exécutez une suite de tests à l’aide du pilote de test intégré pour .NET et d’une infrastructure de test telle que MSTest, NUnit ou XUnit.
Vérifiez que la suite de tests unitaires pour votre application fonctionne comme prévu.
dotnet test
Créez un flux de travail dans votre référentiel GitHub dans un fichier nommé .github/workflows/ci.yml
.
Ajoutez un travail à votre workflow pour démarrer l’émulateur Azure Cosmos DB à l’aide de PowerShell et exécuter votre suite de tests unitaires.
name: Continuous Integration
on:
push:
branches:
- main
jobs:
unit_tests:
name: Run .NET unit tests
runs-on: windows-latest
steps:
- name: Checkout (GitHub)
uses: actions/checkout@v3
- name: Start Azure Cosmos DB emulator
run: |
Write-Host "Launching Cosmos DB Emulator"
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
Start-CosmosDbEmulator
- name: Run .NET tests
run: dotnet test
Testez votre application Python et vos opérations de base de données à l’aide de pytest
.
Vérifiez que la suite de tests unitaires pour votre application fonctionne comme prévu.
pip install -U pytest
pytest
Créez un flux de travail dans votre référentiel GitHub dans un fichier nommé .github/workflows/ci.yml
.
Ajoutez un travail à votre workflow pour démarrer l’émulateur Azure Cosmos DB à l’aide de PowerShell et exécuter votre suite de tests unitaires.
name: Continuous Integration
on:
push:
branches:
- main
jobs:
unit_tests:
name: Run Python unit tests
runs-on: windows-latest
steps:
- name: Checkout (GitHub)
uses: actions/checkout@v3
- name: Start Azure Cosmos DB emulator
run: |
Write-Host "Launching Cosmos DB Emulator"
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
Start-CosmosDbEmulator
- name: Install test runner
run: pip install pytest
- name: Run Python tests
run: pytest
Utilisez mocha
pour tester votre application Node.js et ses modifications de base de données.
Vérifiez que la suite de tests unitaires pour votre application fonctionne comme prévu.
npm install --global mocha
mocha
Créez un flux de travail dans votre référentiel GitHub dans un fichier nommé .github/workflows/ci.yml
.
Ajoutez un travail à votre workflow pour démarrer l’émulateur Azure Cosmos DB à l’aide de PowerShell et exécuter votre suite de tests unitaires.
name: Continuous Integration
on:
push:
branches:
- main
jobs:
unit_tests:
name: Run Node.js unit tests
runs-on: windows-latest
steps:
- name: Checkout (GitHub)
uses: actions/checkout@v3
- name: Start Azure Cosmos DB emulator
run: |
Write-Host "Launching Cosmos DB Emulator"
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
Start-CosmosDbEmulator
- name: Install test runner
run: npm install --global mocha
- name: Run Node.js tests
run: mocha
Étape suivante