Menyiapkan alur CI/CD dengan tugas build Emulator Azure Cosmos DB di Azure DevOps

BERLAKU UNTUK: Nosql MongoDB Cassandra Gremlin Meja

Catatan

Karena penghapusan penuh runner yang dihosting Windows 2016 pada 1 April 2022, metode penggunaan emulator Azure Cosmos DB dengan tugas build di Azure DevOps tidak lagi didukung. Kami saat ini secara aktif mengupayakan solusi alternatif. Sementara itu, Anda dapat mengikuti petunjuk di bawah untuk memanfaatkan emulator Azure Cosmos DB yang telah diinstal sebelumnya saat menggunakan jenis agen "windows-2019".

Emulator Azure Cosmos DB menyediakan lingkungan lokal yang meniru layanan Azure Cosmos DB untuk tujuan pengembangan. Emulator tersebut memungkinkan Anda mengembangkan dan menguji aplikasi secara lokal tanpa membuat langganan Azure atau membayar biaya apa pun.

Tugas PowerShell untuk Emulator

Tugas berbasis PowerShell khas yang akan memulai emulator Azure Cosmos DB dapat ditulis sebagai berikut:

Contoh konfigurasi pekerjaan, memilih jenis agen "windows-2019". Cuplikan layar konfigurasi pekerjaan dengan menggunakan windows-2019

Contoh tugas yang menjalankan skrip PowerShell yang diperlukan untuk memulai emulator.

Cuplikan layar skrip powershell yang dijalankan untuk memulai emulator


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

Anda juga memiliki opsi untuk membangun agen Windows yang dihost sendiri jika Anda perlu menggunakan agen yang tidak disertakan dengan emulator Azure Cosmos DB yang telah diinstal sebelumnya. Pada agen yang dihost sendiri, Anda dapat mengunduh paket MSI emulator terbaru dari https://aka.ms/cosmosdb-emulator menggunakan 'curl' atau 'wget', lalu menggunakan 'msiexec' untuk 'tenang' menginstalnya. Setelah penginstalan, Anda dapat menjalankan skrip PowerShell yang sama dengan yang di atas untuk memulai emulator.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang penggunaan emulator untuk pengembangan dan pengujian lokal, lihat Menggunakan Emulator Azure Cosmos DB untuk pengembangan dan pengujian lokal.

Untuk mengekspor sertifikat TLS/SSL emulator, lihat Mengekspor sertifikat Emulator Azure Cosmos DB untuk digunakan dengan Java, Python, dan Node.js