مشاركة عبر


مشغل المؤقت Azure Functions

توضح هذه المقالة كيفية العمل مع مشغلات المؤقت في Azure Functions. مشغل المؤقت يتيح لك تشغيل وفقاً لجدولٍ زمني.

هذه معلومات مرجعية لمطوري Azure Functions. إذا كنت جديداً على Azure Functions، فابدأ بالموارد التالية:

للحصول على معلومات عن كيفية تشغيل دالة يُشغِّلها المؤقت يدوياً، راجع تشغيل دالة لا يُشغِّلها HTTP يدوياً.

يتم توفير دعم هذا الربط تلقائياً في جميع بيئات التطوير. لا يتعين عليك تثبيت الحزمة يدوياً أو تسجيل الملحق.

توجد التعليمات البرمجية المصدر لحزمة ملحق المؤقت في مستودع GitHub azure-webjobs-sdk-extensions .

Important

تستخدم هذه المقالة علامات التبويب لدعم إصدارات متعددة من نموذج البرمجة Node.js. يتوفر نموذج v4 بشكل عام وتم تصميمه للحصول على تجربة أكثر مرونة وبديهية لمطوري JavaScript وTypeScript. لمزيد من التفاصيل حول كيفية عمل نموذج v4، راجع دليل مطور Azure Functions Node.js. لمعرفة المزيد حول الاختلافات بين v3 وv4، راجع دليل الترحيل.

تدعم Azure Functions نموذجي برمجة ل Python. تعتمد الطريقة التي تحدد بها روابطك على نموذج البرمجة الذي اخترته.

يتيح لك نموذج برمجة Python v2 تحديد الروابط باستخدام المحسنات مباشرة في التعليمات البرمجية لدالة Python. لمزيد من المعلومات، راجع دليل مطور Python.

تدعم هذه المقالة كلا نموذجي البرمجة.

Example

يظهر هذا المثال دالة C# التي تنفذ في كل مرة تحتوي فيها الدقائق على قيمة قابلة للقسمة بمقدار خمسة. على سبيل المثال، عندما تبدأ الدالة في 18:55:00، يكون التنفيذ التالي في 19:00:00. يُمرر كائن TimerInfo إلى الدالة.

يمكن إنشاء دالة C# باستخدام أحد أوضاع C# التالية:

  • نموذج العامل المعزول: دالة C# المترجمة التي يتم تشغيلها في عملية عامل معزولة عن وقت التشغيل. عملية العامل المعزولة مطلوبة لدعم وظائف C# التي تعمل على إصدارات LTS وغير LTS .NET و.NET Framework. تستخدم Microsoft.Azure.Functions.Worker.Extensions.* ملحقات دالات عملية العامل المعزولة مساحات الأسماء.
  • نموذج قيد المعالجة: دالة C# المحولة برمجيا التي تعمل في نفس العملية مثل وقت تشغيل الوظائف. في تباين هذا النموذج، يمكن تشغيل الدالات باستخدام البرمجة النصية C#‎، والتي يتم دعمها بشكل أساسي لتحرير مدخل C#. تستخدم Microsoft.Azure.WebJobs.Extensions.* ملحقات الوظائف قيد المعالجة مساحات الأسماء.

Important

سينتهي الدعم للنموذج قيد التنفيذ في 10 نوفمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى نموذج العامل المعزول للحصول على الدعم الكامل.

[Function(nameof(TimerFunction))]
[FixedDelayRetry(5, "00:00:10")]
public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo timerInfo,
    FunctionContext context)
{
    var logger = context.GetLogger(nameof(TimerFunction));
    logger.LogInformation($"Function Ran. Next timer schedule = {timerInfo.ScheduleStatus?.Next}");
}

تُشغَّل الدالة المثال التالي وتُنفَّذ كل خمس دقائق. @TimerTrigger يحدد التعليق التوضيحي على الدالة الجدول باستخدام نفس تنسيق السلسلة مثل تعبيرات CRON.

@FunctionName("keepAlive")
public void keepAlive(
  @TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
      ExecutionContext context
 ) {
     // timeInfo is a JSON string, you can deserialize it to an object using your favorite JSON library
     context.getLogger().info("Timer is triggered: " + timerInfo);
}

