Configurare una pipeline CI/CD con l'attività di compilazione dell'emulatore di Azure Cosmos DB in Azure DevOps

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Nota

A causa della rimozione completa degli strumenti di esecuzione ospitati di Windows 2016 a partire dal 1° aprile 2022, questo metodo di utilizzo dell'emulatore di Azure Cosmos DB con l'attività di compilazione in Azure DevOps non è più supportato. Microsoft sta lavorando per trovare soluzioni alternative. Nel frattempo, è possibile seguire le istruzioni seguenti per usufruire al meglio dell'emulatore di Azure Cosmos DB preinstallato quando si usa il tipo di agente "windows-2019".

L'emulatore di Azure Cosmos DB fornisce un ambiente locale che emula il servizio Azure Cosmos DB a fini di sviluppo. L'emulatore consente di sviluppare e testare l'applicazione in locale, senza creare una sottoscrizione di Azure né sostenere costi.

Attività di PowerShell Task per l'emulatore

Una tipica attività basata su PowerShell che avvia l'emulatore di Azure Cosmos DB può essere creata tramite script come indicato di seguito:

Esempio di configurazione di un processo selezionando il tipo di agente "windows-2019". Screenshot of the job configuration using windows-2019

Esempio di un'attività che esegue lo script di PowerShell necessario per avviare l'emulatore.

Screenshot executing the powershell script to start the emulator


# 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
}

È anche possibile creare un agente Windows self-hosted personalizzato se è necessario usare un agente che non sia fornito con l'emulatore di Azure Cosmos DB preinstallato. Nell'agente self-hosted è quindi possibile scaricare il pacchetto MSI dell'emulatore più recente da https://aka.ms/cosmosdb-emulator usando 'curl' o 'wget' e quindi eseguire 'msiexec' per installarlo in modalità 'quiet'. Dopo l'installazione, è possibile eseguire uno script di PowerShell simile a quello precedente per avviare l'emulatore.

Passaggi successivi

Per altre informazioni sull'uso dell'emulatore per operazioni di sviluppo e test locali, vedere Usare l'emulatore di Azure Cosmos DB per sviluppo e test locali.

Per esportare i certificati TLS/SSL dell'emulatore, vedere Esportare i certificati dell'emulatore di Azure Cosmos DB per l'uso con Java, Python e Node.js