المحاكي المستند إلى 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 ، ، http https-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 ، ، http https-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 ، ، debug trace |
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
.