يوضح المثال التالي ربط مشغل المؤقت ورمز الدالة الذي يستخدم الربط، حيث يتم تمرير مثيل يمثل المؤقت إلى الدالة . تكتب الدالة سجلاً يشير إلى ما إذا كان استدعاء هذه الدالة ناتجاً عن خطأ عند حدوث الجدولة. يعتمد المثال على ما إذا كنت تستخدم نموذج برمجة v1 أو v2 Python.

import datetime
import logging
import azure.functions as func

app = func.FunctionApp()

@app.function_name(name="mytimer")
@app.timer_trigger(schedule="0 */5 * * * *", 
              arg_name="mytimer",
              run_on_startup=False) 
def test_function(mytimer: func.TimerRequest) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()
    if mytimer.past_due:
        logging.info('The timer is past due!')
    logging.info('Python timer trigger function ran at %s', utc_timestamp)

يوضح المثال التالي دالة TypeScript لمشغل المؤقت.

import { app, InvocationContext, Timer } from '@azure/functions';

export async function timerTrigger1(myTimer: Timer, context: InvocationContext): Promise<void> {
    context.log('Timer function processed request.');
}

app.timer('timerTrigger1', {
    schedule: '0 */5 * * * *',
    handler: timerTrigger1,
});

يوضح المثال التالي دالة JavaScript لمشغل المؤقت.

const { app } = require('@azure/functions');

app.timer('timerTrigger1', {
    schedule: '0 */5 * * * *',
    handler: (myTimer, context) => {
        context.log('Timer function processed request.');
    },
});

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

{
    "schedule": "0 */5 * * * *",
    "name": "myTimer",
    "type": "timerTrigger",
    "direction": "in"
}

فيما يلي التعليمات البرمجية لدالة المؤقت في ملف run.ps1:

# Input bindings are passed in via param block.
param($myTimer)

# Get the current universal time in the default string format.
$currentUTCtime = (Get-Date).ToUniversalTime()

# The 'IsPastDue' property is 'true' when the current function invocation is later than scheduled.
if ($myTimer.IsPastDue) {
    Write-Host "PowerShell timer is running late!"
}

# Write an information log with the current time.
Write-Host "PowerShell timer trigger function ran! TIME: $currentUTCtime"

Attributes

قيد المعالجة تستخدم مكتبة C#‎ TimerTriggerAttribute من Microsoft.Azure.WebJobs.Extensions بينما تستخدم مكتبة C#‎ معالجة العامل المعزولةTimerTriggerAttribute من Microsoft.Azure.Functions.Worker.Extensions.Timer لتعريف الدالة. يستخدم البرنامج النصي C# بدلاً من ذلك ملف تكوين function.json.

خاصية السمة Description
Schedule تعبير CRON أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كـ %ScheduleAppSetting%.
RunOnStartup إذا true، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر.يجب أن نادرا ما يتم تعيين RunOnStartup إلى true، خاصة في الإنتاج.
UseMonitor تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false.

Decorators

ينطبق فقط على نموذج برمجة Python v2.

بالنسبة لوظائف Python v2 المعرفة باستخدام مصمم الديكور، الخصائص التالية على schedule:

Property Description
arg_name اسم المتغير الذي يمثل كائن المؤقت في التعليمات البرمجية للدالة.
schedule تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪".
run_on_startup إذا true، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر.يجب أن نادرا ما يتم تعيين runOnStartup إلى true، خاصة في الإنتاج.
use_monitor تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false.

للحصول على وظائف Python المعرفة باستخدام function.json، راجع قسم التكوين .

Annotations

@TimerTrigger يعرف التعليق التوضيحي على الدالة schedule باستخدام نفس تنسيق السلسلة مثل تعبيرات CRON. يدعم التعليق التوضيحي الإعدادات التالية:

Configuration

ينطبق فقط على نموذج برمجة Python v1.

يوضح الجدول التالي الخصائص التي يمكنك تعيينها على الكائن الذي options تم تمريره app.timer() إلى الأسلوب .

