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".
Exemplo de uma tarefa que executa 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 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