سطر الأوامر ومرجع PowerShell لمحاكي Windows (المحلي)

ينطبق على: NoSQL MongoDB كاساندرا العفريت الجدول

يوفر محاكي Azure Cosmos DB بيئة محلية تحاكي خدمة Azure Cosmos DB لأغراض التطوير المحلي. بعد تثبيت المحاكي، يمكنك التحكم في المحاكي باستخدام سطر الأوامر وأوامر PowerShell. توضح هذه المقالة كيفية استخدام أوامر سطر الأوامر وPowerShell لبدء تشغيل وإيقاف المحاكي وتكوين الخيارات وتنفيذ عمليات أخرى. يجب تشغيل الأوامر من موقع التثبيت.

هام

تتضمن هذه المقالة وسيطات سطر الأوامر لمحاكي Windows المحلي فقط.

إدارة المحاكي باستخدام صيغة سطر الأوامر

Microsoft.Azure.Cosmos.Emulator.exe 
    [/Shutdown] [/DataPath] [/Port] [/MongoPort] 
    [/DirectPorts] [/Key] [/EnableRateLimiting] 
    [/DisableRateLimiting] [/NoUI] [/NoExplorer] 
    [/EnableMongoDbEndpoint] 
    [/?]

لعرض قائمة المعلمات، اكتب Microsoft.Azure.Cosmos.Emulator.exe /? في موجه الأوامر.