Property Description
schedule تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪".
runOnStartup إذا true، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر.يجب أن نادرا ما يتم تعيين runOnStartup إلى true، خاصة في الإنتاج.
useMonitor تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false.

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

خاصية function.json Description
type يجب تعيين إلى "timerTrigger". يتم تعيين هذه الخاصية تلقائيا عند إنشاء المشغل في مدخل Microsoft Azure.
direction يجب التعيين إلى "داخل". يتم تعيين هذه الخاصية تلقائيا عند إنشاء المشغل في مدخل Microsoft Azure.
name اسم المتغير الذي يمثل كائن المؤقت في التعليمات البرمجية للدالة.
schedule تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪".
runOnStartup إذا true، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر.يجب أن نادرا ما يتم تعيين runOnStartup إلى true، خاصة في الإنتاج.
useMonitor تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false.

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

Caution

لا تقم بتعيين runOnStartup إلى true في الإنتاج. يؤدي استخدام هذا الإعداد إلى تنفيذ التعليمات البرمجية في أوقات غير متوقعة للغاية. في بعض إعدادات التشغيل، يمكن أن تؤدي عمليات التنفيذ الإضافية هذه إلى ارتفاع تكاليف التطبيقات المستضافة في خطط الاستهلاك. على سبيل المثال، مع تمكين runOnStartup ، يتم استدعاء المشغل كلما تم تغيير حجم تطبيق الوظائف. تأكد من فهم سلوك الإنتاج لوظائفك بشكل كامل قبل تمكين runOnStartup في الإنتاج.

راجع قسم Example للحصول على أمثلة كاملة.

Usage

عند استدعاء دالة مشغل مؤقت، يُمرر كائن مؤقت إلى الدالة. JSON التالي هو مثال على تمثيل كائن المؤقت.

{
    "Schedule":{
        "AdjustForDST": true
    },
    "ScheduleStatus": {
        "Last":"2016-10-04T10:15:00+00:00",
        "LastUpdated":"2016-10-04T10:16:00+00:00",
        "Next":"2016-10-04T10:20:00+00:00"
    },
    "IsPastDue":false
}
{
    "schedule":{
        "adjustForDST": true
    },
    "scheduleStatus": {
        "last":"2016-10-04T10:15:00+00:00",
        "lastUpdated":"2016-10-04T10:16:00+00:00",
        "next":"2016-10-04T10:20:00+00:00"
    },
    "isPastDue":false
}

تكون الخاصية isPastDue هي true عندما يكون استدعاء الدالة الحالي متأخرًا عن الجدول الزمني. على سبيل المثال، قد يؤدي إعادة تشغيل تطبيق الوظائف إلى حدوث خطأ عند الاستدعاء.

تعبيرات NCRONTAB

تستخدم Azure Functions مكتبة NCronTab لتفسير تعبيرات NCRONTAB. تعبير NCRONTAB مشابه لتعبير CRON فيما عدا أنه يتضمن حقلاً سادسًا إضافيًا في البداية لاستخدامه من أجل دقة الوقت بالثواني:

{second} {minute} {hour} {day} {month} {day-of-week}

يمكن أن يحتوي كل حقل على أحد أنواع القيم التالية:

Type Example عند التشغيل
قيمة محددة 0 5 * * * * مرة كل ساعة من اليوم في الدقيقة الخامسة (5) من كل ساعة
كل القيم (*) 0 * 5 * * * في كل دقيقة في الساعة، خلال الساعة 5
نطاق (عامل تشغيل- ) 5-7 * * * * * ثلاث مرات في الدقيقة - في الثواني من 5 إلى 7 خلال كل دقيقة من كل ساعة من كل يوم
مجموعة من القيم (عامل تشغيل, ) 5,8,10 * * * * * ثلاث مرات في الدقيقة - عند الثواني 5 و8 و10 خلال كل دقيقة من كل ساعة من كل يوم
قيمة الفاصل الزمني (عامل التشغيل/ ) 0 */5 * * * * 12 مرة في الساعة - في الثانية 0 من كل دقيقة خامسة من كل ساعة من كل يوم

