البرنامج التعليمي: إنشاء دفتر تشغيل Python 3.8

يرشدك هذا البرنامج التعليمي خلال إنشاء دفتر تشغيل Python 3.8 في Azure Automation. يتم تجميع دفاتر تشغيل Python ضمن Python 2.7 و3.8 يمكنك تحرير التعليمات البرمجية لدفتر التشغيل مباشرة باستخدام محرر النص في مدخل Microsoft Azure.

  • إنشاء كتاب تشغيل Python بسيط
  • اختبار ونشر دفتر التشغيل
  • تشغيل وتتبع حالة مهمة دفتر التشغيل
  • تحديث دفتر التشغيل لبدء تشغيل جهاز Azure افتراضي باستخدام معلمات دفتر التشغيل

المتطلبات الأساسية

لإكمال هذا البرنامج التعليمي، تحتاج إلى:

  • اشتراك Azure. في حالة عدم امتلاك اشتراك بعد، يمكنك تفعيل مزايا مشترك MSDN أو الاشتراك في حساب مجاني.

  • حساب التنفيذ التلقائي للاحتفاظ بدفتر التشغيل والمصادقة على موارد Azure باستخدام الهويات المدارة. يتم إنشاء هوية مدارة تلقائيا لك عند إنشاء حساب التنفيذ التلقائي.

  • جهاز Azure افتراضي. خلال هذا البرنامج التعليمي، ستبدأ وتوقف هذا الجهاز، لذلك لا ينبغي أن يكون جهازا ظاهريا للإنتاج.

إنشاء قاعدة جديدة

ابدأ بإنشاء دفتر تشغيل بسيط يُخرج النص Hello World.

  1. في مدخل Azure، قم بفتح حساب «التشغيل التلقائي» الخاص بك.

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

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

  2. حدد "Runbooks" في "Process Automation" لفتح قائمة دفاتر التشغيل.

  3. حدد Create a runbook لإنشاء دفتر تشغيل جديد.

  4. حدد هذا الاسم MyFirstRunbook-Workflow لدفتر التشغيل.

  5. حدد Python لنوع دفتر التشغيل.

  6. حدد Python 3.8 لإصدار وقت التشغيل.

  7. انقر فوق "Create" لإنشاء دفتر التشغيل وفتح محرر النص.

إضافة التعليمات البرمجية إلى دفتر التشغيل

الآن يمكنك إضافة أمر بسيط لطباعة النص Hello World.

print("Hello World!")

حدد حفظ لحفظ دفتر التشغيل.

اختبار دفتر التشغيل

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

  1. حدد جزء الاختبار لفتح جزء الاختبار.

  2. انقر فوق "Start" لبدء الاختبار. يجب أن يكون هذا الخيار هو الخيار الوحيد الممكن.

  3. يتم إنشاء مهمة دفتر التشغيل وعرض حالتها. تبدأ حالة المهمة في قائمة الانتظار، مما يشير إلى أنها تنتظر توفر عامل دفتر التشغيل في السحابة. يتغير إلى البدء عندما يطالب عامل بالوظيفة، ثم تشغيل عند بدء تشغيل دفتر التشغيل فعليا.

  4. عند اكتمال مهمة دفتر التشغيل، يعرض جزء الاختبار الإخراج الخاص به. في هذه الحالة، ترى Hello World.

  5. أغلق جزء الاختبار للعودة إلى اللوحة القماشية.

نشر دفتر التشغيل وبدء تشغيله

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

  1. حدد "Publish" لنشر دفتر التشغيل ثم "Yes" عند مطالبتك بالنشر.

  2. إذا أغلقت جزء MyFirstRunbook_python، فستعود إلى صفحة Runbooks حيث يجب أن ترى حالة التأليف للنشر.

  3. حدد اسم MyFirstRunbook-Python في القائمة، وستعود إلى جزء MyFirstRunbook-Python.

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

  4. حدد بدء ثم حدد موافق عند فتح جزء "بدء تشغيل دفتر التشغيل".

  5. يتم فتح جزء مهمة لمهمة دفتر التشغيل التي تم إنشاؤها. يمكنك إغلاق هذا الجزء، ولكن دعونا نبقيه مفتوحا، بحيث يمكنك مشاهدة تقدم المهمة.

  6. يتم عرض حالة المهمة في حقل الحالة ضمن Essentials. تتطابق القيم هنا مع قيم الحالة عند اختبار دفتر التشغيل.

  7. بمجرد أن تظهر حالة دفتر التشغيل Completed، حدد علامة التبويب Output . في علامة التبويب Output ، يمكنك مشاهدة Hello World.

  8. أغلق علامة التبويب Output.

  9. حدد علامة التبويب All Logs لعرض تدفقات مهمة دفتر التشغيل. يجب أن تشاهد Hello World فقط في دفق الإخراج. ومع ذلك، يمكن أن تعرض علامة التبويب هذه تدفقات أخرى لمهمة دفتر التشغيل، مثل الإسهاب والخطأ، إذا كان دفتر التشغيل يكتب لها.

  10. أغلق جزء المهام للعودة إلى جزء MyFirstRunbook-Python.

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

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

