تخزين البيانات غير المنظمة باستخدام وظائف Azure وAzure Cosmos DB

Azure Cosmos DB هو وسيلة رائعة لتخزين البيانات غير المنظمة وJSON. جنبا إلى جنب مع Azure Functions، يجعل Azure Cosmos DB تخزين البيانات سريعا وسهلا مع تعليمات برمجية أقل بكثير مما هو مطلوب لتخزين البيانات في قاعدة بيانات ارتباطية.

إشعار

في الوقت الحالي، يعمل مشغل Azure Cosmos DB وارتباطات الإدخال، وربط الإخراج مع حسابات SQL API وGraph API فقط.

في Azure Functions، توفر روابط الإدخال والإخراج طريقة تعريفية للاتصال ببيانات الخدمة الخارجية من الدالة. في هذه المقالة، تعرف على كيفية تحديث دالة موجودة لإضافة ربط إخراج يخزن بيانات غير منظمة في مستند Azure Cosmos DB.

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

لإكمال هذا البرنامج التعليمي:

يستخدم هذا الموضوع الموارد التي تم إنشاؤها في إنشاء وظيفتك الأولى من مدخل Microsoft Azure كنقطة بداية. إذا لم تكن قد قمت بذلك بالفعل، فالرجاء إكمال هذه الخطوات الآن لإنشاء تطبيق وظيفتك.

إنشاء حساب Azure Cosmos DB

يجب أن يكون لديك حساب AZURE Cosmos DB يستخدم واجهة برمجة تطبيق SQL قبل إنشاء ربط الإخراج.

  1. من قائمة مدخل Azure أو الصفحة الرئيسية، حدد Create a resource.

  2. ابحث عن Azure Cosmos DB. حدد Create>Azure Cosmos DB.

  3. في صفحة Create an Azure Cosmos DB account ، حدد الخيار Create ضمن قسم Azure Cosmos DB for NoSQL .

    يوفر Azure Cosmos DB العديد من واجهات برمجة التطبيقات:

    • NoSQL، لبيانات المستند
    • PostgreSQL
    • MongoDB، لبيانات المستند
    • Apache Cassandra
    • جدول
    • Apache Gremlin، لبيانات الرسم البياني

    لمعرفة المزيد حول واجهة برمجة التطبيقات ل NoSQL، راجع مرحبا بك في Azure Cosmos DB.

  4. في صفحة إنشاء حساب Azure Cosmos DB، أدخل الإعدادات الأساسية لحساب Azure Cosmos DB الجديد.

    الإعداد قيمة ‏‏الوصف
    الوصف اسم الاشتراك حدد اشتراك Azure الذي تريد استخدامه لحساب Azure Cosmos DB هذا.
    مجموعة الموارد اسم مجموعة الموارد حدد مجموعة موارد، أو حدد إنشاء جديد، ثم أدخل اسمًا فريدًا لمجموعة الموارد الجديدة.
    اسم الحساب اسم فريد أدخل اسما لتعريف حساب Azure Cosmos DB الخاص بك. لأنه يتم إلحاق documents.azure.com إلى الاسم الذي تقوم بتوفيره لإنشاء URI الخاص بك، استخدم اسمًا فريدًا. يمكن أن يحتوي الاسم على أحرف صغيرة وأرقام وحرف الواصلة (-) فقط. يجب أن يكون من 3 إلى 44 حرفا.
    الموقع المنطقة الأقرب إلى مستخدميك حدد موقعًا جغرافيًّا لاستضافة حساب Azure Cosmos DB. استخدم الموقع الأقرب إلى المستخدمين لمنحهم أسرع وصول إلى البيانات.
    وضع السعة معدل النقل المقدم أو بلا خادم حدد "Provisioned throughput" لإنشاء حساب في وضع معدل النقل المتوفر. حدد Serverless لإنشاء حساب في وضع دون خادم.
    تطبيق خصم طبقة Azure Cosmos DB المجاني تطبيق أو عدم تطبيق مع الطبقة المجانية لـ Azure Cosmos DB، ستحصل على أول 1000 RU/ثانية و25 غيغابايت من التخزين مجاناً في الحساب. تعرف على المزيد حول الطبقة المجانية.
    ضع حدُا لمعدل نقل الحساب محدد أم لا حدد إجمالي مقدار معدل النقل الذي يمكن توفيره على هذا الحساب. يمنع هذا الحد الرسوم غير المتوقعة المتعلقة بمعدل النقل المقدم. يمكنك تحديث هذا الحد أو إزالته بعد إنشاء حسابك.

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

    Screenshot shows the Create Azure Cosmos DB Account page.

    إشعار

    الخيارات التالية غير متوفرة إذا قمت بتحديد دون خادمباعتبارهاوضع السعة:

    • تطبيق خصم من الدرجة المجانية
    • ضع حدُا لمعدل نقل الحساب
  5. في علامة تبويب Global Distributionكوّن التفاصيل التالية. يمكنك ترك القيم الافتراضية لهذه البداية السريعة:

    الإعداد قيمة ‏‏الوصف
    التكرار الجغرافي Disable تمكين التوزيع العمومي على حسابك أو تعطيله عن طريق إقران منطقتك بمنطقة زوج. يمكنك إضافة المزيد من المناطق إلى حسابك لاحقًا.
    كتابات متعددة المناطق Disable تتيح لك إمكانية الكتابة متعددة المناطق الاستفادة من الإنتاجية المقدمة لقواعد البيانات والحاويات الخاصة بك في جميع أنحاء العالم.
    مجموعات التوافر Disable تساعدك مناطق التوفر على تحسين توفر التطبيق ومرونته.

    إشعار

    لا تتوفر الخيارات التالية إذا قمت بتحديد Serverless كوضع Capacity في صفحة Basics السابقة:

    • Geo-redundancy
    • كتابات متعددة المناطق
  6. اختياريا، يمكنك تكوين مزيد من التفاصيل في علامات التبويب التالية:

    • الشبكات. تكوين الوصول من شبكة ظاهرية.
    • نهج النسخ الاحتياطي. تكوين نهج النسخ الاحتياطي الدوري أو المستمر .
    • التشفير. استخدم إما مفتاحا مدارا بواسطة الخدمة أو مفتاحا يديره العميل.
    • العلامات. العلامات هي أزواج أسماء/قيم تمكنك من تصنيف الموارد وعرض الفوترة الموحدة من خلال تطبيق العلامة نفسها على موارد ومجموعات موارد متعددة.
  7. حدد "Review + create".

  8. راجع الإعدادات، ثم حدد Create. يستغرق إنشاء جهاز ظاهر بضع دقائق. انتظر حتى يتم عرض صفحة المدخل، اكتمل النشر.

    Screenshot shows that your deployment is complete.

  9. حدد الانتقال إلى المورد للانتقال إلى صفحة حساب Azure Cosmos DB.

    Screenshot shows the Azure Cosmos DB account page.