المعلمة الوصف مثال على الأمر
[لا توجد وسيطات] بدء تشغيل المحاكي بالإعدادات الافتراضية. Microsoft.Azure.Cosmos.Emulator.exe
[التعليمات] عرض قائمة وسيطات سطر الأوامر المدعومة. Microsoft.Azure.Cosmos.Emulator.exe /?
GetStatus يحصل على حالة المحاكي. يشير كل رمز خروج إلى الحالة: 1 = البدءوالتشغيل = 2والإيقاف3 = . تُشير التعليمة البرمجية للخروج إلى حدوث خطأ. لا يتم إنتاج أي إخراج آخر. Microsoft.Azure.Cosmos.Emulator.exe /GetStatus
Shutdown إيقاف تشغيل المحاكي. Microsoft.Azure.Cosmos.Emulator.exe /Shutdown
DataPath تحديد المسار الذي تريد تخزين ملفات البيانات فيه. القيمة الافتراضية هي %LocalAppdata%\CosmosDBEmulator. Microsoft.Azure.Cosmos.Emulator.exe /DataPath=E:\SomeDataFolder
Port تحديد رقم المنفذ الذي سيتم استخدامه للمحاكى. القيمة الافتراضية هي 8081. Microsoft.Azure.Cosmos.Emulator.exe /Port=65000
ComputePort يحدد رقم المنفذ لاستخدامه لخدمة بوابة الحوسبة المتداخلة. يتم حساب منفذ فحص نقطة نهاية HTTP للبوابة على أنه ComputePort + 79. ومن ثم، ComputePortComputePort + 79 يجب أن تكون مفتوحة ومتاحة. القيمة الافتراضية هي 8900. Microsoft.Azure.Cosmos.Emulator.exe /ComputePort=65100
EnableMongoDbEndpoint=3.2 تمكين واجهة برمجة التطبيقات للإصدار 3.2 من MongoDB. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.2
EnableMongoDbEndpoint=3.6 تمكين API للإصدار 3.6 من MongoDB. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=3.6
EnableMongoDbEndpoint=4.0 تمكين واجهة برمجة التطبيقات للإصدار 4.0 من MongoDB. Microsoft.Azure.Cosmos.Emulator.exe /EnableMongoDbEndpoint=4.0
MongoPort يحدد رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات ل MongoDB. القيمة الافتراضية هي ⁧10255⁩. Microsoft.Azure.Cosmos.Emulator.exe /MongoPort=65200
EnableCassandraEndpoint تمكين واجهة برمجة التطبيقات ل Apache Cassandra. Microsoft.Azure.Cosmos.Emulator.exe /EnableCassandraEndpoint
CassandraPort يحدد رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات لنقطة نهاية Cassandra. القيمة الافتراضية هي ⁧10350⁩. Microsoft.Azure.Cosmos.Emulator.exe /CassandraPort=65300
EnableGremlinEndpoint تمكين واجهة برمجة التطبيقات ل Apache Gremlin. Microsoft.Azure.Cosmos.Emulator.exe /EnableGremlinEndpoint
GremlinPort رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات لنقطة نهاية Apache Gremlin. القيمة الافتراضية هي ⁧8901⁩. Microsoft.Azure.Cosmos.Emulator.exe /GremlinPort=65400
EnableTableEndpoint تمكين واجهة برمجة التطبيقات للجدول. Microsoft.Azure.Cosmos.Emulator.exe /EnableTableEndpoint
TablePort رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات لنقطة نهاية الجدول. القيمة الافتراضية هي ⁧8902⁩. Microsoft.Azure.Cosmos.Emulator.exe /TablePort=65500
KeyFile قراءة مفتاح التخويل من الملف المحدد. /GenKeyFile استخدم الخيار لإنشاء ملف مفاتيح. Microsoft.Azure.Cosmos.Emulator.exe /KeyFile=D:\Keys\keyfile
ResetDataPath إزالة جميع الملفات بشكل متكرر في المسار المحدد. إذا لم تحدد مسارا، فسيتم تعيينه افتراضيا إلى %LOCALAPPDATA%\CosmosDbEmulator. Microsoft.Azure.Cosmos.Emulator.exe /ResetDataPath
StartTraces ابدأ في جمع سجلات تتبع الأخطاء باستخدام LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StartTraces
StopTraces توقف عن جمع سجلات تتبع الأخطاء باستخدام LOGMAN. Microsoft.Azure.Cosmos.Emulator.exe /StopTraces
StartWprTraces ابدأ في جمع سجلات تتبع الأخطاء باستخدام أداة تسجيل أداء Windows . Microsoft.Azure.Cosmos.Emulator.exe /StartWprTraces
StopWprTraces توقف عن جمع سجلات تتبع الأخطاء باستخدام أداة تسجيل أداء Windows . Microsoft.Azure.Cosmos.Emulator.exe /StopWprTraces
FailOnSslCertificateNameMismatch بشكل افتراضي، يعيد المحاكي إنشاء شهادة TLS/SSL الموقعة ذاتيا، إذا لم تتضمن SAN الخاصة بالشهادة اسم مجال مضيف المحاكي وعنوان IP المحلي (v4) localhostو و.127.0.0.1 باستخدام هذا الخيار، يفشل المحاكي بدلا من ذلك عند بدء التشغيل. يجب عليك بعد ذلك استخدام /GenCert الخيار لإنشاء شهادة TLS/SSL موقعة ذاتيا جديدة وتثبيتها. Microsoft.Azure.Cosmos.Emulator.exe /FailOnSslCertificateNameMismatch
GenCert إنشاء وتثبيت شهادة TLS/SSL موقعة ذاتيًا جديدة. اختياريا تضمين قائمة مفصولة بفواصل بأسماء DNS إضافية للوصول إلى المحاكي عبر الشبكة. Microsoft.Azure.Cosmos.Emulator.exe /GenCert
DirectPorts تحديد المنافذ التي سيتم استخدامها للاتصال المباشر. الإعدادات الافتراضية هي 10251و 1025210253و و.10254 Microsoft.Azure.Cosmos.Emulator.exe /DirectPorts:65600,65700
Key مفتاح التخويل للمحاكي. يجب أن يكون المفتاح ترميز 64 الأساسي لمتجه 64 بايت. Microsoft.Azure.Cosmos.Emulator.exe /Key:D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
EnableRateLimiting تحديد أن سلوك الحد من معدل الطلب ممكّنًا. Microsoft.Azure.Cosmos.Emulator.exe /EnableRateLimiting
DisableRateLimiting تحديد أن سلوك الحد من معدل الطلب معطلًا. Microsoft.Azure.Cosmos.Emulator.exe /DisableRateLimiting
NoUI لا تعرض واجهة مستخدم المحاكي. Microsoft.Azure.Cosmos.Emulator.exe /NoUI
NoExplorer لا يظهر مستكشف البيانات عند بدء التشغيل. Microsoft.Azure.Cosmos.Emulator.exe /NoExplorer
PartitionCount تحديد الحد الأقصى لعدد الحاويات المقسمة. لمزيد من المعلومات، راجع تغيير عدد الحاويات. القيمة الافتراضية هي 25. الحد الأقصى المسموح به هو 250. Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=15
DefaultPartitionCount تحديد العدد الافتراضي للأقسام لحاوية مقسمة. القيمة الافتراضية هي 25. Microsoft.Azure.Cosmos.Emulator.exe /DefaultPartitionCount=50
AllowNetworkAccess تمكين الوصول إلى المحاكي عبر الشبكة. يجب عليك أيضا تمرير /Key=<key_string> أو /KeyFile=<file_name> لتمكين الوصول إلى الشبكة. Microsoft.Azure.Cosmos.Emulator.exe /AllowNetworkAccess /Key=D67PoU0bcK/kgPKFHu4W+3SUY9LNcwcFLIUHnwrkA==
NoFirewall لا تضبط قواعد جدار الحماية عند /AllowNetworkAccess استخدام الخيار. Microsoft.Azure.Cosmos.Emulator.exe /NoFirewall
GenKeyFile إنشاء مفتاح تخويل جديد وحفظ الملف المحدد. يمكن استخدام المفتاح الذي تم إنشاؤه مع /Key الخيارات أو /KeyFile . Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=D:\Keys\keyfile
Consistency تعيين مستوى التناسق الافتراضي للحساب. القيمة الافتراضية هي Session. Microsoft.Azure.Cosmos.Emulator.exe /Consistency=Strong
? إظهار رسالة التعليمات.

