إدارة الجداول الزمنية في Azure Automation

لجدولة دفتر تشغيل في Azure Automation للبدء في وقت محدد، يمكنك ربطه بجدول زمني واحد أو أكثر. يمكن تكوين الجدول الزمني ليتم تشغيله مرة واحدة أو على جدول متكرر كل ساعة أو جدول زمني يومي لدفاتر التشغيل في مدخل Azure. يمكنك أيضاً جدولته لأيام أسبوعية أو شهرية أو محددة أو يوم معين من الشهر. يمكن ربط دفتر التشغيل بجداول زمنية متعددة، ويمكن أن يكون للجدول الزمني عدة دفاتر تشغيل مرتبطة به.

إشعار

يدعم Azure Automation التوقيت الصيفي ويجدوله بشكل مناسب لعمليات التنفيذ التلقائي.

إشعار

لم يتم تمكين الجداول الزمنية حالياً لتكوينات Azure Automation DSC.

تستخدم أوامر PowerShell cmdlets للوصول إلى الجداول الزمنية

تنشئ cmdlets في الجدول التالي الجداول الزمنية Automation وتديرها باستخدام PowerShell. يتم شحنه كجزء من وحدات Az.

Cmdlets ‏‏الوصف
Get-AzAutomationSchedule استرداد جدول زمني.
Get-AzAutomationScheduledRunbook استرداد دفاتر التشغيل المجدولة.
New-AzAutomationSchedule إنشاء جدول زمني جديد.
Register-AzAutomationScheduledRunbook ربط دفتر تشغيل بجدول زمني.
Remove-AzAutomationSchedule إزالة جدول زمني.
Set-AzAutomationSchedule تعيين خصائص جدول زمني موجود.
Unregister-AzAutomationScheduledRunbook فصل دفتر تشغيل عن جدول زمني.

إنشاء جدول

يمكنك إنشاء جدول زمني جديد لدفاتر التشغيل الخاصة بك من مدخل Azure، باستخدام PowerShell، أو باستخدام قالب Azure Resource Manager (ARM). لتجنب التأثير على دفاتر التشغيل والعمليات التي تقوم بأتمتتها، يجب أولاً اختبار أية دفاتر تشغيل لها جداول زمنية مرتبطة بحساب Automation مخصص للاختبار. يتحقق الاختبار من أن دفاتر التشغيل المجدولة تستمر في العمل بشكل صحيح. إذا رأيت مشكلة، يمكنك استكشاف الأخطاء وإصلاحها وتطبيق أية تغييرات مطلوبة قبل ترحيل إصدار دفتر التشغيل المحدث إلى الإنتاج.

إشعار

لا يحصل حساب Automation تلقائياً على أي إصدارات جديدة من الوحدات إلا إذا قمت بتحديثها يدوياً عن طريق تحديد خيار Update Azure modules من Modules. يستخدم Azure Automation أحدث الوحدات في حساب Automation عند تشغيل مهمة مجدولة جديدة.

إنشاء جدول زمني جديد في مدخل Azure

  1. من حساب Automation، في الجزء الأيمن حدد Schedules ضمن Shared Resources.

  2. في الصفحة Schedules، حدد Add a schedule.

  3. في الصفحة New schedule، أدخل اسماً وأدخل وصفاً للجدول الزمني الجديد بشكل اختياري.

    إشعار

    لا تدعم الجداول الزمنية لـ Automation حالياً استخدام أحرف خاصة في اسم الجدول الزمني.

  4. حدد ما إذا كان الجدول الزمني سيتم تشغيله مرة واحدة أو وفقاً لجدول زمني متكرر عن طريق تحديد Once أو Recurring. إذا قمت بتحديد Recurring، حدد وقت بدء ثم حدد Create. إذا قمت بتحديد Recurring، حدد وقت بدء. لتكرار Recur every، حدد عدد المرات التي تريد تكرار دفتر التشغيل فيها. حدد حسب الساعة أو اليوم أو الأسبوع أو الشهر.

    • إذا قمت بتحديد Week، يتم عرض أيام الأسبوع لتختار من بينها. حدد عدد الأيام التي تريدها. سيتم تشغيل الجدول الزمني الأول في اليوم الأول المحدد بعد وقت البدء. على سبيل المثال، لاختيار جدول زمني لعطلة نهاية الأسبوع، حدد السبت والأحد.

    Setting weekend recurring schedule

    • إذا حددت Month، يتم منحك خيارات مختلفة. بالنسبة للخيار Monthly occurrences حدد Month days أو Week days. إذا قمت بتحديد Month days، يظهر تقويم بحيث يمكنك اختيار عدد الأيام الذي تريده. إذا اخترت تاريخاً مثل التاريخ الحادي والثلاثين الذي لا يأتي في الشهر الحالي، فلن يتم تشغيل الجدول الزمني. إذا كنت تريد تشغيل الجدول الزمني في اليوم الأخير، فحدد Yes ضمن Run on last day of month. إذا قمت بتحديد Week days، يظهر الخيار Recur every. اختر First أو Secondأو Thirdأو Fourthأو Last. وأخيراً، اختر يوماً لتكراره.

    Monthly schedule on first, fifteenth, and last day of the month

  5. عندما تنتهي من ذلك، حدد إنشاء.