إضافة ربط المخرجات

  1. في مدخل Azure ، انتقل إلى تطبيق الوظيفة الذي قمت بإنشائه مسبقاً وحدده.

  2. حدد دالات، ثم حدد الدالة HttpTrigger.

    Select your Http function in the Azure portal.

  3. حدد الدمج و+ إضافة الإخراج.

    Add an Azure Cosmos DB output binding.

  4. استخدم إعدادات إنشاء إخراج كما هو محدد في الجدول:

    Configure Azure Cosmos DB output binding.

    الإعدادات القيمة المقترحة ‏‏الوصف
    نوع الربط Azure Cosmos DB اسم نوع الربط لتحديد لإنشاء ربط الإخراج إلى Azure Cosmos DB.
    اسم معلمة المستند taskDocument الاسم الذي يشير إلى كائن Azure Cosmos DB في التعليمات البرمجية.
    اسم قاعدة البيانات taskDocument اسم قاعدة البيانات لحفظ المستندات.
    اسم المجموعة taskCollection اسم مجموعة قاعدة البيانات.
    إذا كان صحيحا، يقوم بإنشاء قاعدة بيانات ومجموعة Azure Cosmos DB ‏‏نعم‬ المجموعة غير موجودة بالفعل، لذا قم بإنشائها.
    اتصال حساب Azure Cosmos DB إعداد جديد حدد جديد، ثم اختر حساب Azure Cosmos DB وحساب قاعدة البيانات الذي أنشأته سابقا، ثم حدد موافق. إنشاء إعداد تطبيق لاتصال الحساب. يتم استخدام هذا الإعداد بواسطة الربط للاتصال بقاعدة البيانات.
  5. حدد موافق لإنشاء الربط.

تحديث التعليمات البرمجية للدالة

استبدال رمز الدالة الموجودة مع التعليمات البرمجية التالية، في اللغة التي اخترتها:

استبدل دالة C# الحالية بالكود التالي:

#r "Newtonsoft.Json"

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
    string name = req.Query["name"];
    string task = req.Query["task"];
    string duedate = req.Query["duedate"];

    // We need both name and task parameters.
    if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
    {
        taskDocument = new
        {
            name,
            duedate,
            task
        };

        return (ActionResult)new OkResult();
    }
    else
    {
        taskDocument = null;
        return (ActionResult)new BadRequestResult();
    }
}

يقرأ نموذج التعليمات البرمجية هذا سلاسل الاستعلام HTTP Request ثم يعينها إلى حقول في taskDocument العنصر. taskDocumentيرسل الربط بيانات الكائن من هذه المعلمة الربط ليتم تخزينها في قاعدة بيانات المستند المنضم. يتم إنشاء قاعدة البيانات في المرة الأولى التي يتم فيها تشغيل الدالة.

اختبار الدالة وقاعدة البيانات

  1. حدد Test/Run. ضمن استعلام، حدد + إضافة معلمة وأضف المعلمات التالية إلى سلسلة الاستعلام:

    • name
    • task
    • duedate

    Test the function.

  2. حدد تشغيل وتحقق من إرجاع حالة 200.

    Screenshot shows the HTTP response code 200 status highlighted after selecting Run.

  3. في مدخل Azure، ابحث عن Azure Cosmos DB وحدده.

    Search for the Azure Cosmos DB service.

  4. قم باختيار حساب Azure Cosmos DB، ثم حدد مستكشف البيانات.

  5. توسيع العقد TaskCollection حدد المستند الجديد ثم تأكد من أن المستند يحتوي على قيم سلسلة الاستعلام الخاص بك مع بعض بيانات التعريف إضافية.

    Verify the string values in your document.

لقد نجحت في إضافة ربط إلى مشغل HTTP الخاص بك لتخزين البيانات غير المنظمة في مثيل Azure Cosmos DB.

تنظيف الموارد

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

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

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

لمزيد من المعلومات حول الربط بمثيل Azure Cosmos DB، راجع روابط Azure Functions Azure Cosmos DB.