Configurar um pipeline de CI/CD com a tarefa de build do Emulador do Azure Cosmos DB no Azure DevOps
APLICA-SE AO: 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".
Exemplo de uma tarefa executando o script do PowerShell necessário 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 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