سيناريوهات Azure Functions
غالبًا ما نبني أنظمة للرد على سلسلة من الأحداث الحرجة. سواء كنت تنشئ واجهة برمجة تطبيقات ويب، أو تستجيب لتغييرات قاعدة البيانات، أو تعالج تدفقات الأحداث أو الرسائل، يمكن استخدام Azure Functions لتنفيذها.
في كثير من الحالات، فإن الدالة تتكامل مع مجموعة من الخدمات السحابية لتقديم تطبيقات ثرية بالميزات. فيما يلي مجموعة شائعة (ولكن ليس شاملة) من السيناريوهات ل Azure Functions.
حدد لغة التطوير في أعلى المقالة.
معالجة تحميلات الملفات
هناك عدة طرق لاستخدام الدالات لمعالجة الملفات داخل حاوية تخزين كائن ثنائي كبير الحجم أو خارجها. لمعرفة المزيد حول خيارات التشغيل على حاوية كائن ثنائي كبير الحجم، راجع العمل مع الكائنات الثنائية كبيرة الحجم في وثائق أفضل الممارسات.
على سبيل المثال، في حل البيع بالتجزئة، يمكن لنظام شريك إرسال معلومات كتالوج المنتج كملفات إلى تخزين blob. يمكنك استخدام وظيفة blob المشغلة للتحقق من صحة الملفات وتحويلها ومعالجتها في النظام الرئيسي أثناء تحميلها.
تستخدم البرامج التعليمية التالية مشغل Blob (يستند إلى Event Grid) لمعالجة الملفات في حاوية كائن ثنائي كبير الحجم:
على سبيل المثال، استخدام مشغل كائن ثنائي كبير الحجم مع اشتراك حدث على حاويات الكائن الثنائي كبير الحجم:
[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")]Stream myCatalogData, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");
using (var reader = new StreamReader(myCatalogData))
{
var catalogEntry = await reader.ReadLineAsync();
while(catalogEntry !=null)
{
// Process the catalog entry
// ...
catalogEntry = await reader.ReadLineAsync();
}
}
}
التدفق في الوقت الحقيقي ومعالجة الأحداث
يتم إنشاء الكثير من بيانات تتبع الاستخدام وجمعها من التطبيقات السحابية وأجهزة IoT وأجهزة الشبكات. يمكن ل Azure Functions معالجة تلك البيانات في الوقت الفعلي تقريبا كمسار ساخن، ثم تخزينها في Azure Cosmos DB لاستخدامها في لوحة معلومات التحليلات.
يمكن أن تستخدم وظائفك أيضا مشغلات الأحداث ذات زمن انتقال منخفض، مثل Event Grid، والمخرجات في الوقت الفعلي مثل SignalR لمعالجة البيانات في الوقت الفعلي تقريبا.
على سبيل المثال، استخدام مشغل مراكز الأحداث للقراءة من مركز أحداث وربط الإخراج للكتابة إلى مركز أحداث بعد تصحيح الأحداث وتحويلها:
[FunctionName("ProcessorFunction")]
public static async Task Run(
[EventHubTrigger(
"%Input_EH_Name%",
Connection = "InputEventHubConnectionSetting",
ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
[EventHub(
"%Output_EH_Name%",
Connection = "OutputEventHubConnectionSetting")] IAsyncCollector<SensorDataRecord> outputMessages,
PartitionContext partitionContext,
ILogger log)
{
var debatcher = new Debatcher(log);
var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);
var xformer = new Transformer(log);
await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}
- البث على نطاق واسع باستخدام مراكز الأحداث والوظائف وAzure SQL
- البث على نطاق واسع باستخدام مراكز الأحداث والوظائف وقاعدة بيانات Cosmos
- البث على نطاق واسع مع مراكز أحداث Azure مع منتج Kafka والوظائف مع مشغل Kafka و Cosmos DB
- البث على نطاق واسع باستخدام Azure IoT Hub والوظائف وAzure SQL
- مشغل مراكز أحداث Azure لوظائف Azure
- مشغل Apache Kafka لوظائف Azure
التعلم الآلي والذكاء الاصطناعي
بالإضافة إلى معالجة البيانات، يمكن استخدام Azure Functions للاستدلال على النماذج. يتيح ملحق ربط Azure OpenAI دمج ميزات وسلوكيات خدمة Azure OpenAI بسهولة في عمليات تنفيذ التعليمات البرمجية للدالة.
يمكن للوظائف الاتصال بموارد OpenAI لتمكين إكمال النص والدردشة، واستخدام المساعدين، والاستفادة من عمليات التضمين والبحث الدلالي.
قد تستدعي الدالة أيضا نموذج TensorFlow أو خدمات Azure الذكاء الاصطناعي لمعالجة وتصنيف دفق من الصور.
- البرنامج التعليمي: إكمال النص باستخدام Azure OpenAI
- نموذج: تحميل الملفات النصية والوصول إلى البيانات باستخدام ميزات OpenAI المختلفة
- نموذج: تلخيص النص باستخدام الذكاء الاصطناعي Cognitive Language Service
- نموذج: إكمال النص باستخدام Azure OpenAI
- عينة: توفير مهارات المساعد للنموذج الخاص بك
- عينة: إنشاء عمليات تضمين
- نموذج: الاستفادة من البحث الدلالي
- البرنامج التعليمي: إكمال النص باستخدام Azure OpenAI
- نموذج: إكمال النص باستخدام Azure OpenAI
- عينة: توفير مهارات المساعد للنموذج الخاص بك
- عينة: إنشاء عمليات تضمين
- نموذج: الاستفادة من البحث الدلالي
- البرنامج التعليمي: إكمال النص باستخدام Azure OpenAI
- البرنامج التعليمي: تطبيق نماذج التعلم الآلي في Azure Functions باستخدام Python وTensorFlow
- البرنامج التعليمي: نشر نموذج تصنيف صور مدرب مسبقا إلى وظائف Azure باستخدام PyTorch
- نموذج: إكمال النص باستخدام Azure OpenAI
- عينة: توفير مهارات المساعد للنموذج الخاص بك
- عينة: إنشاء عمليات تضمين
- نموذج: الاستفادة من البحث الدلالي
- عينة: الدردشة باستخدام ChatGPT
- عينة: LangChain مع Azure OpenAI و ChatGPT
- البرنامج التعليمي: إكمال النص باستخدام Azure OpenAI
- نموذج: إكمال النص باستخدام Azure OpenAI
- عينة: توفير مهارات المساعد للنموذج الخاص بك
- عينة: إنشاء عمليات تضمين
- نموذج: الاستفادة من البحث الدلالي
تشغيل المهام المجدولة
تمكنك الوظائف من تشغيل التعليمات البرمجية الخاصة بك استنادا إلى جدول cron الذي تحدده.
تحقق من كيفية إنشاء دالة في مدخل Microsoft Azure التي تعمل على جدول زمني.
على سبيل المثال، قد يتم تحليل قاعدة بيانات عملاء الخدمات المالية للإدخالات المكررة كل 15 دقيقة لتجنب الاتصالات المتعددة التي تخرج إلى نفس العميل.
[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
if (myTimer.IsPastDue)
{
log.LogInformation("Timer is running late!");
}
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
// Perform the database deduplication
}
إنشاء واجهة برمجة تطبيقات ويب قابلة للتطوير
تحدد الدالة التي تم تشغيلها من قبل HTTP نقطة نهاية HTTP. تعمل نقاط النهاية هذه على تشغيل التعليمات البرمجية للدالة التي يمكنها الاتصال بخدمات أخرى مباشرة أو باستخدام ملحقات الربط. يمكنك إنشاء نقاط النهاية في واجهة برمجة تطبيقات مستندة إلى الويب.
يمكنك أيضا استخدام نقطة نهاية دالة مشغلة من HTTP كتكامل إخطار على الويب، مثل خطافات الويب GitHub. بهذه الطريقة، يمكنك إنشاء وظائف تعالج البيانات من أحداث GitHub. لمعرفة المزيد، راجع مراقبة أحداث GitHub باستخدام خطاف ويب مع Azure Functions.
على سبيل المثال، راجع ما يلي:
[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
[CosmosDB(
databaseName: "my-database",
collectionName: "my-container",
ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
string name = data?.name;
if (name == null)
{
return new BadRequestObjectResult("Please pass a name in the request body json");
}
// Add a JSON document to the output container.
await documentsOut.AddAsync(new
{
// create a random ID
id = System.Guid.NewGuid().ToString(),
name = name
});
return new OkResult();
}
- مقالة: إنشاء واجهات برمجة تطبيقات بلا خادم في Visual Studio باستخدام وظائف Azure وتكامل إدارة واجهة برمجة التطبيقات
- التدريب: عرض تطبيقات وظائف متعددة كواجهة برمجة تطبيقات متسقة باستخدام Azure API Management
- عينة: تنفيذ نمط geode عن طريق نشر واجهة برمجة التطبيقات على المواقع الجغرافية في مناطق Azure الموزعة.
- المقالة: مشغل HTTP لوظائف Azure
- عينة: تطبيق ويب مع واجهة برمجة تطبيقات C# وAzure SQL DB على تطبيقات الويب الثابتة والوظائف
- التدريب: تطوير وظائف Java بلا خادم على Azure باستخدام Maven
- المقالة: مشغل HTTP لوظائف Azure
إنشاء سير عمل بلا خادم
غالبا ما تكون الوظائف مكون الحساب في مخطط سير عمل بلا خادم، مثل سير عمل Logic Apps. يمكنك أيضا إنشاء تنسيقات طويلة الأمد باستخدام ملحق Durable Functions. لمزيد من المعلومات، راجع نظرة عامة على Durable Functions.
- البرنامج التعليمي: إنشاء وظيفة للتكامل مع Azure Logic Apps
- التشغيل السريع: إنشاء أول وظيفة دائمة في Azure باستخدام C#
- التدريب: نشر واجهات برمجة التطبيقات بلا خادم باستخدام Azure Functions وLogic Apps وقاعدة بيانات Azure SQL
- التشغيل السريع: إنشاء أول وظيفة دائمة في Azure باستخدام Java
- التشغيل السريع: إنشاء أول وظيفة دائمة في Azure باستخدام PowerShell
الاستجابة لتغييرات قاعدة البيانات
هناك عمليات قد تحتاج فيها إلى تسجيل أو تدقيق أو تنفيذ بعض العمليات الأخرى عند تغيير البيانات المخزنة. توفر مشغلات الوظائف طريقة جيدة للحصول على إشعار بتغييرات البيانات في البداية مثل هذه العملية.
خذ بعين الاعتبار هذه الأمثلة:
إنشاء أنظمة رسائل موثوقة
يمكنك استخدام Functions مع خدمات مراسلة Azure لإنشاء حلول مراسلة متقدمة تستند إلى الحدث.
على سبيل المثال، يمكنك استخدام المشغلات في قوائم انتظار Azure Storage كطريقة لربط سلسلة من عمليات تنفيذ الوظائف معا. أو استخدم قوائم انتظار ومشغلات ناقل الخدمة لنظام طلب عبر الإنترنت.
توضح هذه المقالات كيفية كتابة الإخراج إلى قائمة انتظار التخزين:
وتظهر هذه المقالات كيفية التشغيل من قائمة انتظار أو موضوع ناقل خدمة Azure.