Typowym przypadkiem użycia emulatora jest użycie jako bazy danych deweloperskich podczas kompilowania aplikacji. Korzystanie z emulatora na potrzeby programowania może ułatwić poznanie cech tworzenia i modelowania danych dla bazy danych, takich jak Azure Cosmos DB bez ponoszenia kosztów usług. Ponadto użycie emulatora w ramach przepływu pracy automatyzacji może zapewnić, że można uruchomić ten sam zestaw testów integracji. Możesz mieć pewność, że te same testy są uruchamiane lokalnie na komputerze deweloperskim i zdalnie w ramach zadania ciągłej integracji.
Prerequisites
-
.NET 6 lub nowszy, Node.js v20 lub nowszy lub Python 3.7 lub nowszy
- Upewnij się, że wszystkie wymagane pliki wykonywalne są dostępne w pliku
PATH.
-
Emulator Windows
- 64-bitowe Windows Server 2016, 2019, Windows 10 lub Windows 11.
- Minimalne wymagania sprzętowe:
- 2 GB pamięci RAM
- 10 GB dostępnego miejsca na dysku twardym
-
Emulator Docker
Instalowanie emulatora
Istnieje wiele odmian emulatora, a każda odmiana ma stosunkowo bezproblemowy proces instalacji.
Aby rozpocząć, pobierz wariant Linux obrazu kontenera z Microsoft Container Registry (MCR).
Ściąganie mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator obrazu kontenera systemu Linux z rejestru kontenerów do lokalnego hosta platformy Docker.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Upewnij się, że obraz emulatora jest dostępny na lokalnym hoście platformy Docker.
docker images
Aby rozpocząć, pobierz Windows wariant obrazu kontenera z Microsoft Container Registry (MCR).
Pobierz obraz kontenera mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator Windows z rejestru kontenerów do lokalnego hosta platformy Docker.
docker pull mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
Upewnij się, że obraz emulatora jest dostępny na lokalnym hoście platformy Docker.
docker images
Aby rozpocząć, pobierz i zainstaluj najnowszą wersję emulatora Azure Cosmos DB na komputerze lokalnym.
Wskazówka
W artykule o wersji emulatora wymieniono wszystkie dostępne wersje i aktualizacje funkcji wprowadzone w każdej wersji.
Pobierz emulator Azure Cosmos DB.
Uruchom instalatora na komputerze lokalnym z uprawnieniami administracyjnymi.
Emulator automatycznie instaluje odpowiednie certyfikaty deweloperów i konfiguruje reguły zapory na komputerze lokalnym.
Aby rozpocząć, pobierz wariant Linux obrazu kontenera z Microsoft Container Registry (MCR).
Ściąganie mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator obrazu kontenera systemu Linux przy użyciu tagu mongodb z rejestru kontenerów do lokalnego hosta platformy Docker.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Upewnij się, że obraz emulatora jest dostępny na lokalnym hoście platformy Docker.
docker images
Obraz kontenera Docker (Windows) nie obsługuje interfejsu API MongoDB.
Aby rozpocząć, pobierz i zainstaluj najnowszą wersję emulatora Azure Cosmos DB na komputerze lokalnym.
Wskazówka
W artykule o wersji emulatora wymieniono wszystkie dostępne wersje i aktualizacje funkcji wprowadzone w każdej wersji.
Pobierz emulator Azure Cosmos DB.
Uruchom instalatora na komputerze lokalnym z uprawnieniami administracyjnymi.
Emulator automatycznie instaluje odpowiednie certyfikaty deweloperów i konfiguruje reguły zapory na komputerze lokalnym.
Wariant kontenera platformy Docker (Linux lub Windows) emulatora nie obsługuje interfejsu API dla platformy Apache Cassandra, interfejsu API dla języka Apache Gremlin lub interfejsu API dla tabeli.
Aby rozpocząć, pobierz i zainstaluj najnowszą wersję emulatora Azure Cosmos DB na komputerze lokalnym.
Wskazówka
W artykule o wersji emulatora wymieniono wszystkie dostępne wersje i aktualizacje funkcji wprowadzone w każdej wersji.
Pobierz emulator Azure Cosmos DB.
Uruchom instalatora na komputerze lokalnym z uprawnieniami administracyjnymi.
Emulator automatycznie instaluje odpowiednie certyfikaty deweloperów i konfiguruje reguły zapory na komputerze lokalnym.
Uruchamianie emulatora
Po pobraniu uruchom emulator z włączonym określonym interfejsem API.
Wariant kontenera platformy Docker emulatora nie obsługuje interfejsu API dla systemu Apache Cassandra.
Uruchom plik wykonywalny emulatora (Microsoft.Azure.Cosmos.Emulator.exe) w ścieżce %ProgramFiles%\Azure Cosmos DB Emulator. Użyj tych parametrów, aby skonfigurować emulator:
|
Description |
EnableCassandraEndpoint |
Włącza interfejs API dla punktu końcowego Apache Cassandra. |
CassandraPort |
Numer portu do użycia dla punktu końcowego. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint /CassandraPort=65200
Uwaga / Notatka
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia, zobacz parametry wiersza polecenia.
Emulator automatycznie otwiera eksploratora danych przy użyciu adresu URL https://localhost:8081/_explorer/index.html.
Wariant emulatora w kontenerze Docker nie obsługuje API Apache Gremlin.
Uruchom plik wykonywalny emulatora (Microsoft.Azure.Cosmos.Emulator.exe) w ścieżce %ProgramFiles%\Azure Cosmos DB Emulator. Użyj tych parametrów, aby skonfigurować emulator:
|
Description |
EnableGremlinEndpoint |
Włącza interfejs API dla punktu końcowego Apache Gremlin. |
GremlinPort |
Numer portu do użycia dla punktu końcowego. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint /GremlinPort=65400
Uwaga / Notatka
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia, zobacz parametry wiersza polecenia.
Emulator automatycznie otwiera eksploratora danych przy użyciu adresu URL https://localhost:8081/_explorer/index.html.
Wariant kontenera Docker emulatora nie obsługuje interfejsu API dla tabeli (Table).
Uruchom plik wykonywalny emulatora (Microsoft.Azure.Cosmos.Emulator.exe) w ścieżce %ProgramFiles%\Azure Cosmos DB Emulator. Użyj tych parametrów, aby skonfigurować emulator:
|
Description |
EnableTableEndpoint |
Włącza interfejs API dla punktu końcowego tabeli. |
TablePort |
Numer portu do użycia dla punktu końcowego. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint /TablePort=65500
Uwaga / Notatka
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia, zobacz parametry wiersza polecenia.
Emulator automatycznie otwiera eksploratora danych przy użyciu adresu URL https://localhost:8081/_explorer/index.html.
Uruchom nowy kontener przy użyciu obrazu kontenera i następującej konfiguracji:
|
Description |
AZURE_COSMOS_EMULATOR_PARTITION_COUNT
(Opcjonalnie) |
Określ liczbę partycji do użycia. |
AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE
(Opcjonalnie) |
Włącz trwałość danych między przebiegami emulatora. |
AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE
(Opcjonalnie) |
Zastąp domyślny adres IP emulatora. |
W przypadku systemów Linux użyj:
docker run \
--publish 8081:8081 \
--publish 10250-10255:10250-10255 \
--name linux-emulator \
--detach \
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
W przypadku systemów Windows należy użyć:
$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
Przejdź do witryny , https://localhost:8081/_explorer/index.html aby uzyskać dostęp do eksploratora danych.
Utwórz nowy katalog dla montowania powiązanego
Uruchom nowy kontener przy użyciu obrazu kontenera.
$parameters = @(
"--publish", "8081:8081"
"--publish", "10250-10255:10250-10255"
"--name", "windows-emulator"
"--detach"
)
docker run @parameters mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
Przejdź do witryny , https://localhost:8081/_explorer/index.html aby uzyskać dostęp do eksploratora danych.
Uruchom emulator, wybierając aplikację w menu Windows Start.
Alternatywnie możesz uruchomić plik wykonywalny emulatora (Microsoft.Azure.Cosmos.Emulator.exe) w ścieżce %ProgramFiles%\Azure Cosmos DB Emulator.
Ponadto możesz uruchomić emulator z poziomu wiersza polecenia. Użyj tych parametrów, aby skonfigurować emulator:
|
Description |
Port |
numer portu do użycia dla interfejsu API punktu końcowego NoSQL. |
Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
Uwaga / Notatka
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia, zobacz parametry wiersza polecenia.
Emulator automatycznie otwiera eksploratora danych przy użyciu adresu URL https://localhost:8081/_explorer/index.html.
Uruchom nowy kontener przy użyciu obrazu kontenera i następującej konfiguracji:
|
Description |
AZURE_COSMOS_EMULATOR_ENABLE_MONGODB_ENDPOINT |
Określ wersję punktu końcowego bazy danych MongoDB do użycia. Obsługiwane punkty końcowe obejmują: 3.2, lub 3.64.0. |
AZURE_COSMOS_EMULATOR_PARTITION_COUNT
(Opcjonalnie) |
Określ liczbę partycji do użycia. |
AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE
(Opcjonalnie) |
Włącz trwałość danych między przebiegami emulatora. |
AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE
(Opcjonalnie) |
Zastąp domyślny adres IP emulatora. |
W przypadku systemów Linux użyj:
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
W przypadku systemów Windows należy użyć:
$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
Przejdź do witryny , https://localhost:8081/_explorer/index.html aby uzyskać dostęp do eksploratora danych.
Obraz kontenera Docker (Windows) nie obsługuje interfejsu API MongoDB.
Uruchom plik wykonywalny emulatora (Microsoft.Azure.Cosmos.Emulator.exe) w ścieżce %ProgramFiles%\Azure Cosmos DB Emulator. Użyj tych parametrów, aby skonfigurować emulator:
|
Description |
EnableMongoDbEndpoint |
Włącza interfejs API dla punktu końcowego bazy danych MongoDB w określonej wersji bazy danych MongoDB. |
MongoPort |
Numer portu do użycia dla punktu końcowego. |
Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0 /MongoPort=65200
Uwaga / Notatka
Aby uzyskać więcej informacji na temat argumentów wiersza polecenia i wersji bazy danych MongoDB obsługiwanych przez emulator, zobacz parametry wiersza polecenia.
Emulator automatycznie otwiera eksploratora danych przy użyciu adresu URL https://localhost:8081/_explorer/index.html.
Importowanie certyfikatu TLS/SSL emulatora
Zaimportuj certyfikat TLS/SSL emulatora do korzystania z preferowanego zestawu SDK dla deweloperów bez wyłączania protokołu TLS/SSL na kliencie.
Wariant kontenera platformy Docker (Linux lub Windows) emulatora nie obsługuje interfejsu API dla platformy Apache Cassandra, interfejsu API dla języka Apache Gremlin lub interfejsu API dla tabeli.
Windows lokalna instalacja emulatora automatycznie importuje certyfikaty TLS/SSL. Nie trzeba podejmować żadnych dalszych działań.
Certyfikat emulatora jest dostępny w ścieżce _explorer/emulator.pem uruchomionego kontenera. Użyj polecenia curl , aby pobrać certyfikat z uruchomionego kontenera na komputer lokalny.
Pobierz certyfikat z uruchomionego kontenera.
W przypadku systemów Linux użyj:
curl --insecure https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
W przypadku systemów Windows należy użyć:
$parameters = @{
Uri = 'https://localhost:8081/_explorer/emulator.pem'
Method = 'GET'
OutFile = 'emulatorcert.crt'
SkipCertificateCheck = $True
}
Invoke-WebRequest @parameters
Wygeneruj ponownie pakiet certyfikatów przy użyciu odpowiedniego polecenia dla systemu operacyjnego.
W przypadku systemów Linux opartych na debianie (na przykład Ubuntu) użyj:
sudo update-ca-certificates
W przypadku systemów Linux opartych na systemie Red Hat (na przykład CentOS, Fedora) użyj:
sudo update-ca-trust
W przypadku systemów Windows należy użyć:
certutil -f -addstore "Root" ~/emulatorcert.crt
Aby uzyskać bardziej szczegółowe instrukcje, zapoznaj się z dokumentacją specyficzną dla systemu operacyjnego.
Obraz kontenera Docker (Windows) nie obsługuje interfejsu API MongoDB.
Windows lokalna instalacja emulatora automatycznie importuje certyfikaty TLS/SSL. Nie trzeba podejmować żadnych dalszych działań.
Certyfikat emulatora jest dostępny w ścieżce /_explorer/emulator.pem uruchomionego kontenera.
Pobierz certyfikat z uruchomionego kontenera na komputer lokalny.
W przypadku systemów Linux użyj:
curl --insecure https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
W przypadku systemów Windows należy użyć:
$parameters = @{
Uri = 'https://localhost:8081/_explorer/emulator.pem'
Method = 'GET'
OutFile = 'emulatorcert.crt'
SkipCertificateCheck = $True
}
Invoke-WebRequest @parameters
Uwaga / Notatka
Może być konieczne zmianę hosta (lub adresu IP) i numeru portu, jeśli wcześniej zmodyfikowano te wartości.
Zainstaluj certyfikat zgodnie z procesem zwykle używanym dla systemu operacyjnego. Na przykład w systemie Linux należy skopiować certyfikat do ścieżki /usr/local/share/ca-certificates/ .
W przypadku systemów Linux użyj:
cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
W przypadku systemów Windows należy użyć:
$parameters = @{
FilePath = 'emulatorcert.crt'
CertStoreLocation = 'Cert:\CurrentUser\Root'
}
Import-Certificate @parameters
W przypadku systemów Linux ponownie wygeneruj pakiet certyfikatów przy użyciu odpowiedniego polecenia dla dystrybucji systemu Linux.
W przypadku systemów Linux opartych na debianie (na przykład Ubuntu) użyj:
sudo update-ca-certificates
W przypadku systemów Linux opartych na systemie Red Hat (na przykład CentOS, Fedora) użyj:
sudo update-ca-trust
Aby uzyskać bardziej szczegółowe instrukcje, zapoznaj się z dokumentacją specyficzną dla systemu operacyjnego.
Certyfikat emulatora jest dostępny w folderze C:\CosmosDB.Emulator\bind-mount w uruchomionym kontenerze. Folder zawiera również skrypt umożliwiający automatyczne zainstalowanie certyfikatu.
Użyj polecenia docker cp , aby skopiować cały folder na komputer lokalny.
docker cp windows-emulator:C:\CosmosDB.Emulator\bind-mount .
Uruchom w folderze skrypt importcert.ps1.
.\bind-mount\importcert.ps1
Windows lokalna instalacja emulatora automatycznie importuje certyfikaty TLS/SSL. Nie trzeba podejmować żadnych dalszych działań.
Nawiązywanie połączenia z emulatorem z zestawu SDK
Każdy zestaw SDK zawiera klasę klienta zwykle używaną do łączenia zestawu SDK z kontem Azure Cosmos DB. Korzystając z poświadczeń emulatora, można zamiast tego połączyć zestaw SDK z wystąpieniem emulatora.
Użyj interfejsu API Azure Cosmos DB dla zestawu SDK NoSQL .NET aby nawiązać połączenie z emulatorem z aplikacji .NET.
Rozpocznij w pustym folderze.
Tworzenie nowej aplikacji konsolowej .NET
dotnet new console
Dodaj pakiet Microsoft.Azure.Cosmos z NuGet.
dotnet add package Microsoft.Azure.Cosmos
Otwórz plik Program.cs.
Usuń dowolną istniejącą zawartość w pliku.
Dodaj blok using dla przestrzeni nazw Microsoft.Azure.Cosmos.
using Microsoft.Azure.Cosmos;
Utwórz nowe wystąpienie CosmosClient przy użyciu poświadczeń emulatora.
using CosmosClient client = new(
accountEndpoint: "https://localhost:8081/",
authKeyOrResourceToken: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
);
Utwórz nową bazę danych i kontener przy użyciu narzędzi CreateDatabaseIfNotExistsAsync i CreateContainerIfNotExistsAsync.
Database database = await client.CreateDatabaseIfNotExistsAsync(
id: "cosmicworks",
throughput: 400
);
Container container = await database.CreateContainerIfNotExistsAsync(
id: "products",
partitionKeyPath: "/id"
);
Utwórz nowy element w kontenerze przy użyciu polecenia UpsertItemAsync.
var item = new
{
id = "68719518371",
name = "Kiama classic surfboard"
};
await container.UpsertItemAsync(item);
Uruchom aplikację .NET.
dotnet run
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj opcje klienta, aby wyłączyć walidację protokołu TLS/SSL przed utworzeniem klienta:
CosmosClientOptions options = new ()
{
HttpClientFactory = () => new HttpClient(new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
}),
ConnectionMode = ConnectionMode.Gateway,
};
using CosmosClient client = new(
...,
...,
clientOptions: options
);
Wskazówka
Zapoznaj się z przewodnikiem dla deweloperów .NET aby uzyskać więcej operacji, które można wykonać przy użyciu zestawu SDK .NET.
Użyj interfejsu API Azure Cosmos DB dla zestawu SDK NoSQL Python aby nawiązać połączenie z emulatorem z aplikacji Python.
Rozpocznij w pustym folderze.
Zaimportuj pakiet azure-cosmos z indeksu pakietu Python.
pip install azure-cosmos
Utwórz plik app.py.
Zaimportuj CosmosClient i PartitionKey z modułu azure.cosmos .
from azure.cosmos import CosmosClient, PartitionKey
Utwórz nowy CosmosClient przy użyciu danych uwierzytelniających emulatora.
client = CosmosClient(
url="<https://localhost:8081>",
credential=(
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGG"
"yPMbIZnqyMsEcaGQy67XIw/Jw=="
),
)
Utwórz nową bazę danych i kontener przy użyciu narzędzi create_database_if_not_exists i 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",
),
)
Użyj upsert_item, aby utworzyć nowy element w kontenerze.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
container.upsert_item(item)
Uruchom aplikację Python.
python app.py
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj aplikację tak, aby wyłączyła walidację protokołu TLS/SSL przed utworzeniem klienta:
import urllib3
urllib3.disable_warnings()
Jeśli nadal występują błędy protokołu SSL, możliwe, że Python pobiera certyfikaty z innego magazynu certyfikatów. Aby określić ścieżkę, w której Python szuka certyfikatów, wykonaj następujące kroki:
Ważna
Jeśli używasz środowiska Python virtual environment (venv) upewnij się, że jest on aktywowany przed uruchomieniem poleceń!
Otwieranie terminalu
Uruchom interpreter Python, wpisując python lub python3, w zależności od wersji Python.
W interpreterze Python uruchom następujące polecenia:
from requests.utils import DEFAULT_CA_BUNDLE_PATH
print(DEFAULT_CA_BUNDLE_PATH)
W środowisku wirtualnym ścieżka może być (przynajmniej w systemie Ubuntu):
path/to/venv/lib/pythonX.XX/site-packages/certifi/cacert.pem
Poza środowiskiem wirtualnym ścieżka może być (przynajmniej w systemie Ubuntu):
/etc/ssl/certs/ca-certificates.crt
Po zidentyfikowaniu DEFAULT_CA_BUNDLE_PATH otwórz nowy terminal i uruchom następujące polecenia, aby dołączyć certyfikat emulatora do pakietu certyfikatów:
Ważna
Jeśli DEFAULT_CA_BUNDLE_PATH zmienna wskazuje katalog systemowy, może wystąpić błąd "Odmowa uprawnień". W takim przypadku należy uruchomić polecenia z podwyższonym poziomem uprawnień (jako root). Ponadto należy zaktualizować i ponownie wygenerować pakiet certyfikatów po wykonaniu podanych poleceń.
# 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
Użyj interfejsu API Azure Cosmos DB dla zestawu SDK NoSQL Node.js aby nawiązać połączenie z emulatorem z poziomu aplikacji Node.js/JavaScript.
Rozpocznij w pustym folderze.
Zainicjuj nowy moduł.
npm init es6 --yes
Zainstaluj pakiet @azure/cosmos z Menedżer pakietów Node.
npm install --save @azure/cosmos
Utwórz plik app.js.
Zaimportuj CosmosClient typ z modułu @azure/cosmos .
import { CosmosClient } from '@azure/cosmos'
Użyj CosmosClient polecenia, aby utworzyć nową instancję klienta przy użyciu poświadczeń emulatora.
const cosmosClient = new CosmosClient({
endpoint: 'https://localhost:8081/',
key: 'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=='
})
Użyj polecenia Databases.createIfNotExists i Containers.createIfNotExists , aby utworzyć bazę danych i kontener.
const { database } = await cosmosClient.databases.createIfNotExists({
id: 'cosmicworks',
throughput: 400
})
const { container } = await database.containers.createIfNotExists({
id: 'products',
partitionKey: {
paths: [
'/id'
]
}
})
Wykonaj operację "upsert" nowego elementu przy użyciu polecenia Items.upsert.
const item = {
id: '68719518371',
name: 'Kiama classic surfboard'
}
container.items.upsert(item)
Uruchom aplikację Node.js.
node app.js
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj aplikację tak, aby wyłączyła walidację protokołu TLS/SSL przed utworzeniem klienta:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0
Użyj sterownika MongoDB .NET aby nawiązać połączenie z emulatorem z aplikacji .NET.
Rozpocznij w pustym folderze.
Tworzenie nowej aplikacji konsolowej .NET
dotnet new console
Dodaj pakiet MongoDB.Driver z NuGet.
dotnet add package MongoDB.Driver
Otwórz plik Program.cs.
Usuń dowolną istniejącą zawartość w pliku.
Dodaj blok using dla przestrzeni nazw MongoDB.Driver.
using MongoDB.Driver;
Utwórz nowe wystąpienie MongoClient przy użyciu poświadczeń emulatora.
var client = new MongoClient(
"mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true&retrywrites=false"
);
Pobierz bazę danych i kontener przy użyciu polecenia GetDatabase i GetCollection<>.
var database = client.GetDatabase("cosmicworks");
var collection = database.GetCollection<dynamic>("products");
Utwórz nowy element w XXX przy użyciu polecenia InsertOneAsync.
var item = new
{
name = "Kiama classic surfboard"
};
await collection.InsertOneAsync(item);
Uruchom aplikację .NET.
dotnet run
Użyj sterownika Python MongoDB aby nawiązać połączenie z emulatorem z aplikacji Python.
Rozpocznij w pustym folderze.
Zaimportuj pakiet pymongo z indeksu pakietu Python.
pip install pymongo
Utwórz plik app.py.
Zaimportuj moduły os, sys i pymongo.
import pymongo
Utwórz nowy MongoClient przy użyciu danych uwierzytelniających emulatora.
client = pymongo.MongoClient(
host=(
"mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2"
"nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/a"
"dmin?ssl=true"
),
tls=True,
)
Utwórz nową bazę danych i kontener przy użyciu list_database_names i list_collection_names wraz z poleceniami CreateDatabase i CreateCollection niestandardowymi.
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"})
Użyj update_one, aby utworzyć nowy element w kontenerze.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
collection.update_one(
filter={"id": item["id"]}, update={"$set": item}, upsert=True
)
Uruchom aplikację Python.
python app.py
Użyj sterownika MongoDB Node.js, aby nawiązać połączenie z emulatorem z aplikacji Node.js/JavaScript.
Rozpocznij w pustym folderze.
Zainicjuj nowy moduł.
npm init es6 --yes
Zainstaluj pakiet mongodb z Menedżer pakietów Node.
npm install --save mongodb
Utwórz plik app.js.
Zaimportuj MongoClient typ z modułu mongodb .
import { MongoClient } from 'mongodb'
Użyj MongoClient polecenia, aby utworzyć nową instancję klienta przy użyciu poświadczeń emulatora. Użyj connect polecenia , aby nawiązać połączenie z emulatorem.
const client = new MongoClient(
'mongodb://localhost:C2y6yDjf5%2FR%2Bob0N8A7Cgv30VRDJIWEHLM%2B4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw%2FJw%3D%3D@localhost:10255/admin?ssl=true&retrywrites=false'
)
await client.connect()
Użyj polecenia db i collection , aby utworzyć bazę danych i kontener.
const database = client.db('cosmicworks')
const collection = database.collection('products')
Utwórz nowy element przy użyciu polecenia insertOne.
const item = {
name: 'Kiama classic surfboard'
}
await collection.insertOne(item)
Uruchom aplikację Node.js.
node app.js
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj aplikację tak, aby wyłączyła walidację protokołu TLS/SSL przed utworzeniem klienta:
const client = new MongoClient(
...,
{ tlsAllowInvalidCertificates: true }
)
Użyj sterownika Apache Cassandra .NET aby nawiązać połączenie z emulatorem z aplikacji .NET.
Rozpocznij w pustym folderze.
Tworzenie nowej aplikacji konsolowej .NET
dotnet new console
Dodaj pakiet CassandraCSharpDriver z NuGet.
dotnet add package CassandraCSharpDriver
Otwórz plik Program.cs.
Usuń dowolną istniejącą zawartość w pliku.
Dodaj blok using dla przestrzeni nazw Cassandra.
using Cassandra;
Utwórz nowe wystąpienie Cluster przy użyciu poświadczeń emulatora. Utwórz nową sesję przy użyciu polecenia 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();
Utwórz nową bazę danych i kontener przy użyciu narzędzi PrepareAsync i 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());
Utwórz nowy element w tabeli przy użyciu polecenia ExecuteAsync. Służy Bind do przypisywania właściwości do elementu.
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);
Uruchom aplikację .NET.
dotnet run
Użyj sterownika Python Apache Cassandra aby nawiązać połączenie z emulatorem z aplikacji Python.
Rozpocznij w pustym folderze.
Zaimportuj pakiet cassandra-driver z indeksu pakietu Python.
pip install cassandra-driver
Utwórz plik app.py.
Zaimportuj PROTOCOL_TLS_CLIENT, SSLContext i CERT_NONE z modułu ssl. Następnie zaimportuj Cluster z modułu cassandra.cluster . Na koniec zaimportuj PlainTextAuthProvider z modułu cassandra.auth .
from ssl import PROTOCOL_TLS_CLIENT, SSLContext, CERT_NONE
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
Utwórz nową zmienną kontekstową TLS/SSL przy użyciu polecenia SSLContext. Skonfiguruj kontekst, aby nie zweryfikować certyfikatu z podpisem własnym emulatora.
ssl_context = SSLContext(PROTOCOL_TLS_CLIENT)
ssl_context.check_hostname = False
ssl_context.verify_mode = CERT_NONE
Utwórz nowy session przy użyciu poświadczeń emulatora, PlainTextAuthProvider, Cluster i 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()
Utwórz nową przestrzeń kluczy i tabelę przy użyciu polecenia 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)"
)
Użyj session.execute polecenia , aby utworzyć nowy element w tabeli.
item = {"id": "68719518371", "name": "Kiama classic surfboard"}
session.execute(
"INSERT INTO cosmicworks.products (id, name) VALUES (%s, %s)",
[item["id"], item["name"]],
)
Uruchom aplikację Python.
python app.py
Użyj sterownika Node.js Apache Cassandra, aby użyć emulatora z aplikacji Node.js/JavaScript.
Rozpocznij w pustym folderze.
Zainicjuj nowy moduł.
npm init es6 --yes
Zainstaluj pakiet cassandra-driver z Menedżer pakietów Node.
npm install --save cassandra-driver
Utwórz plik app.js.
Zaimportuj Client typ i auth przestrzeń nazw z modułu cassandra-driver .
import { Client, auth } from 'cassandra-driver'
Użyj PlainTextAuthProvider, aby utworzyć nowy obiekt dla poświadczeń emulatora. Użyj Client, aby nawiązać połączenie z emulatorem przy użyciu poświadczeń.
const credentials = new auth.PlainTextAuthProvider(
'localhost',
'C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=='
)
const client = new Client({
contactPoints: [
'localhost:10350'
],
authProvider: credentials,
localDataCenter: 'South Central US'
})
Aby utworzyć execute i tabelę, użyj do uruchomienia polecenia po stronie serwera.
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)'
)
Użyj execute ponownie, aby utworzyć nowy element z parametrami.
const item = {
id: '68719518371',
name: 'Kiama classic surfboard'
}
await client.execute(
'INSERT INTO cosmicworks.products (id, name) VALUES (?, ?)',
[
item.id,
item.name
]
)
Uruchom aplikację Node.js.
node app.js
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj klienta tak, aby wyłączył walidację protokołu TLS/SSL:
const client = new Client({
...,
...,
...,
sslOptions: {
rejectUnauthorized: false
}
})
Ważna
Przed rozpoczęciem interfejs API dla języka Apache Gremlin wymaga utworzenia zasobów w emulatorze. Utwórz bazę danych o nazwie db1 i kontener o nazwie coll1. Ustawienia przepływności są nieistotne dla tego przewodnika i można je ustawić tak mało, jak chcesz.
Użyj sterownika Apache Gremlin .NET aby nawiązać połączenie z emulatorem z aplikacji .NET.
Rozpocznij w pustym folderze.
Tworzenie nowej aplikacji konsolowej .NET
dotnet new console
Dodaj pakiet Gremlin.Net z NuGet.
dotnet add package Gremlin.Net
Otwórz plik Program.cs.
Usuń dowolną istniejącą zawartość w pliku.
Dodaj blok using dla przestrzeni nazw Gremlin.Net.Driver.
using Gremlin.Net.Driver;
Utwórz nowe wystąpienie GremlinServer oraz GremlinClient używając poświadczeń emulatora.
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()
);
Wyczyść graf przy użyciu polecenia SubmitAsync.
await client.SubmitAsync(
requestScript: "g.V().drop()"
);
Ponownie użyj SubmitAsync polecenia , aby dodać nowy element do grafu z określonymi parametrami.
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" }
}
);
Uruchom aplikację .NET.
dotnet run
Użyj sterownika Apache Gremlin Python aby nawiązać połączenie z emulatorem z aplikacji Python.
Rozpocznij w pustym folderze.
Zaimportuj pakiet gremlinpython z indeksu pakietu Python.
pip install gremlinpython
Utwórz plik app.py.
Zaimportuj client z modułu gremlin_python.driver .
from gremlin_python.driver import client
Utwórz nowy Client przy użyciu danych uwierzytelniających emulatora.
client = client.Client(
url="ws://localhost:8901/",
traversal_source="g",
username="/dbs/db1/colls/coll1",
password=(
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnq"
"yMsEcaGQy67XIw/Jw=="
),
)
Wyczyść graf przy użyciu polecenia client.submit.
client.submit(message="g.V().drop()")
Ponownie użyj client.submit polecenia , aby dodać nowy element do grafu z określonymi parametrami.
client.submit(
message=(
"g.addV('product').property('id', prop_id).property('name', prop_name)"
),
bindings={
"prop_id": "68719518371",
"prop_name": "Kiama classic surfboard",
},
)
Uruchom aplikację Python.
python app.py
Użyj sterownika Node.js Apache Gremlin, aby użyć emulatora z aplikacji Node.js/JavaScript.
Rozpocznij w pustym folderze.
Zainicjuj nowy moduł.
npm init es6 --yes
Zainstaluj pakiet gremlin z Menedżer pakietów Node.
npm install --save gremlin
Utwórz plik app.js.
Zaimportuj gremlin moduł.
import gremlin from 'gremlin'
Użyj PlainTextSaslAuthenticator, aby utworzyć nowy obiekt dla poświadczeń emulatora. Użyj Client, aby nawiązać połączenie z emulatorem przy użyciu poświadczeń.
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()
Użyj submit, aby uruchomić polecenie po stronie serwera, aby wyczyścić wykres, jeśli zawiera już dane.
await client.submit('g.V().drop()')
Ponownie użyj submit polecenia , aby dodać nowy element do grafu z określonymi parametrami.
await client.submit(
'g.addV(\'product\').property(\'id\', prop_id).property(\'name\', prop_name)', {
prop_id: '68719518371',
prop_name: 'Kiama classic surfboard'
}
)
Uruchom aplikację Node.js.
node app.js
Użyj zestawu SDK Azure Tables dla .NET, aby nawiązać połączenie z emulatorem z aplikacji .NET.
Rozpocznij w pustym folderze.
Tworzenie nowej aplikacji konsolowej .NET
dotnet new console
Dodaj pakiet Azure.Data.Tables z NuGet.
dotnet add package Azure.Data.Tables
Otwórz plik Program.cs.
Usuń dowolną istniejącą zawartość w pliku.
Dodaj blok using dla przestrzeni nazw Azure.Data.Tables.
using Azure.Data.Tables;
Utwórz nowe wystąpienie TableServiceClient przy użyciu poświadczeń emulatora.
var serviceClient = new TableServiceClient(
connectionString: "DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;"
);
Użyj GetTableClient do utworzenia nowej instancji TableClient z nazwą tabeli. Następnie upewnij się, że tabela istnieje przy użyciu polecenia CreateIfNotExistsAsync.
var client = serviceClient.GetTableClient(
tableName: "cosmicworksproducts"
);
await client.CreateIfNotExistsAsync();
Utwórz nowy record typ dla elementów.
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; }
}
Utwórz nowy element w tabeli przy użyciu UpsertEntityAsync oraz trybu Replace.
var item = new Product
{
RowKey = "68719518371",
PartitionKey = "Surfboards",
Name = "Kiama classic surfboard",
Timestamp = DateTimeOffset.Now
};
await client.UpsertEntityAsync(
entity: item,
mode: TableUpdateMode.Replace
);
Uruchom aplikację .NET.
dotnet run
Użyj Azure Tables Python SDK aby nawiązać połączenie z emulatorem z aplikacji Python.
Rozpocznij w pustym folderze.
Zaimportuj pakiet azure-data-tables z indeksu pakietu Python.
pip install azure-data-tables
Utwórz plik app.py.
Zaimportuj TableServiceClient i UpdateMode z modułu azure.data.tables .
from azure.data.tables import TableServiceClient, UpdateMode
Użyj TableServiceClient.from_connection_string polecenia, aby utworzyć klienta poziomu usługi.
service = TableServiceClient.from_connection_string(
conn_str=(
"DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yD"
"jf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEca"
"GQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;"
)
)
Utwórz nowego klienta na poziomie tabeli przy użyciu polecenia create_table_if_not_exists.
client = service.create_table_if_not_exists(table_name="cosmicworksproducts")
Użyj upsert_entity, aby utworzyć nowy element w kontenerze.
item = {
"PartitionKey": "68719518371",
"RowKey": "Surfboards",
"name": "Kiama classic surfboard",
}
client.upsert_entity(entity=item, mode=UpdateMode.REPLACE)
Uruchom aplikację Python.
python app.py
Użyj Azure Tables JavaScript SDK aby użyć emulatora z aplikacji Node.js/JavaScript.
Rozpocznij w pustym folderze.
Zainicjuj nowy moduł.
npm init es6 --yes
Zainstaluj pakiet @azure/data-tables z Menedżer pakietów Node.
npm install --save @azure/data-tables
Utwórz plik app.js.
Zaimportuj TableClient typ z modułu @azure/data-tables .
import { TableClient } from '@azure/data-tables'
Użyj TableClient.fromConnectionString, aby utworzyć nowe wystąpienie klienta przy użyciu ciągu połączenia emulator.
const client = TableClient.fromConnectionString(
'DefaultEndpointsProtocol=http;AccountName=localhost;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;TableEndpoint=http://localhost:8902/;',
'cosmicworksproducts'
)
Użyj createTable polecenia , aby utworzyć nową tabelę, jeśli jeszcze nie istnieje.
await client.createTable()
Użyj upsertEntity polecenia , aby utworzyć lub zamienić element.
const item = {
partitionKey: '68719518371',
rowKey: 'Surfboards',
name: 'Kiama classic surfboard'
}
await client.upsertEntity(
item,
'Replace'
)
Uruchom aplikację Node.js.
node app.js
Warning
Jeśli wystąpi błąd SSL, może być konieczne wyłączenie protokołu TLS/SSL dla aplikacji. Dzieje się to często, jeśli programujesz na komputerze lokalnym, używając emulatora Azure Cosmos DB w kontenerze i nie zaimportowałeś certyfikatu SSL kontenera. Aby rozwiązać ten problem, skonfiguruj klienta tak, aby wyłączył walidację protokołu TLS/SSL:
const client = TableClient.fromConnectionString(
...,
...,
{
allowInsecureConnection: true
}
)
Użyj emulatora w przepływie pracy CI na GitHub Actions
Aby uruchomić obciążenie ciągłej integracji, które automatycznie weryfikuje aplikację, użyj emulatora Azure Cosmos DB z wybranym zestawem testów. Emulator Azure Cosmos DB jest wstępnie zainstalowany w wersji windows-latest hostowanych środowisk uruchomieniowych GitHub Actions.
Uruchom zestaw testów przy użyciu wbudowanego sterownika testowego dla .NET i platformy testowej, takiej jak MSTest, NUnit lub XUnit.
Sprawdź, czy zestaw testów jednostkowych dla aplikacji działa zgodnie z oczekiwaniami.
dotnet test
Utwórz nowy przepływ pracy w repozytorium GitHub w pliku o nazwie .github/workflows/ci.yml.
Dodaj zadanie do przepływu pracy, aby uruchomić emulator Azure Cosmos DB przy użyciu programu PowerShell i uruchomić pakiet testów jednostkowych.
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
Uwaga / Notatka
Uruchom emulator z wiersza polecenia przy użyciu różnych argumentów lub poleceń programu PowerShell. Aby uzyskać więcej informacji, zobacz argumenty wiersza polecenia emulatora.
Przetestuj operacje aplikacji Python i bazy danych przy użyciu pytest.
Sprawdź, czy zestaw testów jednostkowych dla aplikacji działa zgodnie z oczekiwaniami.
pip install -U pytest
pytest
Utwórz nowy przepływ pracy w repozytorium GitHub w pliku o nazwie .github/workflows/ci.yml.
Dodaj zadanie do przepływu pracy, aby uruchomić emulator Azure Cosmos DB przy użyciu programu PowerShell i uruchomić pakiet testów jednostkowych.
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
Uwaga / Notatka
Uruchom emulator z wiersza polecenia przy użyciu różnych argumentów lub poleceń programu PowerShell. Aby uzyskać więcej informacji, zobacz argumenty wiersza polecenia emulatora.
Użyj polecenia mocha , aby przetestować aplikację Node.js i jej modyfikacje bazy danych.
Sprawdź, czy zestaw testów jednostkowych dla aplikacji działa zgodnie z oczekiwaniami.
npm install --global mocha
mocha
Utwórz nowy przepływ pracy w repozytorium GitHub w pliku o nazwie .github/workflows/ci.yml.
Dodaj zadanie do przepływu pracy, aby uruchomić emulator Azure Cosmos DB przy użyciu programu PowerShell i uruchomić pakiet testów jednostkowych.
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
Uwaga / Notatka
Uruchom emulator z wiersza polecenia przy użyciu różnych argumentów lub poleceń programu PowerShell. Aby uzyskać więcej informacji, zobacz argumenty wiersza polecenia emulatora.
Następne kroki