إدارة المحاكي باستخدام PowerShell cmdlets

يأتي المحاكي مع وحدة PowerShell لبدء وإيقاف وإلغاء واسترداد حالة الخدمة. تشغيل cmdlet التالي لاستخدام وحدة PowerShell:

Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"

أو ضع الدليل PSModules الخاص بك على PSModulePath وقم باستيراده كما هو موضح في الأمر التالي:

$env:PSModulePath += ";$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules"
Import-Module Microsoft.Azure.CosmosDB.Emulator

فيما يلي ملخص لأوامر التحكم في المحاكي من PowerShell:

Get-CosmosDbEmulatorStatus

يحصل على حالة المحاكي. إرجاع إحدى هذه ServiceControllerStatus القيم:

  • ServiceControllerStatus.StartPending
  • ServiceControllerStatus.Running
  • ServiceControllerStatus.Stopped

إذا تمت مصادفة خطأ، فلن يتم إرجاع أي قيمة.

بناء الجملة

Get-CosmosDbEmulatorStatus 
    [[-AlternativeInstallLocation] <String>] 
    [<CommonParameters>]

المعلمات

الاسم النوع الوصف
AlternativeInstallLocation String

أمثلة

  • احصل على حالة المحاكي المثبت في D:\SomeFolder\AzureCosmosDBEmulator المجلد.

    @parameters = {
        AlternativeInstallLocation = "D:\SomeFolder\AzureCosmosDBEmulator"
    }
    Get-CosmosDbEmulatorStatus @parameters
    

Start-CosmosDbEmulator

بدء تشغيل المحاكي على الكمبيوتر المحلي. بشكل افتراضي، ينتظر الأمر حتى يكون المحاكي جاهزًا لقبول الطلبات. -NoWait استخدم الخيار ، إذا كنت ترغب في أن يعود cmdlet بمجرد بدء تشغيل المحاكي. استخدم معلمات Start-CosmosDbEmulator لتحديد خيارات، مثل منفذ NoSQL والمنفذ المباشر وأرقام منافذ MongoDB.