لتحديد الأشهر أو الأيام، يمكنك استخدام القيم الرقمية أو الأسماء أو اختصارات الأسماء:

  • للأيام، تتراوح القيم الرقمية من 0 إلى 6، حيث تبدأ القيمة 0 ب الأحد.
  • الأسماء باللغة الإنجليزية. على سبيل المثال: Monday، January.
  • الأسماء غير حساسة لحالة الأحرف.
  • يمكن اختصار الأسماء. نوصي باستخدام ثلاثة أحرف للاختصارات. على سبيل المثال: Mon، Jan.

أمثلة NCRONTAB

فيما يلي بعض الأمثلة على تعبيرات NCRONTAB التي يمكنك استخدامها لتشغيل المؤقت في Azure Functions.

Example عند التشغيل
0 */5 * * * * مرة كل خمس دقائق
0 0 * * * * مرة واحدة في بداية كل ساعة
0 0 */2 * * * مرة كل ساعتين
0 0 9-17 * * * مرة كل ساعة من 9 صباحاً حتي 5 مساءً
0 30 9 * * * الساعة 9:30 صباحًا كل يوم
0 30 9 * * 1-5 الساعة 9:30 صباحًا في كل يوم من أيام الأسبوع
0 30 9 * Jan Mon الساعة 9:30 صباحًا كل يوم اثنين من شهر يناير

Note

يدعم تعبير NCRONTAB تنسيق الحقلين الخمسةوالسادسة . موضع الحقل السادس هو قيمة للثواني تُوضَع في بداية التعبير. إذا كان تعبير CRON غير صالح، فسيعرض Azure Portal Function Test خطأ 404، إذا كان Application Insights متصلا، تسجيل المزيد من التفاصيل هناك.

المناطق الزمنية NCRONTAB

تشير الأرقام الموجودة في تعبير NCRONTAB إلى وقت وتاريخ، وليس إلى فترة زمنية. على سبيل المثال، يشير 5 في الحقل hour إلى 5:00 صباحاً، وليس كل 5 ساعات.

المنطقة الزمنية الافتراضية المستخدمة مع تعبيرات CRON هي التوقيت العالمي (UTC). للحصول على تعبير CRON الخاص بك استناداً إلى منطقة زمنية أخرى، قم بإنشاء إعداد تطبيق لتطبيق وظيفتك باسم WEBSITE_TIME_ZONE.

تعتمد قيمة هذا الإعداد على نظام التشغيل والخطة التي يعمل عليها تطبيق وظيفتك.

نظام التشغيل Plan Value
Windows All عيّن القيمة على اسم المنطقة الزمنية المطلوبة كما هو محدد في السطر الثاني من كل زوج من الأزواج المعطاة بواسطة أمر Windows tzutil.exe /L
Linux Premium
Dedicated
قم بتعيين القيمة إلى اسم المنطقة الزمنية المطلوبة كما هو موضح في قاعدة بيانات tz

Note

WEBSITE_TIME_ZONEوهي TZ غير مدعومة حاليا عند التشغيل على Linux في خطة الاستهلاك أو الاستهلاك المرنة. في هذه الحالة، يمكن للإعداد WEBSITE_TIME_ZONE أو TZ إنشاء مشكلات متعلقة ب SSL والتسبب في توقف المقاييس عن العمل لتطبيقك.

على سبيل المثال، يستخدم Eastern Time في الولايات المتحدة (يتم تمثيله بواسطة Eastern Standard Time (Windows) أو America/New_York (Linux)) حالياً UTC-05:00 خلال التوقيت القياسي وUTC-04:00 خلال التوقيت الصيفي. لتشغيل مؤقت يعمل في الساعة 10:00 صباحاً بالتوقيت الشرقي كل يوم، أنشئ إعداد تطبيق لتطبيق وظيفتك باسم WEBSITE_TIME_ZONE، واضبط القيمة على Eastern Standard Time (Windows) أو America/New_York (Linux)، ثم استخدم تعبير NCRONTAB التالي:

"0 0 10 * * *"

عند استخدام WEBSITE_TIME_ZONE، يتم ضبط الوقت لتغييرات الوقت في المنطقة الزمنية المحددة، بما في ذلك التوقيت الصيفي والتغييرات في التوقيت القياسي.

