Een CI/CD-pijplijn instellen met de buildtaak van Azure Cosmos DB Emulator in Azure DevOps

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Notitie

Vanwege de volledige verwijdering van windows 2016 gehoste runners op 1 april 2022, wordt deze methode voor het gebruik van de Azure Cosmos DB-emulator met build-taak in Azure DevOps niet meer ondersteund. We werken actief aan alternatieve oplossingen. Ondertussen kunt u de onderstaande instructies volgen om gebruik te maken van de Azure Cosmos DB-emulator die vooraf is geïnstalleerd wanneer u het agenttype 'windows-2019' gebruikt.

De Azure Cosmos DB Emulator is een lokale omgeving waarin de Azure Cosmos DB-service wordt geëmuleerd voor ontwikkelingsdoeleinden. Met behulp van de emulator kunt u uw toepassing lokaal ontwikkelen en testen, kosteloos en zonder een Azure-abonnement te maken.

PowerShell-taak voor emulator

Een typische PowerShell-taak waarmee de Azure Cosmos DB-emulator wordt gestart, kan als volgt worden gescript:

Voorbeeld van een taakconfiguratie, waarbij het agenttype 'windows-2019' wordt geselecteerd. Schermopname van de taakconfiguratie met windows-2019

Voorbeeld van een taak die het PowerShell-script uitvoert dat nodig is om de emulator te starten.

Schermopname van het uitvoeren van het PowerShell-script om de emulator te starten


# Write your PowerShell commands here.

dir "C:\Program Files\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
}

U hebt ook de mogelijkheid om uw eigen zelf-hostende Windows-agent te bouwen als u een agent wilt gebruiken die niet wordt geleverd met de Azure Cosmos DB-emulator die vooraf is geïnstalleerd. Op uw zelf-hostende agent kunt u het MSI-pakket van de meest recente emulator downloaden met behulp van https://aka.ms/cosmosdb-emulator 'curl' of 'wget', en vervolgens 'msiexec' gebruiken om het te 'stil' installeren. Na de installatie kunt u een vergelijkbaar PowerShell-script uitvoeren als het bovenstaande om de emulator te starten.

Volgende stappen

Zie De Azure Cosmos DB Emulator gebruiken voor lokaal ontwikkelen en testen voor meer informatie over het gebruik van de emulator voor lokaal ontwikkelen en testen.

Zie De Azure Cosmos DB Emulator-certificaten exporteren voor gebruik met Java, Python en Node.js als u TLS/SSL-certificaten voor de emulator wilt exporteren