Configurar um pipeline de 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 total dos corredores hospedados do Windows 2016 em 1º de abril de 2022, esse método de usar o emulador do Azure Cosmos DB com a tarefa de compilação no Azure DevOps não é mais suportado. Estamos a trabalhar 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 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 iniciará o emulador do Azure Cosmos DB pode ser roteirizada da seguinte maneira:

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

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

Captura de tela executando o script powershell para iniciar o emulador


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

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

Próximos passos

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, consulte Exportar os certificados do emulador do Azure Cosmos DB para uso com Java, Python e Node.js