مشاركة عبر


المحاكي المستند إلى Linux (معاينة)

الجيل التالي من محاكي Azure Cosmos DB يستند بالكامل إلى Linux ويتوفر كحاوية Docker. وهو يدعم التشغيل على مجموعة واسعة من المعالجات وأنظمة التشغيل.

هام

يدعم هذا الإصدار من المحاكي واجهة برمجة التطبيقات ل NoSQL فقط في وضع البوابة، مع مجموعة فرعية محددة من الميزات. لمزيد من المعلومات، راجع دعم الميزات.

المتطلبات الأساسية

التثبيت

احصل على صورة حاوية Docker باستخدام docker pull. يتم نشر صورة الحاوية إلى Microsoft Artifact Registry ك mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview.

docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview

قيد التشغيل

لتشغيل الحاوية، استخدم docker run. بعد ذلك، استخدم docker ps للتحقق من تشغيل الحاوية.

docker run --detach --publish 8081:8081 --publish 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview

docker ps
CONTAINER ID   IMAGE                                                             COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
c1bb8cf53f8a   mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview  "/bin/bash -c /home/…"   5 seconds ago   Up 5 seconds   0.0.0.0:1234->1234/tcp, :::1234->1234/tcp, 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp   <container-name>

إشعار

يتكون المحاكي من مكونين:

  • مستكشف البيانات - استكشاف البيانات في المحاكي بشكل تفاعلي. بشكل افتراضي، يتم تشغيل هذا على المنفذ 1234
  • محاكي Azure Cosmos DB - إصدار محلي من خدمة قاعدة بيانات Azure Cosmos DB. بشكل افتراضي، يتم تشغيل هذا على المنفذ 8081.

عادة ما تتوفر نقطة نهاية بوابة المحاكي على المنفذ 8081 في العنوان http://localhost:8081. للانتقال إلى مستكشف البيانات، استخدم العنوان http://localhost:1234 في مستعرض الويب. قد يستغرق الأمر بضع ثوان حتى يتوفر مستكشف البيانات. عادة ما تكون نقطة نهاية البوابة متاحة على الفور.

هام

لا تدعم .NET وJava SDKs وضع HTTP في المحاكي. نظرا لأن هذا الإصدار من المحاكي يبدأ ب HTTP بشكل افتراضي، فستحتاج إلى تمكين HTTPS بشكل صريح عند بدء تشغيل الحاوية (انظر أدناه). بالنسبة إلى Java SDK، ستحتاج أيضا إلى تثبيت الشهادات.

docker run --detach --publish 8081:8081 --publish 1234:1234 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview --protocol https

أوامر Docker

يلخص الجدول التالي أوامر Docker المتوفرة لتكوين المحاكي. يوضح هذا الجدول بالتفصيل الوسيطات المقابلة ومتغيرات البيئة والقيم المسموح بها والإعدادات الافتراضية والأوصاف لكل أمر.