بناء الجملة

Start-CosmosDbEmulator [-AllowNetworkAccess]
    [-AlternativeInstallLocation <String>] [-CassandraPort <UInt16>]
    [-ComputePort <UInt16>] [-Consistency <String>] [-Credential
    <PSCredential>] [-DataPath <String>] [-DefaultPartitionCount
    <UInt16>] [-DirectPort <UInt16[]>] [-EnableMongoDb]
    [-EnableCassandra] [-EnableGremlin] [-EnableTable]
    [-EnableSqlCompute] [-EnablePreview]
    [-FailOnSslCertificateNameMismatch] [-GremlinPort <UInt16>]
    [-TablePort <UInt16>] [-SqlComputePort <UInt16>] [-Key <String>]
    [-MongoPort <UInt16>] [-MongoApiVersion <String>] [-NoFirewall]
    [-NoTelemetry] [-NoUI] [-NoWait] [-PartitionCount <UInt16>] [-Port
    <UInt16>] [-SimulateRateLimiting] [-Timeout <UInt32>] [-Trace]
    [<CommonParameters>]

المعلمات

الاسم النوع الوصف
AllowNetworkAccess SwitchParameter السماح بالوصول من جميع عناوين IP المعينة لمضيف المحاكي. يجب عليك أيضا تحديد قيمة ل Key أو KeyFile للسماح بالوصول إلى الشبكة.
AlternativeInstallLocation String مسار الموقع البديل إلى المحاكي القابل للتنفيذ.
CassandraPort UInt16 رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات ل Cassandra. المنفذ الافتراضي هو 10350.
ComputePort UInt16 المنفذ المراد استخدامه لخدمة بوابة الحوسبة المتداخلة. يتم حساب منفذ فحص نقطة نهاية HTTP للبوابة على أنه ComputePort + 79. ومن ثم، ComputePortComputePort + 79 يجب أن تكون مفتوحة ومتاحة. المنافذ الافتراضية هي 8900، 8979.
Consistency String يعين مستوى التناسق الافتراضي للمحاكي إلى Session أو Strong أو Eventual أو BoundedStaleness. المستوى الافتراضي هو Session.
Credential PSCredential يحدد حساب مستخدم لديه إذن لتنفيذ هذا الإجراء. استخدم اسم مستخدم، مثل User01 أو Domain01\User01، أو أدخل كائنا PSCredential ، مثل واحد من Get-Credential cmdlet. بشكل افتراضي، يستخدم cmdlet بيانات اعتماد المستخدم الحالي.
DataPath String مسار لتخزين ملفات البيانات. الموقع الافتراضي لملفات البيانات هو $env:LocalAppData\CosmosDbEmulator.
DefaultPartitionCount UInt16 عدد الأقسام التي يجب حجزها لكل مجموعة مقسمة. الافتراضي هو 25، وهي نفس القيمة الافتراضية لإجمالي عدد الأقسام.
DirectPort UInt16 قائمة بأربعة منافذ لاستخدامها للاتصال المباشر بالواجهة الخلفية للمحاكي. القائمة الافتراضية هي 10251و 1025210253و و.10254
EnableMongoDb SwitchParameter يحدد تمكين واجهة برمجة التطبيقات لنقطة نهاية MongoDB. القيمة الافتراضية هي false.
EnableCassandra SwitchParameter يحدد تمكين واجهة برمجة التطبيقات لنقطة نهاية Apache Cassandra. القيمة الافتراضية هي false.
EnableGremlin SwitchParameter يحدد تمكين واجهة برمجة التطبيقات لنقطة نهاية Apache Gremlin. القيمة الافتراضية هي false.
EnableTable SwitchParameter يحدد تمكين واجهة برمجة التطبيقات لنقطة نهاية الجدول. القيمة الافتراضية هي false.
EnableSqlCompute SwitchParameter يحدد تمكين واجهة برمجة التطبيقات لنقطة نهاية NoSQL. القيمة الافتراضية هي false.
EnablePreview SwitchParameter تمكين ميزات المحاكي الموجودة في المعاينة وغير الناضجة بالكامل لتكون قيد التشغيل بشكل افتراضي.
FailOnSslCertificateNameMismatch SwitchParameter بشكل افتراضي، يعيد المحاكي إنشاء شهادة TLS/SSL الموقعة ذاتيا، إذا لم تتضمن SAN الخاصة بالشهادة اسم مجال مضيف المحاكي وعنوان IP المحلي (v4) localhostو و.127.0.0.1 يؤدي هذا الخيار إلى فشل المحاكي عند بدء التشغيل بدلا من ذلك. يجب عليك بعد ذلك استخدام New-CosmosDbEmulatorCertificate الخيار لإنشاء شهادة TLS/SSL موقعة ذاتيا جديدة وتثبيتها.
GremlinPort UInt16 رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات ل Apache Gremlin. رقم المنفذ الافتراضي هو 8901.
TablePort UInt16 رقم المنفذ المراد استخدامه لواجهة برمجة التطبيقات للجدول. رقم المنفذ الافتراضي هو 8902.
SqlComputePort UInt16 رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات ل NoSQL. رقم المنفذ الافتراضي هو 8903.
Key String مفتاح التخويل للمحاكي. يجب أن تكون هذه القيمة هي الترميز الأساسي 64 لمتجه 64 بايت.
MongoPort UInt16 رقم المنفذ لاستخدامه لواجهة برمجة التطبيقات ل MongoDB. رقم المنفذ الافتراضي هو 10250.
MongoApiVersion String يحدد الإصدار الذي يجب استخدامه لواجهة برمجة التطبيقات ل MongoDB. الإصدار الافتراضي هو 4.0.
NoFirewall SwitchParameter يحدد أنه لا يجب إضافة أي قواعد منفذ واردة إلى جدار حماية مضيف المحاكي.
NoTelemetry SwitchParameter يحدد أن cmdlet لا يجب أن يجمع البيانات لجلسة المحاكي الحالية.
NoUI SwitchParameter يحدد أن cmdlet لا يجب أن يقدم واجهة المستخدم أو أيقونة شريط المهام.
NoWait SwitchParameter يحدد أن cmdlet يجب أن يعود بمجرد بدء تشغيل المحاكي. بشكل افتراضي، ينتظر cmdlet حتى اكتمال بدء التشغيل والمحاكي جاهز لتلقي الطلبات قبل العودة.
PartitionCount UInt16 العدد الإجمالي للأقسام المخصصة من قبل المحاكي.
Port UInt16 رقم المنفذ لخدمة بوابة المحاكي وواجهة مستخدم الويب. رقم المنفذ الافتراضي هو 8081.
SimulateRateLimiting SwitchParameter
Timeout UInt32
Trace SwitchParameter

