مشاركة عبر


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

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

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

تثبيت الملحق

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

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

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

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

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

يدعم هذا الإصدار تكوين المشغلات والروابط من خلال تكامل .NET Aspire.

أضف الملحق إلى مشروعك عن طريق تثبيت حزمة 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

تثبيت الحزمة

لكي تتمكن من استخدام ملحق الربط هذا في تطبيقك، تأكد من أن ملف host.json في جذر مشروعك يحتوي على هذا extensionBundle المرجع:

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

في هذا المثال، version ترشد قيمة [4.0.0, 5.0.0) مضيف الوظائف إلى استخدام إصدار حزمة على الأقل 4.0.0 ولكن أقل من 5.0.0، والذي يتضمن جميع الإصدارات المحتملة من 4.x. يحافظ هذا النص بشكل فعال على تطبيقك على أحدث إصدار ثانوي متوفر من مجموعة ملحقات v4.x.

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

أنواع الربط

تعتمد أنواع الربط المعتمدة ل .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.

أنواع ربط SDK

أنواع SDK ل Azure Storage Blob متوفرة بشكل عام! اتبع روابط Python SDK لعينة Blob لبدء استخدام أنواع SDK للكائن الثنائي كبير الحجم في Python.

هام

يتطلب استخدام روابط نوع SDK نموذج برمجة Python v2.


الربط أنواع المعلمات العينات
مشغل كائن ثنائي كبير الحجم BlobClient،
ContainerClient،
تحميل StorageStream
BlobClient,
ContainerClient,
StorageStreamDownloader
إدخال كائن ثنائي كبير الحجم BlobClient،
ContainerClient،
تحميل StorageStream
BlobClient,
ContainerClient,
StorageStreamDownloader

إعدادات 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
        }
    }
}
الخاصية الإعداد الافتراضي ‏‏الوصف
maxDegreeOfParallelism 8 * (عدد النوى المتوفرة) عدد صحيح من الاستدعاءات المتزامنة المسموح بها لجميع الوظائف التي يتم تشغيلها من قبل الكائن الثنائي كبير الحجم في تطبيق وظائف معين. الحد الأدنى للقيمة المسموح بها هو 1.
سمBlobThreshold 5 عدد صحيح من المرات لمحاولة معالجة رسالة قبل نقلها إلى قائمة انتظار السم. الحد الأدنى للقيمة المسموح بها هو 1.

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