Configuración de una canalización de CI/CD con la tarea de compilación del emulador de Azure Cosmos DB en Azure DevOps

SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table

Nota:

Al haberse eliminado completamente los ejecutores hospedados de Windows 2016 el 1 de abril de 2022, deja de admitirse el método de usar el emulador de Azure Cosmos DB con la tarea de compilación en Azure DevOps. Se está trabajando activamente para ofrecer soluciones alternativas. Entretanto, puede seguir las instrucciones siguientes para aprovechar el emulador de Azure Cosmos DB que viene preinstalado al usar el tipo de agente "windows-2019".

El Emulador de Azure Cosmos DB proporciona un entorno local que emula el servicio de Azure Cosmos DB con fines de desarrollo. Dicho emulador permite desarrollar y probar aplicaciones localmente sin necesidad de crear una suscripción a Azure ni incurrir en gastos.

Tarea de PowerShell para el emulador

Una tarea típica basada en PowerShell que iniciará el emulador de Azure Cosmos DB se puede incluir en un script como se indica a continuación:

Ejemplo de una configuración de trabajo en el que se selecciona el tipo de agente "windows-2019". Captura de pantalla de la configuración del trabajo mediante Windows-2019

Ejemplo de una tarea que ejecuta el script de PowerShell necesario para iniciar el emulador.

Captura de pantalla de la ejecución del script de PowerShell para iniciar el emulador


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

También tiene la opción de crear su propio agente de Windows autohospedado si necesita usar un agente que no viene con el emulador de Azure Cosmos DB preinstalado. En el agente autohospedado, puede descargar el paquete de MSI del emulador más reciente de https://aka.ms/cosmosdb-emulator mediante "curl" o "wget" y luego usar "msiexec" para instalarlo en "de forma silenciosa". Después de la instalación, puede ejecutar un script de PowerShell similar al anterior para iniciar el emulador.

Pasos siguientes

Para más información acerca del uso del emulador para el desarrollo y las pruebas locales, consulte Uso del Emulador de Azure Cosmos DB para desarrollo y pruebas de forma local.

Para exportar los certificados TLS/SSL del emulador, consulte Exportación de los certificados del emulador de Azure Cosmos DB para su uso con Java, Python y Node.js