روابط تخزين Azure Blob لنظرة عامة على وظائف Azure

تتكامل وظائف Azure مع Azure Storage عبر المشغلات والربط. يتيح لك التكامل مع تخزين Blob إنشاء وظائف تتفاعل مع التغييرات في بيانات blob بالإضافة إلى قيم القراءة والكتابة.

الإجراء نوع
تشغيل وظيفة عندما تتغير بيانات تخزين البيانات الثنائية الكبيرة المشغِّل
قراءة بيانات تخزين البيانات الثنائية الكبيرة في دالة ربط الإدخال
السماح لوظيفة لكتابة بيانات تخزين البيانات الثنائية الكبيرة ربط الإخراج

تثبيت الملحق

تعتمد حزمة NuGet الملحق التي تقوم بتثبيتها على وضع C# الذي تستخدمه في تطبيق الوظائف:

يتم تنفيذ الوظائف في عملية عامل C# معزولة. لمعرفة المزيد، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة.

تختلف وظيفة الملحق باختلاف إصدار الملحق:

يقدم هذا الإصدار القدرة على الاتصال باستخدام هوية بدلاً من سر. للحصول على برنامج تعليمي حول تكوين تطبيقات الوظائف الخاصة بك باستخدام الهويات المُدارة، راجع البرنامج التعليمي لإنشاء تطبيق وظائف باستخدام الاتصالات المستندة إلى الهوية.

يسمح هذا الإصدار بالربط بالأنواع منAzure.Storage.Blobs. تعرف على المزيد عن أن هذه الأنواع الجديدة مختلفة عنWindowsAzure.StorageوMicrosoft.Azure.Storageوكيفية الترحيل إليها من دليل ترحيلAzure.Storage.Blobs.

أضف الملحق إلى مشروعك عن طريق تثبيت حزمة Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs NuGet، الإصدار 5.x أو أحدث.

استخدام .NET CLI:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs

إشعار

تستخدم الكائنات الثنائية كبيرة الحجم ل Azure وقوائم انتظار Azure وجداول Azure الآن ملحقات منفصلة وتتم الإشارة إليها بشكل فردي. على سبيل المثال، لاستخدام المشغلات والروابط لجميع الخدمات الثلاث في تطبيق .NET المعزول، يجب إضافة الحزم التالية إلى مشروعك:

في السابق، تم شحن الملحقات معا ك Microsoft.Azure.Functions.Worker.Extensions.Storage، الإصدار 4.x. تحتوي هذه الحزمة ذاتها أيضاً علىالإصدار 5.x، والذي يشير إلى الحِزم المنقسمة للعناصر الثنائية كبيرة الحجم وقوائم الانتظار فقط. عند ترقية مراجع الحزمة من الإصدارات القديمة، قد تحتاج بالتالي إلى الرجوع إلى حزمة NuGet الجديدة Microsoft.Azure.Functions.Worker.Extensions.Tables . أيضاً، عند الرجوع إلى هذه الحزم المقسمة الأحدث، تأكد من أنك لا تشير إلى إصدار أقدم من حزمة التخزين المدمجة، لأن هذا سيؤدي إلى تعارضات من تعريفين لنفس الارتباطات.

إذا كنت تكتب تطبيقك باستخدام F#، فيجب عليك أيضا تكوين هذا الملحق كجزء من تكوين بدء تشغيل التطبيق. في الاستدعاء إلى ConfigureFunctionsWorkerDefaults() أو ConfigureFunctionsWebApplication()، أضف مفوضا يأخذ معلمة IFunctionsWorkerApplication . ثم داخل نص هذا المفوض، استدع ConfigureBlobStorageExtension() على الكائن :

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore

تثبيت الحزمة

يعتبر ربط التخزين Blob جزءًا منحزمة الامتداد، المحددة في ملف مشروع host.json الخاص بك. من الممكن أن تحتاج إلى تعديل هذه الحزمة لتغيير إصدار الربط، أو إذا لم تكن الحزم مثبتة بالفعل. لمعرفة المزيد، راجع حزمة الإضافات.

