البرنامج التعليمي: قم بتشغيل مهمة ACR وفقاً لجدول زمني محدد
يوضح لك هذا البرنامج التعليمي كيفية تشغيل ACR Tas وفقاً لجدول زمني. جدولة مهمة عن طريق إعداد واحد أو أكثر من مشغلات المؤقت. يمكن استخدام مشغلات المؤقت بمفردها، أو بالاشتراك مع مشغلات المهام الأخرى.
في هذا البرنامج التعليمي، تعرف على جدولة المهام و:
- قم بإنشاء مهمة باستخدام مشغل مؤقت
- إدارة مشغلات الموقت
جدولة مهمة مفيدة لسيناريوهات مثل ما يلي:
- قم بتشغيل حمل حاوية لعمليات الصيانة المجدولة. على سبيل المثال، قم بتشغيل تطبيق حاوية لإزالة الصور غير الضرورية من السجل الخاص بك.
- قم بإجراء مجموعة من الاختبارات على صورة إنتاج أثناء يوم العمل كجزء من مراقبة الموقع المباشر.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
حول جدولة مهمة
المشغل باستخدام تعبير cron - يستخدم مشغل المؤقت لمهمة تعبير cron. التعبير عبارة عن سلسلة بها خمسة حقول تحدد الدقيقة والساعة واليوم والشهر ويوم الأسبوع لتشغيل المهمة. ترددات تصل إلى مرة واحدة في الدقيقة مدعومة.
على سبيل المثال، يؤدي التعبير
"0 12 * * Mon-Fri"
إلى تشغيل مهمة عند الظهر بالتوقيت العالمي المتفق عليه من كل يوم من أيام الأسبوع. راجع التفاصيل لاحقاً في هذه المقالة.مشغلات متعددة بالمؤقت - يُسمح بإضافة عدة مؤقتات إلى مهمة ما، طالما تختلف الجداول الزمنية.
- حدد عدة مشغلات للمؤقت عند إنشاء المهمة، أو قم بإضافتها لاحقاً.
- اختياريّاً، قم بتسمية المشغلات لإدارة أسهل، أو ستوفر مهام ACR أسماء المشغلات الافتراضية.
- إذا تداخلت جداول المؤقت في وقت واحد، فإن ACR Tasks تبدأ المهمة في الوقت المجدول لكل مؤقت.
مشغلات مهمة أخرى - في مهمة تم تشغيلها بمؤقت، يمكنك أيضاً تمكين المشغلات استناداً إلى التزام شفرة المصدر أو تحديثات الصورة الأساسية. مثل مهام ACR الأخرى، يمكنك أيضاً manually run مهمة مجدولة يدوياً.
قم بإنشاء مهمة باستخدام مشغل مؤقت
أمر المهمة
أولاً، قم بتعبئة متغير بيئة shell التالي بقيمة مناسبة لبيئتك. هذه الخطوة غير مطلوبة بالضرورة، ولكن يجعل تنفيذ أوامر Azure CLI متعددة الخطوط في هذا البرنامج التعليمي أسهل قليلاً. إذا لم تقم بتعبئة متغير البيئة، فيجب عليك استبدال كل قيمة يدويّاً أينما ظهرت في أوامر الأمثلة.
ACR_NAME=<registry-name> # The name of your Azure container registry
عند إنشاء مهمة باستخدام الأمر إaz acr task create، يمكنك اختيارياً إضافة مشغل مؤقت. أضف المعلمة --schedule
وقم بتمرير تعبير cron للمؤقت.
كمثال بسيط، تبدأ المهمة التالية بتشغيل صورة hello-world
من Microsoft Container Registry يوميّاً الساعة 21:00 بالتوقيت العالمي المتفق عليه. يتم تشغيل المهمة دون سياق التعليمات البرمجية المصدر.
az acr task create \
--name timertask \
--registry $ACR_NAME \
--cmd mcr.microsoft.com/hello-world \
--schedule "0 21 * * *" \
--context /dev/null
قم بتشغيل الأمر az acr task show للتأكد من تكوين مشغل المؤقت. بشكل افتراضي، يتم أيضاً تمكين مشغل تحديث الصورة الأساسية.
az acr task show --name timertask --registry $ACR_NAME --output table
NAME PLATFORM STATUS SOURCE REPOSITORY TRIGGERS
-------- ---------- -------- ------------------- -----------------
timertask linux Enabled BASE_IMAGE, TIMER
أيضا، مثال بسيط للمهمة التي تعمل مع سياق التعليمات البرمجية المصدر. تشغل المهمة التالية تشغيل hello-world
الصورة من Microsoft Container Registry كل يوم في الساعة 21:00 بالتوقيت العالمي المتفق عليه.
اتبع المتطلبات الأساسية لإنشاء سياق التعليمات البرمجية المصدر ثم إنشاء مهمة مجدولة بالسياق.
az acr task create \
--name timertask \
--registry $ACR_NAME \
--context https://github.com/$GIT_USER/acr-build-helloworld-node.git#master \
--file Dockerfile \
--image timertask:{{.Run.ID}} \
--git-access-token $GIT_PAT \
--schedule "0 21 * * *"
قم بتشغيل الأمر az acr task show للتأكد من تكوين مشغل المؤقت. بشكل افتراضي، يتم أيضاً تمكين مشغل تحديث الصورة الأساسية.
az acr task show --name timertask --registry $ACR_NAME --output table
قم بتشغيل الأمر az acr task run لتشغيل المهمة يدويا.
az acr task run --name timertask --registry $ACR_NAME
ابدأ المهمة
قم بتشغيل المهمة يدوياً باستخدام تaz acr task run للتأكد من إعدادها بشكل صحيح:
az acr task run --name timertask --registry $ACR_NAME
إذا تم تشغيل الحاوية بنجاح، فسيكون الإخراج مشابهاً لما يلي. يتم تكثيف الإخراج لإظهار الخطوات الرئيسية
Queued a run with ID: cf2a
Waiting for an agent...
2020/11/20 21:03:36 Using acb_vol_2ca23c46-a9ac-4224-b0c6-9fde44eb42d2 as the home volume
2020/11/20 21:03:36 Creating Docker network: acb_default_network, driver: 'bridge'
[...]
2020/11/20 21:03:38 Launching container with name: acb_step_0
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
بعد الوقت المجدول، قم بتشغيل الأمر az acr task list-run للتحقق من أن المؤقت قام بتشغيل المهمة كما هو متوقع:
az acr task list-runs --name timertask --registry $ACR_NAME --output table
عندما ينجح الموقت، يكون الإخراج مشابهاً لما يلي:
RUN ID TASK PLATFORM STATUS TRIGGER STARTED DURATION
-------- --------- ---------- --------- --------- -------------------- ----------
ca15 timertask linux Succeeded Timer 2020-11-20T21:00:23Z 00:00:06
ca14 timertask linux Succeeded Manual 2020-11-20T20:53:35Z 00:00:06
إدارة مشغلات الموقت
استخدم أوامر az acr task timer لإدارة مشغلات المؤقت لمهمة ACR.
إضافة أو تحديث مشغل عداد الوقت
بعد إنشاء مهمة، أضف مؤقتاً مشغل مؤقت باستخدام الأمر az acr task timer add. يضيف المثال التالي اسم مشغل المؤقت timer2 to timertask الذي تم إنشاؤه مسبقاً. يقوم هذا المؤقت بتشغيل المهمة كل يوم في الساعة 10:30 بالتوقيت العالمي المتفق عليه.
az acr task timer add \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2 \
--schedule "30 10 * * *"
قم بتحديث الجدول الزمني لمشغل موجود، أو غيّر حالته، باستخدام الأمر az acr task timer update. على سبيل المثال، قم بتحديث المشغل المسمى timer2 لتشغيل المهمة في الساعة 11:30 بالتوقيت العالمي المتفق عليه:
az acr task timer update \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2 \
--schedule "30 11 * * *"
قائمة مشغلات الموقت
يعرض الأمر az acr task timer list مشغلات المؤقت التي تم إعدادها لمهمة:
az acr task timer list --name timertask --registry $ACR_NAME
مثال على الإخراج:
[
{
"name": "timer2",
"schedule": "30 11 * * *",
"status": "Enabled"
},
{
"name": "t1",
"schedule": "0 21 * * *",
"status": "Enabled"
}
]
إزالة الزناد المؤقت
استخدم الأمر az acr task timer remove لإزالة مشغل مؤقت من مهمة. يزيل المثال التالي مشغل timer2 trigger from timertask:
az acr task timer remove \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2
تعابير كرون
يستخدم ACR Tasks مكتبة NCronTab لتفسير تعبيرات cron. تحتوي التعبيرات المدعومة في مهام ACR على خمسة حقول مطلوبة مفصولة بمسافة بيضاء:
{minute} {hour} {day} {month} {day-of-week}
المنطقة الزمنية المستخدمة مع تعبيرات cron هي التوقيت العالمي (UTC). الساعات بتنسيق 24 ساعة.
إشعار
لا تدعم مهام ACR الحقل {second}
or {year}
في تعبيرات cron. إذا قمت بنسخ تعبير cron مستخدم في نظام آخر، فتأكد من إزالة هذه الحقول، إذا تم استخدامها.
يمكن أن يحتوي كل حقل على أحد أنواع القيم التالية:
نوع | مثال | وقت التشغيل |
---|---|---|
قيمة محددة | "5 * * * *" |
كل ساعة عند 5 دقائق بعد الساعة |
كل القيم (* ) |
"* 5 * * *" |
كل دقيقة من الساعة بدءاً من الساعة 5:00 بالتوقيت العالمي المتفق عليه (60 مرة في اليوم) |
نطاق (عامل تشغيل- ) |
"0 1-3 * * *" |
3 مرات في اليوم، الساعة 1:00 و2:00 و3:00 بالتوقيت العالمي المتفق عليه |
مجموعة من القيم (عامل تشغيل, ) |
"20,30,40 * * * *" |
3 مرات في الساعة، في 20 دقيقة و30 دقيقة و40 دقيقة بعد الساعة |
قيمة الفاصل الزمني (عامل التشغيل/ ) |
"*/10 * * * *" |
6 مرات في الساعة، في 10 دقائق، و20 دقيقة، وهكذا، بعد الساعة |
لتحديد الأشهر أو الأيام، يمكنك استخدام القيم الرقمية أو الأسماء أو اختصارات الأسماء:
- بالنسبة للأيام، تتراوح القيم الرقمية من 0 إلى 6 حيث يبدأ 0 بيوم الأحد.
- الأسماء باللغة الإنجليزية. على سبيل المثال:
Monday
،January
. - الأسماء غير حساسة لحالة الأحرف.
- يمكن اختصار الأسماء. ثلاثة أحرف هي طول الاختصار الموصى به. على سبيل المثال:
Mon
،Jan
.
أمثلة كرون
مثال | وقت التشغيل |
---|---|
"*/5 * * * *" |
مرة كل خمس دقائق |
"0 * * * *" |
مرة واحدة في بداية كل ساعة |
"0 */2 * * *" |
مرة كل ساعتين |
"0 9-17 * * *" |
مرة كل ساعة من 9:00 حتي 17:00 بالتوقيت العالمي المتفق عليه |
"30 9 * * *" |
الساعة 9:30 بالتوقيت العالمي المتفق عليه كل يوم |
"30 9 * * 1-5" |
الساعة 9:30 بالتوقيت العالمي المتفق عليه كل يوم من أيام الأسبوع |
"30 9 * Jan Mon" |
الساعة 9:30 بالتوقيت العالمي المتفق عليه كل يوم اثنين من شهر يناير |
تنظيف الموارد
لإزالة جميع الموارد التي قمت بإنشائها في سلسلة البرامج التعليمية هذه، بما في ذلك سجل الحاوية أو السجلات، ومثال الحاوية، وخزينة المفاتيح، ومدير الخدمة، قم بإصدار الأوامر التالية:
az group delete --resource-group $RES_GROUP
az ad sp delete --id http://$ACR_NAME-pull
الخطوات التالية
في هذا البرنامج التعليمي، تعلمت كيفية إنشاء مهام Azure Container Registry التي يتم تشغيلها تلقائيّاً بواسطة جهاز ضبط الوقت.
للحصول على مثال لاستخدام مهمة مجدولة لتنظيف المستودعات في سجل، راجع مسح الصور تلقائيّاً من سجل حاوية Azure.
للحصول على أمثلة للمهام التي تم تشغيلها بواسطة تعليمات التعليمات البرمجية المصدر أو تحديثات الصورة الأساسية، راجع المقالات الأخرى في سلسلة البرامج التعليمية لمهام ACR.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