TimeSpan

يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات.

على عكس تعبير NCRONTAB، TimeSpan تحدد القيمة الفاصل الزمني بين استدعاء كل دالة. عندما تكتمل إحدى الدوال بعد تشغيلها لفترةٍ أطول من الفاصل الزمني المحدد، يستدعي المؤقت الدالة على الفور مرةً أخرى.

مُعبراً عنه باعتباره سلسلة، يكون التنسيق TimeSpan هو hh:mm:ss عندما يكون hh أقل من 24. عندما يكون الرقمان الأولان 24 أو أكبر، يكون التنسيق dd:hh:mm. إليك بعض الأمثلة:

Example عند التشغيل
"01:00:00" كل ساعة
"00:01:00" كل دقيقة
"25:00:00:00" كل 25 يوم
"1.00:00:00" كل يوم

Scale-out

في حالة توسعة تطبيق الوظائف إلى مثيلات متعددة، فسيُشغَّل مثيلٌ واحدٌ فقط لدالة تشغيل مؤقت عبر جميع المثيلات. لن يتم تشغيله مرة أخرى إذا كان هناك استدعاء المعلقة لا تزال قيد التشغيل.

تطبيقات الوظائف التي تشارك Storage

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

إصدار الوظائف Setting
2.x (وإصدار أحدث) متغير البيئة AzureFunctionsWebHost__hostid
1.x id في host.json

يمكنك حذف قيمة التعريف أو تعيين تكوين تعريف كل تطبيق من تطبيقات الوظائف يدوياً إلى قيمة مختلفة.

يستخدم مشغل المؤقت قفل تخزين للتأكد من وجود مثيل مؤقت واحد فقط عندما ينتقل تطبيق الوظائف إلى مثيلات متعددة. إذا كان هناك تطبيقان من تطبيقات الوظائف يشتركان في نفس تكوين التعريف ويستخدم كلٌ منهما مشغل مؤقت، فسيجري تشغيل مؤقت واحد فقط.

سلوك إعادة المحاولة

على عكس مشغل قائمة الانتظار، لا يعيد مُشغِّل المؤقت المحاولة بعد فشل إحدى الدوال. عندما تفشل دالة، لا تُستدعى مرةً أخرى حتى المرة التالية في الجدول الزمني.

استدعاء مشغل مؤقت يدوياً

يوفر مشغل المؤقت لـ Azure Functions خطاف ويب HTTP يمكن استدعاؤه لتشغيل الدالة يدويًا. يمكن أن يكون هذا مفيدًا للغاية في السيناريوهات التالية.

  • اختبارات التكامل
  • تُبدَّل الفتحات باعتبارها جزءًا من اختبار التحقق من البناء أو نشاط الإحماء
  • التوزيع الأولي لدالةٍ ما لملء جدول ذاكرة التخزين المؤقت أو البحث في قاعدة بيانات على الفور

يُرجى الرجوع إلى تشغيل دالة لا يُشغِّلها HTTP يدوياً للحصول على تفاصيل عن كيفية استدعاء دالة يُشغِّلها المؤقت يدوياً.

Troubleshooting

للحصول على معلومات عما يجب فعله عندما لا يعمل مُشغِّل المؤقت كما هو متوقع، راجع التحقيق في المشكلات والإبلاغ عنها مع عدم تنشيط الدوال المُشغَّلة بالمؤقت.

Connections

تحتوي مشغلات المؤقت على تبعية ضمنية على تخزين الكائن الثنائي كبير الحجم، إلا عند تشغيلها محليا من خلال Azure Functions Core Tools. يستخدم النظام تخزين الكائنات الثنائية كبيرة الحجم للتنسيق عبر مثيلات متعددة عند توسيع نطاق التطبيق. يصل إلى تخزين blob باستخدام اتصال تخزين المضيف (AzureWebJobsStorage). إذا قمت بتكوين تخزين المضيف لاستخدام اتصال يستند إلى الهوية، يجب أن يكون للهوية دور Storage Blob Data Owner ، وهو المتطلب الافتراضي لتخزين المضيف.

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