Поделиться через


Настройка конвейера CI/CD с использованием задачи сборки эмулятора Azure Cosmos DB в Azure DevOps

Область применения: Nosql Mongodb Кассандра Гремлин Таблица

Примечание.

Из-за полного удаления размещенных средств выполнения Windows 2016 1 апреля 2022 г. этот метод использования эмулятора Azure Cosmos DB с задачей сборки в Azure DevOps больше не поддерживается. Мы активно работаем над альтернативными решениями. Тем временем вы можете выполнить приведенные ниже инструкции, чтобы использовать эмулятор базы данных Azure Cosmos DB, который поставляется предварительно установленным при использовании типа агента "windows-2019".

Эмулятор Azure Cosmos DB предоставляет локальную среду для разработки, которая эмулирует службу Azure Cosmos DB. Этот эмулятор позволяет разрабатывать и тестировать приложения локально без создания подписки Azure и каких-либо затрат.

Задача PowerShell для Emulator

Типичная задача на основе PowerShell, которая запустит эмулятор Azure Cosmos DB, можно выполнить скрипт следующим образом:

Пример конфигурации задания, в которой выбирается типа агента "windows-2019". Снимок экрана: конфигурация задания с использованием Windows 2019

Пример задачи, выполняющей скрипт PowerShell, который требуется для запуска эмулятора.

Снимок экрана: выполнение скрипта PowerShell, для запуска эмулятора.


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

Вы также можете создать собственный локальный агент Windows, если вам нужно использовать агент , который не будет использоваться с предварительно установленным эмулятором Azure Cosmos DB. На локальном агенте можно скачать последний пакет MSI эмулятора с https://aka.ms/cosmosdb-emulator помощью curl или wget, а затем использовать msiexec для его установки. После установки можно запустить сценарий PowerShell, аналогичный тому, что был описано выше, чтобы запустить эмулятор.

Следующие шаги

См. дополнительные сведения об использовании эмулятора Azure Cosmos DB для разработки и тестирования в локальной среде.

Инструкции см. в статье об экспорте TLS/SSL-сертификатов эмулятора Azure Cosmos DB для использования с Java, Python и Node.js.