Configurar um pipeline de CI/CD com a tarefa de build do Emulador do Azure Cosmos DB no Azure DevOps

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Table

Observação

Devido à remoção completa de executores hospedados no Windows 2016 em 1º de abril de 2022, esse método de usar o emulador do Azure Cosmos DB com tarefa de build no Azure DevOps não é mais compatível. Estamos trabalhando ativamente em soluções alternativas. Enquanto isso, você pode seguir as instruções abaixo para aproveitar o emulador do Azure Cosmos DB que vem pré-instalado ao usar o tipo de agente "windows-2019".

O Emulador do Azure Cosmos DB fornece um ambiente local que emula o serviço Azure Cosmos DB para fins de desenvolvimento. O emulador permite desenvolver e testar seu aplicativo localmente sem criar uma assinatura do Azure ne, incorrer em custos.

Tarefa do PowerShell para emulador

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

Exemplo de uma configuração de trabalho, selecionando o tipo de agente "windows-2019". Captura de tela da configuração de trabalho usando windows-2019

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

Captura de tela da execução do 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
}

Você também terá a opção de criar seu próprio agente do Windows auto-hospedado, se precisar usar um agente que não venha com o emulador do Azure Cosmos DB pré-instalado. No seu agente auto-hospedado, você pode baixar o pacote MSI do emulador mais recente em https://aka.ms/cosmosdb-emulator usando 'curl' ou 'wget' e, em seguida, usar 'msiexec' para 'quiet' para instalá-lo. Após a instalação, você pode executar um script do PowerShell semelhante ao acima para iniciar o emulador.

Próximas etapas

Para saber mais sobre como usar o emulador para teste e desenvolvimento locais, veja Usar o emulador do Azure Cosmos DB para desenvolvimento e teste locais.

Para exportar certificados TLS/SSL do emulador, confira Exportar os certificados do Emulador do Azure Cosmos DB para uso com Java, Python e Node.js