إنشاء جدول زمني جديد باستخدام PowerShell

استخدم cmdlet New-AzAutomationSchedule لإنشاء جداول زمنية. يمكنك تحديد وقت البدء للجدول الزمني والتردد الذي يجب تشغيله وفقاً له. توضح الأمثلة التالية كيفية إنشاء العديد من سيناريوهات الجدولة المختلفة.

إشعار

لا تدعم الجداول الزمنية لـ Automation حالياً استخدام أحرف خاصة في اسم الجدول الزمني.

إنشاء جدول زمني لمرة واحدة

ينشئ المثال التالي جدول زمني لمرة واحدة.

$TimeZone = ([System.TimeZoneInfo]::Local).Id
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule01" -StartTime "23:00" -OneTime -ResourceGroupName "ResourceGroup01" -TimeZone $TimeZone

إنشاء جدول زمني متكرر

يوضح المثال التالي كيفية إنشاء جدول زمني متكرر يعمل كل يوم في الساعة 1:00 م لمدة عام.

$StartTime = Get-Date "13:00:00"
$EndTime = $StartTime.AddYears(1)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule02" -StartTime $StartTime -ExpiryTime $EndTime -DayInterval 1 -ResourceGroupName "ResourceGroup01"

إنشاء جدول زمني أسبوعي متكرر

يوضح المثال التالي كيفية إنشاء جدول زمني أسبوعي يعمل في أيام الأسبوع فقط.

