Configurar um pipeline CI/CD com a tarefa de compilação do Emulador do Azure Cosmos DB no Azure DevOps

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Nota

Devido à remoção completa dos corredores alojados no Windows 2016 a 1 de abril de 2022, este método de utilização do emulador do Azure Cosmos DB com a tarefa de compilação no Azure DevOps já não é suportado. Estamos a trabalhar ativamente em soluções alternativas. Entretanto, pode seguir as instruções abaixo para tirar partido do emulador do Azure Cosmos DB que vem pré-instalado ao utilizar o tipo de agente "windows-2019".

O Emulador do Azure Cosmos DB fornece um ambiente local que emula o serviço do Azure Cosmos DB para fins de desenvolvimento. O emulador permite-lhe programar e testar a sua aplicação localmente, sem criar uma subscrição do Azure ou incorrer em custos.

Tarefa do PowerShell para Emulador

Uma tarefa típica baseada no PowerShell que irá iniciar o emulador do Azure Cosmos DB pode ser scriptada da seguinte forma:

Exemplo de uma configuração de tarefa, selecionando o tipo de agente "windows-2019". Captura de ecrã da configuração da tarefa com o windows-2019

Exemplo de uma tarefa que executa o script do PowerShell necessário para iniciar o emulador.

Captura de ecrã a executar o script do PowerShell para iniciar o 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
}

Também tem a opção de criar o seu próprio agente Windows autoalojado se precisar de utilizar um agente que não venha com o emulador do Azure Cosmos DB pré-instalado. No seu agente autoalojado, pode transferir o pacote MSI do emulador mais recente a partir da utilização de https://aka.ms/cosmosdb-emulator "curl" ou "wget" e, em seguida, utilizar "msiexec" para o instalar "tranquilo". Após a instalação, pode executar um script do PowerShell semelhante ao anterior para iniciar o emulador.

Passos seguintes

Para saber mais sobre a utilização do emulador para desenvolvimento e testes locais, veja Utilizar o Emulador do Azure Cosmos DB para desenvolvimento e teste locais.

Para exportar certificados TLS/SSL do emulador, veja Exportar os certificados do Emulador do Azure Cosmos DB para utilização com Java, Python e Node.js