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
Příklad úlohy, která spouští skript PowerShellu potřebný ke 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