يقدم هذا الإصدار القدرة على الاتصال باستخدام هوية بدلاً من سر. للحصول على برنامج تعليمي حول تكوين تطبيقات الوظائف الخاصة بك باستخدام الهويات المُدارة، راجع البرنامج التعليمي لإنشاء تطبيق وظائف باستخدام الاتصالات المستندة إلى الهوية.

يمكن إضافة حزمة ملحق مجموعة المعاينة v3 هذا من خلال إضافة أو استبدال التعليمة البرمجية التالية في ملف host.jsonالخاص بك:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

لمعرفة المزيد، راجع تحديث الإضافات.

أنواع الربط

تعتمد أنواع الربط المعتمدة ل .NET على كل من إصدار الملحق ووضع تنفيذ C#، والتي يمكن أن تكون واحدة مما يلي:

تعمل مكتبة فئة معالجة عامل معزولة تعمل دالة C# المحولة برمجيا في عملية معزولة عن وقت التشغيل.

اختر إصدارا للاطلاع على تفاصيل نوع الربط للوضع والإصدار.

تدعم عملية العامل المعزولة أنواع المعلمات وفقا للجداول أدناه.

مشغل كائن ثنائي كبير الحجم

يمكن ربط مشغل الكائن الثنائي كبير الحجم بالأنواع التالية:

النوع ‏‏الوصف
string محتوى الكائن الثنائي كبير الحجم كسلسلة. استخدم عندما يكون محتوى الكائن الثنائي كبير الحجم نصا بسيطا.
byte[] وحدات البايت لمحتوى الكائن الثنائي كبير الحجم.
‏‏أنواع قابلة للتسلسل إلى JSON عندما يحتوي كائن ثنائي كبير الحجم على بيانات JSON، تحاول الدالات إلغاء تسلسل بيانات JSON إلى نوع كائن CLR (POCO) قديم عادي.
دفق1 دفق إدخال لمحتوى الكائن الثنائي كبير الحجم.
BlobClient1،
BlockBlobClient1،
PageBlobClient1،
AppendBlobClient1،
BlobBaseClient1
عميل متصل بالكائن الثنائي كبير الحجم. توفر هذه المجموعة من الأنواع أكبر قدر من التحكم لمعالجة الكائن الثنائي كبير الحجم ويمكن استخدامها للكتابة مرة أخرى إلى الكائن الثنائي كبير الحجم إذا كان الاتصال لديه إذن كاف.

1 لاستخدام هذه الأنواع، تحتاج إلى الرجوع إلى Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 أو أحدث والتبعيات الشائعة لروابط نوع SDK.

ربط إدخال كائن ثنائي كبير الحجم

عندما تريد أن تقوم الدالة بمعالجة كائن ثنائي كبير الحجم واحد، يمكن ربط ربط إدخال الكائن الثنائي كبير الحجم بالأنواع التالية:

النوع ‏‏الوصف
string محتوى الكائن الثنائي كبير الحجم كسلسلة. استخدم عندما يكون محتوى الكائن الثنائي كبير الحجم نصا بسيطا.
byte[] وحدات البايت لمحتوى الكائن الثنائي كبير الحجم.
‏‏أنواع قابلة للتسلسل إلى JSON عندما يحتوي كائن ثنائي كبير الحجم على بيانات JSON، تحاول الدالات إلغاء تسلسل بيانات JSON إلى نوع كائن CLR (POCO) قديم عادي.
دفق1 دفق إدخال لمحتوى الكائن الثنائي كبير الحجم.
BlobClient1،
BlockBlobClient1،
PageBlobClient1،
AppendBlobClient1،
BlobBaseClient1
عميل متصل بالكائن الثنائي كبير الحجم. توفر هذه المجموعة من الأنواع أكبر قدر من التحكم لمعالجة الكائن الثنائي كبير الحجم ويمكن استخدامها للكتابة مرة أخرى إليه إذا كان الاتصال لديه إذن كاف.

عندما تريد أن تعالج الدالة كائنات ثنائية كبيرة الحجم متعددة من حاوية، يمكن ربط ربط إدخال الكائن الثنائي كبير الحجم بالأنواع التالية:

النوع ‏‏الوصف
T[] أو List<T> حيث T هو واحد من أنواع ربط إدخال كائن ثنائي كبير الحجم واحد صفيف أو قائمة من الكائنات الثنائية كبيرة الحجم المتعددة. يمثل كل إدخال كائن ثنائي كبير الحجم واحدا من الحاوية. يمكنك أيضا الربط بأي واجهات يتم تنفيذها بواسطة هذه الأنواع، مثل IEnumerable<T>.
BlobContainerClient1 عميل متصل بالحاوية. يوفر هذا النوع أكبر قدر من التحكم لمعالجة الحاوية ويمكن استخدامه للكتابة إليها إذا كان الاتصال لديه إذن كاف.

1 لاستخدام هذه الأنواع، تحتاج إلى الرجوع إلى Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 أو أحدث والتبعيات الشائعة لروابط نوع SDK.

ربط إخراج Blob

عندما تريد أن تكتب الدالة إلى كائن ثنائي كبير الحجم واحد، يمكن ربط ربط إخراج الكائن الثنائي كبير الحجم بالأنواع التالية:

النوع ‏‏الوصف
string محتوى الكائن الثنائي كبير الحجم كسلسلة. استخدم عندما يكون محتوى الكائن الثنائي كبير الحجم نصا بسيطا.
byte[] وحدات البايت لمحتوى الكائن الثنائي كبير الحجم.
‏‏أنواع قابلة للتسلسل إلى JSON كائن يمثل محتوى كائن ثنائي كبير الحجم JSON. تحاول الدالات تسلسل نوع كائن CLR (POCO) قديم عادي في بيانات JSON.

عندما تريد أن تكتب الدالة إلى الكائنات الثنائية كبيرة الحجم المتعددة، يمكن ربط ربط إخراج الكائن الثنائي كبير الحجم بالأنواع التالية:

النوع ‏‏الوصف
T[] حيث T هو واحد من أنواع ربط إخراج كائن ثنائي كبير الحجم واحد صفيف يحتوي على محتوى لنقاط متعددة. يمثل كل إدخال محتوى كائن ثنائي كبير الحجم واحد.

بالنسبة لسيناريوهات الإخراج الأخرى، قم بإنشاء واستخدام BlobClient أو BlobContainerClient مع أنواع أخرى من Azure.Storage.Blobs مباشرة. راجع تسجيل عملاء Azure للحصول على مثال لاستخدام إدخال التبعية لإنشاء نوع عميل من Azure SDK.

إعدادات host.json

يصف هذا القسم إعدادات تكوين تطبيق الوظائف المتاحة للوظائف التي تستخدم هذا الربط. تنطبق هذه الإعدادات فقط عند استخدام إصدار الامتداد 5.0.0 والإصدارات الأحدث. يحتوي مثال ملف host.json أدناه على إعدادات الإصدار 2.x + فقط لهذا الربط. للحصول على مزيدٍ من المعلومات عن إعدادات تكوين التطبيق الوظيفي في الإصدارات 2.x والإصدارات الأحدث، راجع مرجع host.json لوظائف Azure.

إشعار

لا ينطبق هذا القسم على إصدارات الامتداد قبل 5.0.0. بالنسبة لتلك الإصدارات السابقة، لا توجد أي إعدادات تكوين على مستوى التطبيق للوظائف للنقاط الكبيرة.

{
    "version": "2.0",
    "extensions": {
        "blobs": {
            "maxDegreeOfParallelism": 4,
            "poisonBlobThreshold": 1
        }
    }
}
الخاصية Default ‏‏الوصف
maxDegreeOfParallelism 8 * (عدد النوى المتوفرة) عدد صحيح من الاستدعاءات المتزامنة المسموح بها لجميع الوظائف التي يتم تشغيلها من قبل الكائن الثنائي كبير الحجم في تطبيق وظائف معين. الحد الأدنى للقيمة المسموح بها هو 1.
سمBlobThreshold 5 عدد صحيح من المرات لمحاولة معالجة رسالة قبل نقلها إلى قائمة انتظار السم. الحد الأدنى للقيمة المسموح بها هو 1.

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