إعداد مسار 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 Emulator بيئة محلية تحاكي خدمة Azure Cosmos DB لأغراض التطوير. يسمح لك المحاكي بتطوير التطبيق واختباره محلياً دون إنشاء اشتراك Azure أو تحمل أي تكاليف.

مهمة PowerShell للمحاكي

يمكن كتابة مهمة نموذجية تستند إلى 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