Een CI/CD-pijplijn instellen met de build-taak van Azure Cosmos DB Emulator in Azure DevOps
VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel
Notitie
Vanwege de volledige verwijdering van door Windows 2016 gehoste hardlopers 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 die de Azure Cosmos DB-emulator start, kan als volgt worden gescript:
Voorbeeld van een taakconfiguratie, waarbij u het agenttype windows-2019 selecteert.
Voorbeeld van een taak die het PowerShell-script uitvoert dat nodig is om de emulator te starten.
# 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
}
U hebt ook de mogelijkheid om uw eigen zelf-hostende Windows-agent te bouwen als u een agent wilt gebruiken die niet vooraf wordt geleverd met de Azure Cosmos DB-emulator. Op uw zelf-hostende agent kunt u het MSI-pakket https://aka.ms/cosmosdb-emulator van de meest recente emulator downloaden met 'curl' of 'wget', en vervolgens msiexec gebruiken om het te installeren. Na de installatie kunt u een vergelijkbaar PowerShell-script uitvoeren als hierboven 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.