أمثلة

  • ابدأ تشغيل المحاكي وانتظر حتى يتم بدء تشغيله بالكامل وجاهز لقبول الطلبات.

    Start-CosmosDbEmulator
    
  • ابدأ تشغيل المحاكي ب 5 أقسام محجوزة لكل مجموعة مقسمة. يتم تعيين العدد الإجمالي للأقسام إلى الافتراضي: 25. ومن ثم، فإن العدد الإجمالي للمجموعات المقسمة التي يمكن إنشاؤها هو 5 = 25 partitions / 5 partitions/collection. يتم تحديد كل مجموعة مقسمة على 50 GB = 5 partitions * 10 GB / partiton.

    @parameters = {
        DefaultPartitionCount = 5
    }
    Start-CosmosDbEmulator @parameters
    
  • يبدأ المحاكي بأرقام المنافذ البديلة.

    @parameters = {
        Port = 443 
        MongoPort = 27017 
        DirectPort = 20001,20002,20003,20004
    }
    Start-CosmosDbEmulator @parameters
    

Stop-CosmosDbEmulator

إيقاف المحاكي. بشكل افتراضي، ينتظر هذا الأمر حتى يتم إيقاف تشغيل المحاكي بالكامل. استخدم الخيار -NoWait، إذا كنت ترغب في إرجاع cmdlet بمجرد أن يبدأ المحاكي بإيقاف التشغيل.