إضافة المصادقة لإدارة موارد Azure

لقد اختبرت ونشرت دفتر التشغيل الخاص بك، ولكنه حتى الآن لا يقدم أي شيء مفيد. وأنت ترغب في أن يقوم بإدارة موارد Azure. لإدارة الموارد، يجب على البرنامج النصي المصادقة.

الطريقة الموصى بها للمصادقة هي الهوية المدارة. عند إنشاء حساب Azure Automation، يتم إنشاء هوية مدارة تلقائيا لك.

لاستخدام هذه العينات، أضف الحزم التالية في مورد حزم Python لحساب التنفيذ التلقائي. يمكنك إضافة ملفات WHL لهذه الحزم باستخدام هذه الارتباطات.

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

إشعار

تم اختبار التعليمات البرمجية التالية مع الإصدار 3.8 من وقت التشغيل.

الهوية المُدارة

لاستخدام الهوية المدارة، تأكد من تمكينها:

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

مع تكوين دور إدارة الهوية، يمكنك البدء في إضافة التعليمات البرمجية.

  1. افتح المحرر النصي عن طريق تحديد Edit في جزء MyFirstRunbook-Python .

  2. إضافة التعليمات البرمجية التالية للمصادقة على Azure:

#!/usr/bin/env python3
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient

SUBSCRIPTION_ID="YOUR_SUBSCRIPTION_ID"

azure_credential = DefaultAzureCredential()

import os
import requests
# printing environment variables
endpoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER' : identityHeader,
'Metadata' : True
}
response = requests.get(endpoint, headers)
print(response.text)

إضافة تعليمات برمجية لإنشاء عميل Python Compute وبدء تشغيل الجهاز الافتراضي

للعمل مع VMs Azure إنشاء مثيل عميل حساب Azure لـ Python.

# Initialize client with the credential and subscription.
compute_client = ComputeManagementClient(
    azure_credential,
    SUBSCRIPTION_ID
)

print('\nStart VM')
async_vm_start = compute_client.virtual_machines.begin_start(
    "MyResourceGroup", "TestVM")
async_vm_start.wait()
print('\nFinished start.')

حيث MyResourceGroup هو اسم مجموعة الموارد التي تحتوي على VM، وهو اسم VM الذي تريد بدء TestVM تشغيله.

اختبار وتشغيل دفتر التشغيل مرة أخرى للتأكد من أنه يبدأ VM.

استخدام معلمات إدخال

يستخدم دفتر التشغيل حالياً قيم مرمزة ثابتة لأسماء مجموعة الموارد وVM. الآن دعونا نضيف التعليمات البرمجية التي تحصل على هذه القيم من معلمات الإدخال.

يمكنك استخدام sys.argv المتغير للحصول على قيم المعلمة. إضافة التعليمات البرمجية التالية إلى دفتر التشغيل مباشرة بعد import عبارات أخرى:

import sys

resource_group_name = str(sys.argv[1])
vm_name = str(sys.argv[2])

تستورد هذه التعليمة البرمجية الوحدة النمطية sys ، وتنشئ متغيرين للاحتفاظ بأسماء مجموعة الموارد والأجهزة الظاهرية. لاحظ أن عنصر قائمة الوسيطات، sys.argv[0]، هو اسم البرنامج النصي، ولا يتم إدخاله من قبل المستخدم.

الآن يمكنك تعديل السطرين الأخيرين من دفتر التشغيل لاستخدام قيم معلمات الإدخال بدلا من استخدام قيم المرمزة الثابت:

async_vm_start = compute_client.virtual_machines.begin_start(
    resource_group_name, vm_name)
async_vm_start.wait()

عند بدء تشغيل دفتر تشغيل بيثون، إما من جزء الاختبار أو كدفتر تشغيل منشور، يمكنك إدخال قيم المعلمات في صفحة دفتر التشغيل ابدأ ضمن المعلمات.

بعد بدء إدخال قيمة في المربع الأول، تظهر ثانية، وهكذا، بحيث يمكنك إدخال قيم المعلمات بقدر ما يلزم.

تتوفر القيم إلى البرنامج النصي في sys.argv الصفيف كما في التعليمات البرمجية التي قمت بإضافتها للتو.

أدخل اسم مجموعة الموارد كقيمة للمعلمة الأولى واسم VM لبدء كقيمة المعلمة الثانية.

Enter parameter values

انقر فوق OK لبدء تشغيل دفتر التشغيل. تشغيل دفتر التشغيل وبدء تشغيل الجهاز الافتراضي الذي حددته.

معالجة الأخطاء في Python

يمكنك أيضا استخدام الاصطلاحات التالية لاسترداد دفقات مختلفة من كتب التشغيل Python الخاصة بك، بما في ذلك WARNING وERROR وDEBUG streams.

print("Hello World output")
print("ERROR: - Hello world error")
print("WARNING: - Hello world warning")
print("DEBUG: - Hello world debug")
print("VERBOSE: - Hello world verbose")

يوضح المثال التالي هذه الاصطلاحات المستخدمة في try...exceptمجموعة.

try:
    raise Exception('one', 'two')
except Exception as detail:
    print ('ERROR: Handling run-time error:', detail)

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