Настройка конвейера 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 "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
}

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

Дальнейшие действия

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

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