بناء الجملة

Stop-CosmosDbEmulator 
    [[-AlternativeInstallLocation] <String>]
    [-NoWait] [[-Timeout] <UInt32>] [-Trace] 
    [<CommonParameters>]

المعلمات

الاسم النوع الوصف
AlternativeInstallLocation String
Timeout UInt32
NoWait SwitchParameter يحدد أن cmdlet يجب أن يعود بمجرد بدء إيقاف التشغيل.
Trace SwitchParameter

أمثلة

@parameters = {
    NoWait = $true
}
Stop-CosmosDbEmulator @parameters

Uninstall-CosmosDbEmulator

إلغاء تثبيت المحاكي وإزالة المحتويات الكاملة ل $env:LOCALAPPDATA\CosmosDbEmulatorاختياريا. يضمن cmdlet إيقاف المحاكي قبل إلغاء تثبيته.

بناء الجملة

Uninstall-CosmosDbEmulator 
    [-RemoveData] 
    [<CommonParameters>]

المعلمات

الاسم النوع الوصف
RemoveData SwitchParameter يحدد أن cmdlet يجب أن يحذف جميع البيانات بعد إزالة المحاكي.

أمثلة

@parameters = {
    RemoveData = $false
}
Uninstall-CosmosDbEmulator @parameters

تغيير عدد الحاويات الافتراضية

بشكل افتراضي، يمكنك إنشاء ما يصل إلى 25 حاوية ذات حجم ثابت (مدعومة فقط باستخدام Azure Cosmos DB SDKs)، أو 5 حاويات غير محدودة باستخدام المحاكي. من خلال تعديل قيمة PartitionCount ، يمكنك إنشاء ما يصل إلى 250 حاوية ذات حجم ثابت أو 50 حاوية غير محدودة، أو أي مجموعة من الاثنين لا تتجاوز 250 حاوية ذات حجم ثابت (حيث حاوية واحدة غير محدودة = 5 حاويات ذات حجم ثابت). ومع ذلك فإنه ليس من المستحسن إعداد المحاكي لتشغيله مع أكثر من 200 حاوية ذات حجم ثابت. وبسبب الحمل الزائد عن الحد الذي يضيفه إلى عمليات IO للقرص، ما يؤدي إلى مهلات غير متوقعة عند استخدام واجهات برمجة تطبيقات نقطة النهاية.

إذا حاولت إنشاء حاوية بعد تجاوز عدد الأقسام الحالي، يقوم المحاكي بطرح استثناء ServiceUnavailable، مع الرسالة التالية.

Sorry, we are currently experiencing high demand in this region, and cannot fulfill your request at this time. We work continuously to bring more and more capacity online, and encourage you to try again.
ActivityId: 12345678-1234-1234-1234-123456789abc

لتغيير عدد الحاويات المتوفرة في المحاكي، قم بتشغيل الخطوات التالية:

  1. احذف جميع بيانات المحاكي المحلي بالنقر بزر الماوس الأيمن فوق أيقونة المحاكي على علبة النظام، ثم النقر فوق إعادة تعيين البيانات....

  2. احذف جميع بيانات المحاكي في هذا المجلد %LOCALAPPDATA%\CosmosDBEmulator.

  3. قم بإنهاء جميع المثيلات المفتوحة بالنقر بزر الماوس الأيمن فوق أيقونة المحاكي على علبة النظام، ثم النقر فوق إنهاء. قد يستغرق الأمر دقيقة واحدة حتى يتم الخروج من جميع الحالات.

  4. تثبيت أحدث إصدار من المحاكي.

  5. شغّل المحاكي مع علامة PartitionCount من خلال تعيين قيمة <= 250. على سبيل المثال: C:\Program Files\emulator> Microsoft.Azure.Cosmos.Emulator.exe /PartitionCount=100.

الخطوات التالية