$StartTime = (Get-Date "13:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekDays = @([System.DayOfWeek]::Monday..[System.DayOfWeek]::Friday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Schedule03" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekDays -ResourceGroupName "ResourceGroup01"

إنشاء جدول زمني أسبوعي متكرر لعطلات نهاية الأسبوع

يوضح المثال التالي كيفية إنشاء جدول زمني أسبوعي يعمل في عطلات نهاية الأسبوع فقط.

$StartTime = (Get-Date "18:00:00").AddDays(1)
[System.DayOfWeek[]]$WeekendDays = @([System.DayOfWeek]::Saturday,[System.DayOfWeek]::Sunday)
New-AzAutomationSchedule -AutomationAccountName "ContosoAutomation" -Name "Weekends 6PM" -StartTime $StartTime -WeekInterval 1 -DaysOfWeek $WeekendDays -ResourceGroupName "ResourceGroup01"

إنشاء جدول زمني متكرر للأيام الأولى، الخامسة عشرة، والأخيرة من الشهر

يوضح المثال التالي كيفية إنشاء جدول زمني متكرر يعمل في اليوم الأول والخامس عشر والأخير من الشهر.

$StartTime = (Get-Date "18:00:00").AddDays(1)
New-AzAutomationSchedule -AutomationAccountName "TestAzureAuto" -Name "1st, 15th and Last" -StartTime $StartTime -DaysOfMonth @("One", "Fifteenth", "Last") -ResourceGroupName "TestAzureAuto" -MonthInterval 1

إنشاء جدول زمني باستخدام قالب Resource Manager

في هذا المثال، نستخدم قالب Automation Resource Manager (ARM) الذي يقوم بإنشاء جدول زمني للمهام جديد. للحصول على معلومات عامة حول هذا القالب لإدارة جداول المهام الزمنية لـ Automation، راجع مرجع قالب Microsoft.Automation automationAccounts/jobSchedules.

نسخ ملف القالب هذا إلى محرر نص:

{
  "name": "5d5f3a05-111d-4892-8dcc-9064fa591b96",
  "type": "Microsoft.Automation/automationAccounts/jobSchedules",
  "apiVersion": "2015-10-31",
  "properties": {
    "schedule": {
      "name": "scheduleName"
    },
    "runbook": {
      "name": "runbookName"
    },
    "runOn": "hybridWorkerGroup",
    "parameters": {}
  }
}

تحرير قيم المعلمات التالية وحفظ القالب كملف JSON:

  • اسم كائن جدولة المهمة: يتم استخدام GUID (المعرف الفريد العمومي) كاسم لكائن جدولة المهمة.

    هام

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

    هناك خدمات عبر الإنترنت يمكنها إنشاء GUID جديد لك، مثل منشئ GUID المجاني عبر الإنترنت.

  • اسم الجدول الزمني: يمثل اسم جدول المهام الزمني لـ Automation الذي سيتم ربطه بدفتر التشغيل المحدد.

  • اسم دفتر التشغيل: يمثل اسم دفتر تشغيل Automation الذي يجب أن يقترن به جدول المهمة الزمني.

بمجرد حفظ الملف، يمكنك إنشاء جدول مهام زمني لدفتر التشغيل باستخدام الأمر PowerShell التالي. يستخدم الأمر TemplateFile المعلمة لتحديد المسار واسم الملف للقالب.

New-AzResourceGroupDeployment -ResourceGroupName "ContosoEngineering" -TemplateFile "<path>\RunbookJobSchedule.json"

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

  1. في مدخل Azure، من حساب automation الخاص بك حدد Runbooks، ضمن Process Automation.
  2. حدد اسم دفتر التشغيل لجدولته.
  3. إذا لم يكن دفتر التشغيل مرتبطاً حالياً بجدول زمني، فقد عرض عليك خيار إنشاء جدول زمني جديد أو الربط بجدول زمني موجود.
  4. إذا كان دفتر التشغيل يحتوي على معلمات، يمكنك تحديد الخيار Modify run settings(الافتراضي:Azure) ويظهر جزء Parameters. يمكنك إدخال معلومات المعلمة هنا.

استخدم cmdlet Register-AzAutomationScheduledRunbook لربط جدول زمني. يمكنك تحديد قيم معلمات دفتر التشغيل باستخدام معلمة Parameters. لمزيد من المعلومات حول كيفية تحديد قيم المعلمات، راجع بدء دفتر تشغيل في Azure Automation. يوضح المثال التالي كيفية ربط جدول زمني إلى دفتر تشغيل باستخدام Azure Resource Manager cmdlet مع المعلمات.

$automationAccountName = "MyAutomationAccount"
$runbookName = "Test-Runbook"
$scheduleName = "Sample-DailySchedule"
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Register-AzAutomationScheduledRunbook -AutomationAccountName $automationAccountName `
-Name $runbookName -ScheduleName $scheduleName -Parameters $params `
-ResourceGroupName "ResourceGroup01"

جدولة دفاتر التشغيل لتشغيلها بشكل أكثر تكراراً

الفاصل الزمني الأكثر تكراراً الذي يمكن تكوين جدول زمني له في Azure Automation هو ساعة واحدة. إذا كنت تحتاج جداول زمنية للتشغيل بشكل متكرر أكثر من ذلك، فهناك خياران:

  • إنشاء webhook لدفتر التشغيل واستخدم Azure Logic Apps للاتصال بالإخطار على الويب. توفر Azure Logic Apps مزيداً من التفاصيل الدقيقة لتحديد جدول زمني.

  • إنشاء أربعة جداول زمنية تبدأ جميعها في غضون 15 دقيقة من بعضها البعض وشغّلها مرة واحدة كل ساعة. يسمح هذا السيناريو بتشغيل دفتر التشغيل كل 15 دقيقة مع جداول زمنية مختلفة.

تعطيل جدول زمني

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

تعطيل جدول زمني من مدخل Azure

  1. في حساب Automation، في الجزء الأيسر حدد Schedules ضمن Shared Resources.
  2. حدد اسم جدول زمني لفتح جزء التفاصيل.
  3. تغيير Enabled إلى No.

إشعار

إذا كنت تريد تعطيل جدول زمني له وقت بدء في الماضي، يجب تغيير تاريخ البدء إلى وقت في المستقبل قبل حفظه.

تعطيل جدول زمني باستخدام PowerShell

استخدم cmdlet Set-AzAutomationSchedule لتغيير خصائص جدول زمني موجود. لتعطيل الجدول الزمني، حدد False IsEnabled في المعلمة.

يوضح المثال التالي كيفية تعطيل جدول زمني لدفتر تشغيل باستخدام Azure Resource Manager cmdlet.

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Set-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -IsEnabled $false -ResourceGroupName "ResourceGroup01"

إزالة جدول زمني

عندما تكون مستعداً لإزالة جداولك الزمنية، يمكنك إما استخدام مدخل Azure أو PowerShell. تذكر أنه يمكنك إزالة جدول زمني تم تعطيله كما هو موضح في القسم السابق فقط.

إزالة جدول زمني باستخدام مدخل Azure

  1. في حساب Automation، في الجزء الأيسر حدد Schedules ضمن Shared Resources.
  2. حدد اسم جدول زمني لفتح جزء التفاصيل.
  3. انقر على حذف.

إزالة جدول زمني باستخدام PowerShell

يمكنك استخدام Remove-AzAutomationSchedule cmdlet كما هو موضح أدناه لحذف جدول زمني موجود.

$automationAccountName = "MyAutomationAccount"
$scheduleName = "Sample-MonthlyDaysOfMonthSchedule"
Remove-AzAutomationSchedule -AutomationAccountName $automationAccountName `
-Name $scheduleName -ResourceGroupName "ResourceGroup01"

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