المتطلبات الارجنتين Env القيم المسموح بها Default ‏‏الوصف
طباعة الإعدادات إلى stdout من الحاوية --help, -h ‏‫غير متوفر‬ غير متاح ‏‫غير متوفر‬ عرض معلومات حول التكوين المتوفر
تعيين منفذ نقطة نهاية Cosmos --port [INT] ميناء Int 8081 منفذ نقطة نهاية Cosmos على الحاوية. لا تزال بحاجة إلى نشر هذا المنفذ (على سبيل المثال، -p 8081:8081).
تحديد البروتوكول المستخدم بواسطة نقطة نهاية Cosmos --protocol بروتوكول https، ، httphttps-insecure http بروتوكول نقطة نهاية Cosmos على الحاوية.
تمكين مستكشف البيانات --enable-explorer ENABLE_EXPLORER true, false true تمكين تشغيل Cosmos Data Explorer على نفس الحاوية.
تعيين المنفذ المستخدم من قبل مستكشف البيانات --explorer-port EXPLORER_PORT Int 1234 منفذ Cosmos Data Explorer على الحاوية. لا تزال بحاجة إلى نشر هذا المنفذ (على سبيل المثال، -p 1234:1234).
يجب أن يكون المستخدم قادرا على تحديد البروتوكول المستخدم من قبل المستكشف، وإلا افتراضيا لما تستخدمه نقطة نهاية Cosmos --explorer-protocol EXPLORER_PROTOCOL https، ، httphttps-insecure <the value of --protocol> بروتوكول Cosmos Data Explorer على الحاوية. الإعدادات الافتراضية لإعداد البروتوكول على نقطة نهاية Cosmos.
تحديد المفتاح عبر الملف --key-file [PATH] KEY_FILE مسار <default secret> تجاوز المفتاح الافتراضي بالمفتاح المحدد في الملف. تحتاج إلى تحميل هذا الملف في الحاوية (على سبيل المثال، إذا كان KEY_FILE=/mykey، يمكنك إضافة خيار مثل ما يلي إلى تشغيل docker الخاص بك: --mount type=bind,source=./myKey,target=/myKey)
تعيين مسار البيانات --data-path [PATH] DATA_PATH مسار /data حدد دليلا للبيانات. يستخدم بشكل متكرر مع docker run --mount الخيار (على سبيل المثال، إذا DATA_PATH=/usr/cosmos/data، يمكنك إضافة خيار مثل ما يلي إلى تشغيل docker الخاص بك: --mount type=bind,source=./.local/data,target=/usr/cosmos/data)
حدد مسار الشهادة الذي سيتم استخدامه ل https --cert-path [PATH] CERT_PATH مسار <default cert> حدد مسارا إلى شهادة لتأمين نسبة استخدام الشبكة. تحتاج إلى تحميل هذا الملف في الحاوية (على سبيل المثال، إذا CERT_PATH=/mycert.pfx، يمكنك إضافة خيار مثل ما يلي إلى تشغيل docker الخاص بك: --mount type=bind,source=./mycert.pfx,target=/mycert.pfx)
حدد سر الشهادة الذي سيتم استخدامه ل https ‏‫غير متوفر‬ CERT_SECRET سلسلة <default secret> سر الشهادة المحددة في CERT_PATH.
تعيين مستوى السجل --log-level [LEVEL] LOG_LEVEL quiet، error، warn، info، ، debugtrace info إسهاب السجلات التي يصدرها المحاكي ومستكشف البيانات.
تمكين إرسال معلومات التشخيص إلى Microsoft --enable-telemetry ENABLE_TELEMETRY true, false true تمكين إرسال السجلات إلى Microsoft لمساعدتنا على تحسين المحاكي.

دعم الميزة

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

