حساب قاعدة بيانات بلا خادم باستخدام Azure Cosmos DB ودوال Azure Functions
ينطبق على:
واجهة برمجة تطبيقات SQL
تتعلق الحوسبة بلا خادم بالقدرة على التركيز على الأجزاء الفردية من المنطق التي يمكن تكرارها وعديمة الحالة. لا تتطلب هذه القطع إدارة البنية التحتية وتستهلك الموارد فقط للثواني أو المللي ثانية التي يتم تشغيلها من أجلها. تعد الوظائف أساس حركة الحوسبة بلا خادم، والتي يتم توفيرها في نظام Azure البيئي من خلال دوال Azure. للتعرف على بيئات التنفيذ الأخرى دون خادم في Azure، راجع صفحة بلا خادم في Azure.
من خلال التكامل الأصلي بين قاعدة بيانات Azure Cosmos ودوال Azure يمكنك إنشاء مشغلات قاعدة البيانات وربط الإدخال وارتباطات الإخراج مباشرةً من حساب قاعدة بياناتAzure Cosmos الخاص بك. باستخدام دوال Azure وقاعدة بيانات Azure Cosmos، يمكنك إنشاء ونشر تطبيقات بلا خادم تستند إلى الأحداث مع وصول بزمن انتقال منخفض إلى البيانات الغنية لقاعدة مستخدمين عالمية.
نظرة عامة
تمكّنك قاعدة بيانات Azure Cosmos ودوال Azure من دمج قواعد البيانات والتطبيقات بلا خادم بالطرق التالية:
- قم بإنشاء مشغل دوال Azure لـقاعدة بيانات Cosmos مستمد من الأحداث. يعتمد هذا المشغل على تدفقات موجز التغييرات لمراقبة التغييرات في حاوية Azure Cosmos. عندما يتم إجراء أي تغييرات على الحاوية، يتم إرسال تدفق التغيير إلى المشغل، والذي يستدعي دالة Azure.
- بدلاً من ذلك، اربط دالة Azure بحاوية Azure Cosmos باستخدام ربط الإدخال. تقوم روابط الإدخال بقراءة البيانات من الحاوية عند تنفيذ وظيفة.
- اربط دالة بحاوية Azure Cosmos باستخدام ربط الإخراج. روابط الإخراج تكتب البيانات إلى الحاوية عند اكتمال الوظيفة.
ملاحظة
حالياً، يتم دعم مشغل دوال Azure وربط الإدخال وربط الإخراج لـقاعدة بيانات Cosmos للاستخدام مع واجهة برمجة تطبيقات لغة الاستعلامات المركبة فقط. بالنسبة لجميع واجهات برمجة تطبيقات قاعدة بيانات Azure Cosmos الأخرى، يجب عليك الوصول إلى قاعدة البيانات من وظيفتك باستخدام العميل الثابت لواجهة برمجة التطبيقات الخاصة بك.
يوضح الرسم البياني التالي كل من هذه التكاملات الثلاثة:
يمكن استخدام مشغل دوال Azure وربط الإدخال وربط الإخراج لـقاعدة بيانات Azure Cosmos في المجموعات التالية:
- يمكن استخدام مشغل دوال Azure لـقاعدة بيانات Cosmos مع ربط الإخراج بحاوية Azure Cosmos مختلفة. بعد أن تقوم إحدى الوظائف بتنفيذ إجراء على عنصر في موجز التغيير، يمكنك كتابته في حاوية أخرى (كتابته في نفس الحاوية التي أتت منها سيؤدي إلى إنشاء حلقة تكرارية بشكل فعال). أو يمكنك استخدام مشغل دوال Azure لـقاعدة بيانات Cosmos لترحيل جميع العناصر المتغيرة بشكل فعال من حاوية واحدة إلى حاوية مختلفة، باستخدام ربط الإخراج.
- يمكن استخدام روابط الإدخال وارتباطات الإخراج لـقاعدة بياناتAzure Cosmos في نفس دالة Azure. يعمل هذا بشكل جيد في الحالات التي تريد فيها العثور على بيانات معينة مع ربط الإدخال، وتعديلها في دالة Azure، ثم حفظها في نفس الحاوية أو حاوية مختلفة، بعد التعديل.
- يمكن استخدام ارتباط الإدخال بحاوية Azure Cosmos في نفس الوظيفة مثل مشغل دوال Azure لـقاعدة بيانات Cosmos، ويمكن استخدامه مع أو دون ربط الإخراج أيضاً. يمكنك استخدام هذه المجموعة لتطبيق أحدث معلومات صرف العملات (يتم سحبها مع إدخال ملزم لحاوية الصرف) على موجز تغيير الطلبات الجديدة في خدمة عربة التسوق الخاصة بك. يمكن كتابة إجمالي سلة التسوق المحدثة، مع تطبيق تحويل العملة الحالي، في حاوية ثالثة باستخدام ربط الإخراج.
حالات الاستخدام
توضح حالات الاستخدام التالية بعض الطرق التي يمكنك من خلالها تحقيق أقصى استفادة من بيانات قاعدة بيانات Azure Cosmos - عن طريق توصيل بياناتك بدوال Azure المستندة إلى الأحداث.
حالة استخدام (IoT) - تقوم دوال Azure بتشغيل وربط الإخراج لـقاعدة بيانات Cosmos
في تطبيقات (IoT)، يمكنك استدعاء وظيفة عند عرض ضوء فحص المحرك في سيارة متصلة.
التنفيذ: استخدم مشغل دوال Azure وربط الإخراج لـقاعدة بيانات Cosmos
- يتم استخدام مشغل دوال Azure لـقاعدة بيانات Cosmos لتشغيل الأحداث المتعلقة بتنبيهات السيارة، مثل ضوء فحص المحرك الذي يضيء في سيارة متصلة.
- عندما يأتي ضوء محرك الفحص، يتم إرسال بيانات المستشعر إلى قاعدة بيانات Azure Cosmos.
- تقوم قاعدة بيانات Azure Cosmos بإنشاء أو تحديث مستندات بيانات المستشعر الجديدة، ثم يتم دفق هذه التغييرات إلى مشغل دوال Azure لـقاعدة بيانات Cosmos.
- يتم استدعاء المشغل عند كل تغيير للبيانات على مجموعة بيانات المستشعر، حيث يتم دفق جميع التغييرات عبر موجز التغيير.
- يتم استخدام شرط العتبة في الوظيفة لإرسال بيانات المستشعر إلى قسم الضمان.
- إذا تجاوزت درجة الحرارة أيضاً قيمة معينة، فسيتم أيضاً إرسال تنبيه إلى المالك.
- يعمل ربط الإخراج على الوظيفة على تحديث سجل السيارة في حاوية Azure Cosmos أخرى لتخزين معلومات حول حدث فحص المحرك.
تُظهر الصورة التالية التعليمات البرمجية المكتوبة في مدخل Microsoft Azure لهذا المشغل.
حالة الاستخدام المالي - تشغيل المؤقت وربط الإدخال
في عمليات التنفيذ المالية، يمكنك استدعاء دالة عندما يقل رصيد الحساب المصرفي عن مبلغ معين.
التنفيذ: مشغل مؤقت بربط إدخال قاعدة بيانات Azure Cosmos
- باستخدام مشغل المؤقت، يمكنك استرداد معلومات رصيد الحساب المصرفي المخزنة في حاوية Azure Cosmos على فترات زمنية محددة باستخدام ربط الإدخال.
- إذا كان الرصيد أقل من حد الرصيد المنخفض الذي حدده المستخدم، فتابع بإجراء من دالة Azure.
- يمكن أن يكون ربط الإخراج عبارة عن تكامل SendGrid يرسل بريداً إلكترونياً من حساب خدمة إلى عناوين البريد الإلكتروني المحددة لكل حساب من حسابات الرصيد المنخفض.
تُظهر الصور التالية التعليمات البرمجية في مدخل Microsoft Azure لهذا السيناريو.
حالة استخدام الألعاب - مشغل دوال Azure وربط الإخراج لـقاعدة بيانات Cosmos
في الألعاب، عند إنشاء مستخدم جديد، يمكنك البحث عن مستخدمين آخرين قد تعرفهم باستخدام قاعدة بياناتAzure Cosmos واجهة برمجة التطبيقات Gremlin. يمكنك بعد ذلك كتابة النتائج إلى قاعدة بيانات Azure Cosmos أو قاعدة بيانات SQL لاستردادها بسهولة.
التنفيذ: استخدم مشغل دوال Azure وربط الإخراج لـقاعدة بيانات Cosmos
- باستخدام قاعدة بيانات الرسم البياني Azure Cosmos قاعدة بيانات لتخزين جميع المستخدمين، يمكنك إنشاء وظيفة جديدة باستخدام مشغل دوال Azure لقاعدة بيانات Cosmos.
- عندما يتم إدراج مستخدم جديد، يتم استدعاء الوظيفة، ثم يتم تخزين النتيجة باستخدام ربط الإخراج.
- تستعلم الوظيفة عن قاعدة بيانات الرسم البياني للبحث عن جميع المستخدمين المرتبطين مباشرة بالمستخدم الجديد وترجع مجموعة البيانات هذه إلى الوظيفة.
- يتم بعد ذلك تخزين هذه البيانات في قاعدة بيانات Azure Cosmos والتي يمكن استردادها بسهولة عن طريق أي تطبيق واجهة أمامية يُظهر للمستخدم الجديد أصدقاءه المتصلين.
حالة استخدام البيع بالتجزئة - وظائف متعددة
في تطبيقات البيع بالتجزئة، عندما يضيف المستخدم عنصراً إلى سلة التسوق الخاصة به، لديك الآن المرونة لإنشاء واستدعاء وظائف لمكونات خطوط أنابيب الأعمال الاختيارية.
التنفيذ: يتم تشغيل دوال Azure المتعددة للاستماع إلى حاوية واحدة من قاعدة بيانات Cosmos
- يمكنك إنشاء دوال Azure متعددة عن طريق إضافة مشغلات دوال Azure لـقاعدة بيانات Cosmos إلى كل منها - وكلها تستمع إلى نفس موجز التغيير لبيانات عربة التسوق. لاحظ أنه عندما تستمع وظائف متعددة إلى نفس موجز التغيير، يلزم جمع مجموعة إيجار جديدة لكل وظيفة. لمزيد من المعلومات حول مجموعات الإيجار، راجع فهم التغيير في موجز معالج مكتبة التعليمات البرمجية.
- عند إضافة عنصر جديد إلى عربة تسوق المستخدمين، يتم استدعاء كل وظيفة بشكل مستقل من خلال موجز التغيير من حاوية عربة التسوق.
قد تستخدم إحدى الوظائف محتويات السلة الحالية لتغيير عرض العناصر الأخرى التي قد يهتم بها المستخدم.
قد تقوم وظيفة أخرى بتحديث إجماليات المخزون.
قد تقوم وظيفة أخرى بإرسال معلومات العملاء الخاصة بمنتجات معينة إلى قسم التسويق، الذي يرسل لهم بريداً ترويجياً.
يمكن لأي قسم إنشاء دوال Azure لـقاعدة بيانات Cosmos من خلال الاستماع إلى موجز التغيير، والتأكد من أنها لن تؤخر أحداث معالجة الطلبات الهامة في العملية.
في جميع حالات الاستخدام هذه، نظراً لأن الوظيفة فصلت التطبيق نفسه، فلن تحتاج إلى تدوير مثيلات التطبيق الجديدة طوال الوقت. بدلاً من ذلك، تقوم دوال Azure بتدوير الوظائف الفردية لإكمال العمليات المنفصلة حسب الحاجة.
الأدوات
يتوفر التكامل الأصلي بين قاعدة بيانات Azure Cosmos ودوال Azure في مدخل Microsoft Azure وفي Visual Studio 2019.
في مدخل دوال Azure، يمكنك إنشاء مشغل. للحصول على إرشادات البدء السريع، راجع إنشاء مشغل دوال Azure لـقاعدة بيانات Cosmos في مدخل Microsoft Azure.
في مدخل Microsoft Azure Cosmos DB، يمكنك إضافة مشغل دوال Azure لـقاعدة بيانات Cosmos إلى تطبيق Azure Function في نفس مجموعة الموارد.
في Visual Studio 2019، يمكنك إنشاء المشغل باستخدام أدوات دوال Azure:
لماذا تختار تكامل دوال Azure للحوسبة بلا خادم؟
توفر دوال Azure القدرة على إنشاء وحدات عمل قابلة للتطوير، أو أجزاء موجزة من المنطق يمكن تشغيلها عند الطلب، دون توفير البنية التحتية أو إدارتها. باستخدام دوال Azure، لا يتعين عليك إنشاء تطبيق كامل للاستجابة للتغييرات في قاعدة بيانات Azure Cosmos، يمكنك إنشاء وظائف صغيرة قابلة لإعادة الاستخدام لمهام محددة. بالإضافة إلى ذلك، يمكنك أيضاً استخدام بيانات قاعدة بيانات Azure Cosmos كإدخال أو إخراج لدالة Azure استجابةً لحدث مثل طلبات HTTP أو المشغل المحدد بوقت.
قاعدة بيانات Azure Cosmos هي قاعدة البيانات الموصى بها لبنية الحوسبة بلا خادم للأسباب التالية:
وصول فوري إلى جميع بياناتك: لديك وصول دقيق إلى كل قيمة مخزنة لأن قاعدة بيانات Azure Cosmos تفهرس جميع البيانات تلقائياً بشكل افتراضي، وتجعل هذه الفهارس متاحة على الفور. هذا يعني أنك قادر على الاستعلام عن عناصر جديدة وتحديثها وإضافتها باستمرار إلى قاعدة البيانات الخاصة بك والوصول الفوري عبر دوال Azure.
المخطط. تعد قاعدة بيانات Azure Cosmos مخططاً - لذا فهي قادرة بشكل فريد على معالجة أي بيانات ناتجة من دالة Azure. يجعل منهج "التعامل مع أي شيء" من السهل إنشاء مجموعة متنوعة من الدوال التي يتم إخراجها جميعها إلى قاعدة بيانات Azure Cosmos.
معدل النقل القابل للتطوير. يمكن تطوير معدل النقل وتقليصه على الفور في قاعدة بيانات Azure Cosmos. إذا كان لديك مئات أو آلاف من الدوال التي تستعلم وتكتب في نفس الحاوية، فيمكنك توسيع نطاق RU/s للتعامل مع الحمل. يمكن أن تعمل جميع الوظائف بشكل متوازٍ باستخدام وحدات RU/s المخصصة التي تملكها وتضمن لك أن تكون بياناتك متسقة.
النسخ المتماثل العام. يمكنك نسخ بيانات قاعدة بيانات Azure Cosmos حول العالم لتقليل وقت الاستجابة، وتحديد الموقع الجغرافي لبياناتك الأقرب إلى مكان تواجد المستخدمين لديك. كما هو الحال مع جميع استعلامات قاعدة بيانات Azure Cosmos فإن البيانات من المشغلات التي تحركها الأحداث هي قراءة البيانات من قاعدة بيانات Azure Cosmos الأقرب إلى المستخدم.
إذا كنت تبحث عن التكامل مع دوال Azure لتخزين البيانات ولا تحتاج إلى فهرسة عميقة أو إذا كنت بحاجة إلى تخزين المرفقات وملفات الوسائط، فقد يكون مشغل تخزين Azure Blob خياراً أفضل.
فوائد دوال Azure:
تستند إلى الأحداث. تستند دوال Azure إلى الأحداث ويمكنها الاستماع إلى موجز التغيير من قاعدة بيانات Azure Cosmos. هذا يعني أنك لست بحاجة إلى إنشاء منطق استماع، ما عليك سوى مراقبة التغييرات التي تستمع إليها.
بلا حدود. يتم تنفيذ الوظائف بالتوازي ويتم تدوير الخدمة بقدر ما تحتاج. عينت المعلمات.
جيد للمهام السريعة. تقوم الخدمة بتدوير حالات جديدة من الوظائف كلما تم إطلاق حدث ما وإغلاقه بمخزون اكتمال الوظيفة. تدفع فقط مقابل الوقت الذي تعمل فيه وظائفك.
إذا لم تكن متأكداً مما إذا كانت Flow أو Logic Apps أو Azure Functions أو WebJobs هي الأفضل لتنفيذ عملياتك، فراجع الاختيار بينLogic Apps أو Azure Functions أو WebJobs.
الخطوات التالية
الآن دعنا نربط قاعدة بيانات Cosmos ودوال Azure بشكل حقيقي: