Azure DevOps で Azure Cosmos DB エミュレーター ビルド タスクを使用して CI/CD パイプラインを設定する
適用対象: NoSQL MongoDB Cassandra Gremlin Table
注意
2022 年 4 月 1 日に Windows 2016 ホスト ランナーが完全に削除されたため、Azure DevOps のビルド タスクで Azure Cosmos DB エミュレーターを使うこの方法はサポートされなくなりました。 現在、代替ソリューションに積極的に取り組んでいます。 一方、以下の手順に従って、"windows-2019" エージェントの種類を使用するときにプレインストールされている Azure Cosmos DB Emulator を利用できます。
Azure Cosmos DB Emulator では、Azure Cosmos DB サービスを開発目的でエミュレートするローカル環境を利用できます。 エミュレーターを使用すれば、Azure サブスクリプションを作成したりコストをかけたりせずに、アプリケーションをローカルで開発してテストできます。
エミュレーター用の PowerShell タスク
Azure Cosmos DB エミュレーターを起動する一般的な PowerShell ベースのタスクは、次のようにスクリプト化できます。
"windows-2019" エージェントの種類を選択するジョブ構成の例。
エミュレーターの起動に必要な 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
}
また、Azure Cosmos DB エミュレーターがプレインストールされていないエージェントを使う必要がある場合は、独自のセルフホステッド Windows エージェントを構築する方法もあります。 セルフホステッド エージェントでは、https://aka.ms/cosmosdb-emulator から 'curl' または 'wget' を使って最新のエミュレーターの MSI パッケージをダウンロードし、'msiexec' を使って 'quiet' インストールすることができます。 インストール後、上記と同様の PowerShell スクリプトを実行してエミュレーターを起動できます。
次のステップ
エミュレーターを使用して開発とテストをローカルで行う方法の詳細については、「ローカルの開発とテストでの Azure Cosmos DB Emulator の使用」を参照してください。
エミュレーター TLS/SSL 証明書のエクスポートについては、「Java、Python、および Node.js で使用する Azure Cosmos DB Emulator 証明書のエクスポート」を参照してください。