ميزة الدعم
واجهة برمجة تطبيقات الدفعات ✅ مدعم
واجهة برمجة التطبيقات المجمعة ✅ مدعم
موجز التغيير ⚠️ لم يتم تنفيذها بعد
إنشاء مستند وقراءته باستخدام بيانات utf ✅ مدعم
إنشاء مجموعة ✅ مدعم
إنشاء مجموعة مرتين تعارض ✅ مدعم
إنشاء مجموعة باستخدام نهج الفهرس المخصص ⚠️ لم يتم تنفيذها بعد
إنشاء مجموعة مع انتهاء صلاحية ttl ⚠️ لم يتم تنفيذها بعد
إنشاء قاعدة بيانات ✅ مدعم
إنشاء قاعدة بيانات مرتين متعارضة ✅ مدعم
إنشاء مستند ✅ مدعم
إنشاء مجموعة مقسمة ⚠️ لم يتم تنفيذها بعد
حذف مجموعة ✅ مدعم
حذف قاعدة البيانات ✅ مدعم
Delete document ✅ مدعم
الحصول على أداء المجموعة وتغييره ⚠️ لم يتم تنفيذها بعد
إدراج مستند كبير ✅ مدعم
تصحيح المستند ⚠️ لم يتم تنفيذها بعد
الاستعلام عن المجموعة المقسمة بالتوازي ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام التجميعات ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام وتصفية ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام وتصفية وإسقاط ⚠️ لم يتم تنفيذها بعد
الاستعلام بالمساواة ✅ مدعم
الاستعلام بالتساوي على المعرف ✅ مدعم
الاستعلام مع الصلات ⚠️ لم يتم تنفيذها بعد
الاستعلام بالترتيب حسب ✅ مدعم
الاستعلام بترتيب للمجموعة المقسمة ⚠️ لم يتم تنفيذها بعد
الاستعلام بترتيب حسب الأرقام ✅ مدعم
الاستعلام بترتيب حسب السلاسل ⚠️ لم يتم تنفيذها بعد
استعلام مع ترحيل الصفحات ⚠️ لم يتم تنفيذها بعد
الاستعلام بأوقات تاريخ عوامل تشغيل النطاق ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام عوامل تشغيل النطاق على الأرقام ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام عوامل تشغيل النطاق على السلاسل ⚠️ لم يتم تنفيذها بعد
استعلام بصلة واحدة ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام عوامل تشغيل السلسلة الرياضية والصفيف ⚠️ لم يتم تنفيذها بعد
الاستعلام باستخدام المستندات الفرعية ⚠️ لم يتم تنفيذها بعد
استعلام بصلتين ⚠️ لم يتم تنفيذها بعد
استعلام بصلتين وتصفية ⚠️ لم يتم تنفيذها بعد
مجموعة القراءة ✅ مدعم
قراءة موجز المجموعة ⚠️ لم يتم تنفيذها بعد
قراءة قاعدة البيانات ✅ مدعم
قراءة موجز قاعدة البيانات ⚠️ لم يتم تنفيذها بعد
قراءة المستند ✅ مدعم
قراءة موجز المستند ✅ مدعم
استبدال المستند ✅ مدعم
وحدات الطلب ⚠️ لم يتم تنفيذها بعد
الإجراءات المخزنة ❌ غير مخطط له
المشغلات ❌ غير مخطط له
UDFs ❌ غير مخطط له
مجموعة التحديث ⚠️ لم يتم تنفيذها بعد
تحديث المستند ✅ مدعم

القيود

بالإضافة إلى الميزات غير المدعومة أو غير المخطط لها، تتضمن القائمة التالية القيود الحالية للمحاكي.

  • لا يدعم .NET SDK ل Azure Cosmos DB التنفيذ المجمع في المحاكي.
  • لا تدعم .NET وJava SDKs وضع HTTP في المحاكي.

تثبيت شهادات ل Java SDK

عند استخدام Java SDK ل Azure Cosmos DB مع هذا الإصدار من المحاكي في وضع https، من الضروري تثبيت شهاداته على مخزن ثقة Java المحلي.

الحصول على الشهادة

bash في نافذة، قم بتشغيل ما يلي:

# If the emulator was started with /AllowNetworkAccess, replace localhost with the actual IP address of it:
EMULATOR_HOST=localhost
EMULATOR_PORT=8081
EMULATOR_CERT_PATH=/tmp/cosmos_emulator.cert
openssl s_client -connect ${EMULATOR_HOST}:${EMULATOR_PORT} </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $EMULATOR_CERT_PATH

تثبيت الشهادة

انتقل إلى دليل تثبيت java حيث cacerts يوجد الملف (استبدل أدناه بالدليل الصحيح):

cd "C:/Program Files/Eclipse Adoptium/jdk-17.0.10.7-hotspot/bin"

استيراد الشهادة (قد يطلب منك كلمة مرور، القيمة الافتراضية هي "changeit"):

keytool -cacerts -importcert -alias cosmos_emulator -file $EMULATOR_CERT_PATH

إذا تلقيت خطأ لأن الاسم المستعار موجود بالفعل، فاحذفه ثم قم بتشغيل ما سبق مرة أخرى:

keytool -cacerts -delete -alias cosmos_emulator

الإبلاغ عن المشكلات

إذا واجهت مشكلات في استخدام هذا الإصدار من المحاكي، فافتح مشكلة في مستودع GitHub (https://github.com/Azure/azure-cosmos-db-emulator-docker) وضع علامة عليها بالتسمية cosmosEmulatorVnextPreview.