ربط البيانات الخاصة بتطبيق الأجهزة المحمولة للقيام بAzure Functions

إشعار

تتوفر روابط تطبيقات الأجهزة المحمولة لـ Azure فقط لAzure Functions 1.x. ولكنها غير مدعومة في Azure Functions 2.x.فأكثر.

توضح هذه المقالة كيفية العمل مع روابط تطبيقات الأجهزة المحمولة لـ Azure في Azure Functions. تدعم Azure Functions روابط الإدخال والإخراج لتطبيقات الأجهزة المحمولة.

تتيح لك روابط تطبيقات الجوال قراءة جداول البيانات وتحديثها في تطبيقات الأجهزة المحمولة.

الحزم - الدوال 1.x

يتم توفير روابط تطبيقات الأجهزة المحمولة في حزمة NuGet Microsoft.Azure.WebJobs.Extensions.Storage، الإصدار 1.x. توجد التعليمات البرمجية المصدر في مستودع azure-webjobs-sdk-extensions GitHub.

يسرد الجدول التالي كيفية إضافة دعم ربط الإخراج في كل بيئة تطوير.

بيئة التطوير لإضافة دعم في Functions 1.x
التطوير المحلي: مكتبة فئات C#‎ تثبيت الحزمة
التطوير المحلي: برنامج C# النصي، JavaScript، F#‎ تلقائي
تطوير المدخل تلقائي

إدخال

يقوم ربط إدخال تطبيقات الأجهزة المحمولة بتحميل سجل من نقطة نهاية جدول المحمول ويمرره إلى وظيفتك. في وظائف C# و F# يتم إرسال أي تغييرات يتم إجراؤها على السجل تلقائيًا إلى الجدول عند إنهاء الوظيفة بنجاح.

الإدخال - مثال

انظر المثال الخاص باللغة:

يظهر المثال التالي رابط إدخال تطبيقات الأجهزة المحمولة في ملف function.json و وظيفة برنامج C# النصي التي تستخدم الرابط. يتم تشغيل الوظيفة بواسطة رسالة قائمة انتظار التي لديها معرف سجل. تقرأ الوظيفة السجل المحدد وتعدل Text الخاصية الخاصة به.

فيما يلي بيانات الربط في ملفfunction.json:

{
"bindings": [
    {
        "name": "myQueueItem",
        "queueName": "myqueue-items",
        "connection": "",
        "type": "queueTrigger",
        "direction": "in"
    },
    {
        "name": "record",
        "type": "mobileTable",
        "tableName": "MyTable",
        "id": "{queueTrigger}",
        "connection": "My_MobileApp_Url",
        "apiKey": "My_MobileApp_Key",
        "direction": "in"
    }
]
}

قسم التكوين يشرح هذه الخصائص.

هذا هو كود البرنامج النصي #C:

#r "Newtonsoft.Json"    
using Newtonsoft.Json.Linq;

public static void Run(string myQueueItem, JObject record)
{
    if (record != null)
    {
        record["Text"] = "This has changed.";
    }    
}

الإدخال - السمات

في مكتبات الفئة C#‎، استخدم السمة MobileTable.

للحصول على معلومات حول خصائص السمة التي يمكنك تكوينها، راجع قسم التكوين التالي.

الإدخال - التكوين

يشرح الجدول التالي خصائص تكوين الرابط التي قمت بتعيينها في الملف function.json و MobileTable السمة.

خاصية function.json خاصية السمة ‏‏الوصف
النوع غير متوفر يجب تعيين إلى "mobileTable"
الاتجاه غير متوفر يجب التعيين إلى "داخل"
الاسم غير متوفر اسم معلمة الإدخال في توقيع الوظيفة.
اسم الجدول TableName اسم جدول بيانات تطبيق الأجهزة المحمولة
معرف معرّف معرّف السجل المطلوب استرداده. يمكن أن تكون ثابتة أو استنادا إلى المشغل الذي يستدعي الوظيفة. على سبيل المثال، إذا كنت تستخدم مشغل قائمة انتظار لوظيفتك، فحينها يستخدم "id": "{queueTrigger}" قيمة سلسلة رسالة قائمة الانتظار كمعرف السجل لاسترداده.
الاتصال Connection اسم إعداد التطبيق الذي يحتوي على عنوان URL لتطبيق الأجهزة المحمولة. تستخدم الوظيفة عنوان URL هذا لإنشاء عمليات REST المطلوبة مقابل تطبيق الأجهزة المحمولة. أنشئ إعداد تطبيق في تطبيق الوظائف الذي يحتوي على عنوان URL لتطبيق الأجهزة المحمولة، ثم حدد اسم إعداد التطبيق في الخاصية connection في ربط الإدخال. يبدو عنوان URL مثل https://<appname>.azurewebsites.net.
apiKey مفتاح واجهة برمجة التطبيقات اسم إعداد التطبيق الذي يحتوي على مفتاح API لتطبيق الأجهزة المحمولة الخاص بك. قم بتوفير مفتاح API إذا قمت بتنفيذ مفتاح API في تطبيق Node.js الأجهزة المحمولة الخاص بك، أو قمت بتنفيذ مفتاح API في تطبيق .NET للأجهزة المحمولة الخاص بك. لتوفير المفتاح، أنشئ إعداد تطبيق في تطبيق الوظائف الذي يحتوي على مفتاح API، ثم أضف الخاصية apiKey في ربط الإدخال مع اسم إعداد التطبيق.

