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".
Esempio di un'attività che esegue lo script di PowerShell necessario per avviare l'emulatore.
# 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
}
È 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