Sdílet prostřednictvím


Nastavení kanálu CI/CD pomocí úlohy sestavení emulátoru služby Azure Cosmos DB v Azure DevOps

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

Poznámka:

Vzhledem k úplnému odebrání spouštěčů hostovaných ve Windows 2016 1. dubna 2022 se tato metoda použití emulátoru služby Azure Cosmos DB s úlohou sestavení v Azure DevOps už nepodporuje. Aktivně pracujeme na alternativních řešeních. Mezitím můžete postupovat podle následujících pokynů a využít emulátor služby Azure Cosmos DB, který je předinstalovaný při použití typu agenta windows-2019.

Emulátor služby Azure Cosmos DB zajistí místní prostředí, které emuluje službu Azure Cosmos DB pro účely vývoje. Emulátor umožňuje vyvíjet a testovat aplikace místně bez vytváření předplatného Azure a bez jakýchkoli nákladů.

Úloha PowerShellu pro emulátor

Typickou úlohu založenou na PowerShellu, která spustí emulátor služby Azure Cosmos DB, je možné skriptovat následujícím způsobem:

Příklad konfigurace úlohy a výběr typu agenta windows-2019 Snímek obrazovky s konfigurací úlohy pomocí windows-2019

Příklad úlohy, která spouští skript PowerShellu potřebný ke spuštění emulátoru

Snímek obrazovky, který spouští skript PowerShellu pro spuštění emulátoru


# Write your PowerShell commands here.

dir "$env:ProgramFiles\Azure Cosmos DB Emulator\"

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

$startEmulatorCmd = "Start-CosmosDbEmulator -NoFirewall -NoUI"
Write-Host $startEmulatorCmd
Invoke-Expression -Command $startEmulatorCmd

# Pipe an emulator info object to the output stream

$Emulator = Get-Item "$env:ProgramFiles\Azure Cosmos DB Emulator\Microsoft.Azure.Cosmos.Emulator.exe"
$IPAddress = Get-NetIPAddress -AddressFamily IPV4 -AddressState Preferred -PrefixOrigin Manual | Select-Object IPAddress

New-Object PSObject @{
Emulator = $Emulator.BaseName
Version = $Emulator.VersionInfo.ProductVersion
Endpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "https://${_}:8081/" }
MongoDBEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "mongodb://${_}:10255/" }
CassandraEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "tcp://${_}:10350/" }
GremlinEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "http://${_}:8901/" }
TableEndpoint = @($(hostname), $IPAddress.IPAddress) | ForEach-Object { "https://${_}:8902/" }
IPAddress = $IPAddress.IPAddress
}

Máte také možnost vytvořit vlastního místního agenta Windows, pokud potřebujete použít agenta, který není součástí předinstalovaného emulátoru služby Azure Cosmos DB. V místním agentovi si můžete stáhnout nejnovější balíček MSI emulátoru pomocí https://aka.ms/cosmosdb-emulator příkazu curl nebo wget a pak ho nainstalovat pomocí msiexec . Po instalaci můžete spustit podobný skript PowerShellu jako výše uvedený skript pro spuštění emulátoru.

Další kroky

Pokud se chcete dozvědět další informace o použití emulátoru pro místní vývoj a testování, přečtěte si článek o použití emulátoru služby Azure Cosmos DB pro místní vývoj a testování.

Export certifikátů TLS/SSL emulátoru najdete v tématu Export certifikátů emulátoru služby Azure Cosmos DB pro použití s Javou, Pythonem a Node.js