عندما تقوم بالتطوير محليًا، أضف إعدادات التطبيق في ملف local.settings.json في المجموعة Values.

هام

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

الإدخال - الاستخدام

في وظائف C #، عند العثور على السجل بالمعرف المحدد، يتم تمريره إلى معلمة JObject المسماة. عندما لا يتم العثور على السجل، تكون قيمة المعلمة null.

في وظائف JavaScript، يتم تمرير السجل داخل الكائن context.bindings.<name>. عندما لا يتم العثور على السجل، تكون قيمة المعلمة null.

في وظائف C # و F #، يتم إرسال أي تغييرات تجريها على سجل الإدخال (معلمة الإدخال) تلقائيًا إلى الجدول عند إنهاء الوظيفة بنجاح. لا يمكنك تعديل سجل في وظائف JavaScript.

المخرجات

استخدم ربط إخراج تطبيقات الهاتف المحمول لكتابة سجل جديد إلى جدول تطبيقات الأجهزة المحمولة.

مثال - الإخراج

يظهر المثال التالي وظيفة C#‎ التي يتم تشغيلها بواسطة رسالة قائمة انتظار وتنشئ سجل في جدول تطبيقات الأجهزة المحمولة.

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    return new { Text = $"I'm running in a C# function! {myQueueItem}" };
}

الإخراج - سمات

في مكتبات الفئة C#‎، استخدم السمة MobileTable.

للحصول على معلومات حول خصائص السمة التي يمكنك تكوينها، راجع ⁦⁩الإخراج - التكوين⁩. فيما يلي MobileTable مثال سمة في توقيع أسلوب:

[FunctionName("MobileAppsOutput")]        
[return: MobileTable(ApiKeySetting = "MyMobileAppKey", TableName = "MyTable", MobileAppUriSetting = "MyMobileAppUri")]
public static object Run(
    [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
    TraceWriter log)
{
    ...
}

الإخراج - التكوين

يشرح الجدول التالي خصائص تكوين الرابط التي قمت بتعيينها في الملف function.json و MobileTable السمة.

خاصية function.json خاصية السمة ‏‏الوصف
النوع غير متوفر يجب تعيين إلى "mobileTable"
الاتجاه غير متوفر يجب ضبطها إلى «خارج»
الاسم غير متوفر اسم معلمة الإخراج في توقيع الوظيفة.
اسم الجدول TableName اسم جدول بيانات تطبيق الأجهزة المحمولة
الاتصال MobileAppUriSetting اسم إعداد التطبيق الذي يحتوي على عنوان URL لتطبيق الأجهزة المحمولة. تستخدم الوظيفة عنوان URL هذا لإنشاء عمليات REST المطلوبة مقابل تطبيق الأجهزة المحمولة. أنشئ إعداد تطبيق في تطبيق الوظائف الذي يحتوي على عنوان URL لتطبيق الأجهزة المحمولة، ثم حدد اسم إعداد التطبيق في الخاصية connection في ربط الإدخال. يبدو عنوان URL مثل https://<appname>.azurewebsites.net.
apiKey ApiKeySetting اسم إعداد التطبيق الذي يحتوي على مفتاح API لتطبيق الأجهزة المحمولة الخاص بك. قم بتوفير مفتاح API إذا قمت بتنفيذ مفتاح API في خلفية تطبيق Node.js الأجهزة المحمولة الخاص بك، أو قمت بتنفيذ مفتاح API في خلفية تطبيق .NET للأجهزة المحمولة الخاص بك. لتوفير المفتاح، أنشئ إعداد تطبيق في تطبيق الوظائف الذي يحتوي على مفتاح API، ثم أضف الخاصية apiKey في ربط الإدخال مع اسم إعداد التطبيق.

عندما تقوم بالتطوير محليًا، أضف إعدادات التطبيق في ملف local.settings.json في المجموعة Values.

هام

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

الإخراج - الاستخدام

في وظائفالبرنامج النصي C#، استخدم معلمة إخراج مسماة من النوع out object للوصول إلى سجل الإخراج. في مكتبات فئة C #، يمكن استخدام السمة MobileTable مع أي من الأنواع التالية:

  • ICollector<T> أو IAsyncCollector<T>، حيث تكون T إما JObject أو أي نوع مع خاصية public string Id.
  • out JObject
  • out T أو out T[]، حيث تكون T أي نوع مع خاصيةpublic string Id.

في وظائفNode.js، استخدم context.bindings.<name> للوصول إلى سجل الإخراج.

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