إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
استخدم Durable Functions، وهي ميزة في ميزات Azure Functions، لكتابة الدوال ذات الحالة في بيئة بدون خادم. تقوم بتثبيت Durable Functions عن طريق تثبيت Azure Functions الإضافية في Visual Studio Code. يدير الملحق الحالة ونقاط التحقق وإعادة التشغيل في التطبيق الخاص بك.
في هذا البدء السريع، تستخدم إضافة Durable Functions في Visual Studio Code لإنشاء واختبار تطبيق Durable Functions "hello world" محليا في Azure Functions. يقوم تطبيق Durable Functions بتنسيق وربط المكالمات معا مع وظائف أخرى. ثم تنشر كود الدالة في Azure. الأدوات التي تستخدمها متاحة عبر إضافة Visual Studio Code.
إشعار
يستخدم هذا البدء السريع نموذج البرمجة المعتمد على الديكور v2 ل Python. يمنح هذا النموذج بنية ملف أبسط وهو أكثر تركزا على التعليمات البرمجية مقارنة ب v1.
المتطلبات الأساسية
للتشغيل السريع، تحتاج إلى:
Visual Studio Code مثبت.
تم تركيب الامتداد Visual Studio Code Azure Functions.
تم تثبيت أحدث إصدار من Azure Functions Core Tools.
أداة اختبار HTTP تحافظ على أمان بياناتك. لمزيد من المعلومات، راجع أدوات اختبار HTTP.
An Azure subscription for deploying app to Azure.
Python الإصدار 3.7، 3.8، 3.9، أو 3.10 مثبت.
إذا لم يكن لديك حساب Azure، أنشئ حسابا مجاني قبل أن تبدأ.
إنشاء مشروعك المحلي
في هذا القسم، تستخدم Visual Studio Code لإنشاء مشروع Azure Functions محلي.
في Visual Studio Code، اختر F1 (أو اختر Ctrl/Cmd+Shift+P) لفتح لوحة الأوامر. عند التوجيه (
>)، أدخل ثم اختر Azure Functions: إنشاء مشروع جديد.
حدد استعراض. في مربع الحوار تحديد مجلد ، انتقل إلى مجلد لاستخدامه لمشروعك، ثم اختر تحديد.
في المطالبات، قم بتوفير المعلومات التالية:
المطالبة الإجراء الوصف تحديد لغة لمشروع تطبيق الوظائف اختر Python. ينشئ مشروع محلي لوظائف Python. تحديد إصدار اختر Azure Functions v4. ترى هذا الخيار فقط عندما لا تكون Core Tools مثبتة بالفعل. في هذه الحالة، يتم تثبيت Core Tools في المرة الأولى التي تقوم فيها بتشغيل التطبيق. Python النسخة اختر Python 3.7، Python 3.8، Python 3.9، أو Python 3.10. Visual Studio Code ينشئ بيئة افتراضية باستخدام النسخة التي تختارها. تحديد قالب للدالة الأولى لمشروعك حدد تخطي في الوقت الحالي. تحديد الطريقة التي تريد فتح مشروعك بها حدد فتح في النافذة الحالية. يفتح Visual Studio Code في المجلد الذي اخترته.
يقوم Visual Studio Code بتثبيت Azure Functions Core Tools إذا كان مطلوبا لإنشاء مشروع. كما أنها تُشنأ مشروعاً لتطبيق دالة في مجلد. يحتوي هذا المشروع على ملفي التكوين host.json وlocal.settings.json.
كما يُنشأ ملف requirements.txt في مجلد الجذر. يحدد حزم Python المطلوبة لتشغيل تطبيق الوظائف الخاص بك.
تثبيت نموذج azure-functions-durable من PyPI
عند إنشاء المشروع، يقوم امتداد Azure Functions Visual Studio Code تلقائيا بإنشاء بيئة افتراضية مع النسخة Python التي اخترتها. بعد ذلك تحتاج إلى تفعيل البيئة الافتراضية في جهاز طرفي وتثبيت بعض الاعتماديات المطلوبة في Azure Functions و Durable Functions.
فتح الملف requirements.txt في المحرر وتغيير محتواه إلى ما يلي:
azure-functions azure-functions-durableفي المجلد الحالي، افتح الوحدة الطرفية المتكاملة للمحرر (Ctrl+Shift+').
في الوحدة الطرفية المتكاملة، قم بتنشيط البيئة الظاهرية في المجلد الحالي، اعتمادا على نظام التشغيل الخاص بك.
ثم، في المحطة الطرفية المتكاملة حيث يتم تنشيط البيئة الظاهرية، استخدم pip لتثبيت الحزم التي حددتها.
python -m pip install -r requirements.txt
إشعار
يجب تثبيت azure-functions-durable v1.2.4 أو أعلى.
إنشاء دوالك الخاصة
تطبيق Durable Functions الأساسي له ثلاث وظائف:
- دالة المنسق: سير عمل ينسق دالات أخرى.
- دالة النشاط: دالة يتم استدعاؤها بواسطة دالة المنسق، وتؤدي العمل، وترجع قيمة اختياريا.
- وظيفة العميل: وظيفة منتظمة في Azure تبدأ وظيفة المنسق. يستخدم هذا المثال دالة مشغلة من HTTP.
التعليمة البرمجية العينة
لإنشاء تطبيق Durable Functions أساسي باستخدام هذه الأنواع الثلاثة من الوظائف، استبدل محتوى function_app.py بالكود Python التالي:
import azure.functions as func
import azure.durable_functions as df
myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)
# An HTTP-triggered function with a Durable Functions client binding
@myApp.route(route="orchestrators/{functionName}")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
function_name = req.route_params.get('functionName')
instance_id = await client.start_new(function_name)
response = client.create_check_status_response(req, instance_id)
return response
# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
result1 = yield context.call_activity("hello", "Seattle")
result2 = yield context.call_activity("hello", "Tokyo")
result3 = yield context.call_activity("hello", "London")
return [result1, result2, result3]
# Activity
@myApp.activity_trigger(input_name="city")
def hello(city: str):
return f"Hello {city}"
راجع الجدول التالي للحصول على شرح لكل دالة والغرض منها في العينة:
| الطريقة | الوصف |
|---|---|
hello_orchestrator |
دالة المنسق، التي تصف سير العمل. في هذه الحالة، يبدأ التنسيق، ويستدعي ثلاث دالات في تسلسل، ثم يرجع النتائج مرتبة من جميع الدالات الثلاث في قائمة. |
hello |
دالة النشاط، التي تنفذ العمل المنسق. ترجع الدالة تحية بسيطة إلى المدينة التي تم تمريرها كوسيطة. |
http_start |
دالة مشغلة من HTTP تبدأ مثيل التنسيق وتعيد استجابةcheck status. |
إشعار
كما يدعم Durable Functions نموذج البرمجة Python v2 blueprints. لاستخدام المخططات، سجل وظائف المخطط باستخدام azure-functions-durableBlueprintclass. يمكنك تسجيل المخطط الناتج كالمعتاد. يمكنك استخدام sample كمثال.
تكوين محاكي التخزين
يمكنك استخدام Azurite، وهو محاكي ل Azure Storage، لاختبار الوظيفة محليا. في local.settings.json، قم بتعيين القيمة إلى AzureWebJobsStorage مثل UseDevelopmentStorage=true في هذا المثال:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "python"
}
}
لتثبيت وتشغيل إضافة Azurite في Visual Studio Code، في لوحة الأوامر، أدخل Azurite: Start واختر Enter.
يمكنك استخدام خيارات تخزين أخرى لتطبيق Durable Functions الخاص بك. لمزيد من المعلومات حول خيارات التخزين وفوائده، راجع Durable Functions services storages.
اختبِر الدالة محليًا
يمنحك Azure Functions Core Tools القدرة على تشغيل مشروع Azure Functions على جهاز التطوير المحلي الخاص بك. إذا لم تكن مثبتة، يطلب منك تثبيت هذه الأدوات في المرة الأولى التي تبدأ فيها دالة في Visual Studio Code.
لاختبار الدالة الخاصة بك، قم بتعيين نقطة توقف في التعليمات البرمجية لدالة
helloالنشاط. حدد F5 أو حدد Debug: Start Debugging في لوحة الأوامر لبدء مشروع تطبيق الوظائف. يظهر الإخراج من Core Tools في لوحة المحطة الطرفية.إشعار
لمزيد من المعلومات حول التصحيح، راجع Durable Functions diagnostics.
في لوحة المحطة الطرفية، انسخ نقطة نهاية عنوان URL للدالة التي تم تشغيلها من قبل HTTP.
استخدم المستعرض أو أداة اختبار HTTP لإرسال طلب HTTP POST إلى نقطة نهاية URL.
استبدال الجزء الأخير باسم دالة المُنسق (
hello_orchestrator). يجب أن يماثل عنوان URLhttp://localhost:7071/api/orchestrators/hello_orchestrator.الاستجابة هي النتيجة الأولية لدالة HTTP. يتيح لك معرفة أن التزامن الدائم قد بدأ بنجاح. لا يعرض بعد النتيجة النهائية للتنسيق. تتضمن الاستجابة بعض عناوين URL المفيدة. في الوقت الحالي، استعلم عن حالة التنسيق.
انسخ قيمة URL ل
statusQueryGetUri، والصقها في شريط عناوين المستعرض، وقم بتنفيذ الطلب. يمكنك أيضا الاستمرار في استخدام أداة اختبار HTTP لإصدار طلب GET.يستعلم الطلب عن مثيل التنسيق للحالة. يجب أن ترى أن المثيل قد انتهى وأنه يتضمن مخرجات أو نتائج الدالة الدائمة. يبدو مشابها لهذا المثال:
{ "name": "hello_orchestrator", "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2020-03-18T21:54:49Z", "lastUpdatedTime": "2020-03-18T21:54:54Z" }لإيقاف التصحيح، في Visual Studio Code، اختر Shift+F5.
بعد التأكد من أن الوظيفة تعمل بشكل صحيح على جهاز الكمبيوتر المحلي لديك، حان الوقت لنشر المشروع على Azure.
تسجيل الدخول إلى Azure
قبل أن تتمكن من إنشاء موارد Azure أو نشر تطبيقك، يجب عليك تسجيل الدخول إلى Azure.
إذا لم تكن مسجلا الدخول بالفعل، في شريط Activity، اختر أيقونة Azure. ثم تحت Resources، اختر تسجيل الدخول إلى Azure.
إذا سجلت الدخول بالفعل وشاهدت اشتراكاتك الحالية، فانتقل إلى القسم التالي. إذا لم يكن لديك حساب Azure بعد، اختر إنشاء حساب Azure. يمكن للطلاب اختيار إنشاء حساب Azure للطلاب.
عندما يتم طلب منك في المتصفح، اختر حساب Azure الخاص بك وسجل الدخول باستخدام بيانات اعتماد حساب Azure الخاص بك. في حال إنشاء حساب جديد، يمكنك تسجيل الدخول بعد إنشاء حسابك.
بعد تسجيل الدخول بنجاح، يمكنك إغلاق نافذة المستعرض الجديدة. الاشتراكات التي تعود لحسابك في Azure تعرض في الشريط الجانبي.
إنشاء تطبيق الوظائف في Azure
في هذا القسم، تنشئ تطبيق وظيفة في خطة Flex Consumption مع الموارد ذات الصلة في اشتراكك في Azure. يتم اتخاذ العديد من قرارات إنشاء الموارد لك استنادا إلى السلوكيات الافتراضية. لمزيد من التحكم في الموارد التي تم إنشاؤها، يجب عليك بدلا من ذلك إنشاء تطبيق الوظائف بخيارات متقدمة.
في Visual Studio Code، اختر F1 لفتح لوحة الأوامر. عند الرسالة (
>)، أدخل ثم اختر Azure Functions: إنشاء تطبيق الوظائف في Azure.في المطالبات، قم بتوفير المعلومات التالية:
المطالبة الإجراء تحديد الاشتراك اختر اشتراك Azure للاستخدام. لا تظهر المطالبة عندما يكون لديك اشتراك واحد فقط مرئي ضمن الموارد. أدخل اسم تطبيق دالة جديد أدخل اسما فريدا عالميا صالحا في مسار URL. الاسم الذي تدخله تم التحقق منه لضمان أنه فريد في Azure Functions. حدد موقعاً للموارد الجديدة اختر منطقة Azure. للحصول على أداء أفضل، حدد منطقة قريبة منك. يتم عرض المناطق التي تدعمها خطط Flex Consumption فقط. تحديد مكدس ذاكرة مؤقتة لوقت التشغيل حدد إصدار اللغة الذي تقوم بتشغيله حاليا محليا. تحديد نوع مصادقة المورد حدد الهوية المدارة، وهو الخيار الأكثر أمانا للاتصال بحساب تخزين المضيف الافتراضي. في لوحة سجل النشاط
Azure، تعرض الإضافة Azure حالة الموارد الفردية عند إنشائها في Azure.
عند إنشاء تطبيق الوظيفة، يتم إنشاء الموارد ذات الصلة التالية في اشتراكك في Azure. تتم تسمية الموارد استنادا إلى الاسم الذي أدخلته لتطبيق الوظائف.
- مجموعة الموارد، وهي حاوية منطقية للموارد ذات الصلة.
- تطبيق الوظيفة، الذي يوفر البيئة لتنفيذ التعليمة البرمجية للوظيفة. يتيح لك تطبيق الوظيفة تجميع الوظائف كوحدة منطقية لإدارة الموارد وتوزيعها ومشاركتها بشكل أسهل مع نفس خطة المضيف.
- خطة Azure App Service، التي تحدد المضيف الأساسي لتطبيق الوظيفة الخاص بك.
- حساب قياسي Azure Storage، يستخدمه مضيف الوظائف للحفاظ على المعلومات المتعلقة بالحالة والمعلومات الأخرى عن تطبيق الوظيفة الخاص بك.
- مثيل Application Insights المتصل بتطبيق الوظائف، والذي يتتبع استخدام وظائفك في التطبيق.
- هوية مدارة يعينها المستخدم تتم إضافتها إلى دور Storage Blob Data Contributor في حساب تخزين المضيف الافتراضي الجديد.
يعرض تنبيه بعد إنشاء تطبيق الوظيفة وتطبيق حزمة التوزيع.
تلميح
افتراضيا، يتم إنشاء موارد Azure المطلوبة من قبل تطبيق الوظائف بناء على الاسم الذي تدخله لتطبيق الوظيفة. بشكل افتراضي، يتم إنشاء الموارد باستخدام تطبيق الوظائف في نفس مجموعة الموارد الجديدة. إذا كنت تريد تخصيص أسماء الموارد المقترنة أو إعادة استخدام الموارد الموجودة، فنشر المشروع باستخدام خيارات إنشاء متقدمة.
نشر المشروع على Azure
هام
النشر على تطبيق وظيفي موجود دائما يكتب محتويات ذلك التطبيق في Azure.
في لوحة الأوامر، أدخل ثم اختر Azure Functions: نشر إلى الوظيفة التطبيق.
حدد تطبيق الوظائف الذي أنشأته للتو. عند مطالبتك بالكتابة فوق عمليات التوزيع السابقة، حدد Deploy لنشر التعليمات البرمجية للدالة إلى مورد تطبيق الوظائف الجديد.
عند الانتهاء من النشر، اختر View Output لعرض نتائج الإنشاء والنشر، بما في ذلك الموارد Azure التي أنشأتها. إذا فاتك الإعلام، فحدد أيقونة الجرس في الزاوية السفلية اليسرى لرؤيتها مرة أخرى.
اختبر وظيفتك في Azure
انسخ عنوان URL لمشغل HTTP من لوحة الإخراج. يجب أن يكون عنوان URL الذي يستدعي الدالة التي تم تشغيلها من قبل HTTP بهذا التنسيق:
https://<functionappname>.azurewebsites.net/api/orchestrators/hello_orchestratorالصق عنوان URL الجديد لطلب HTTP في شريط عناوين المستعرض. عند استخدام التطبيق المنشور، يمكنك توقع الحصول على نفس استجابة الحالة التي حصلت عليها عند الاختبار محليا.
التطبيق Python Durable Functions الذي أنشأته ونشرته باستخدام Visual Studio Code جاهز للاستخدام.
تنظيف الموارد
إذا لم تعد بحاجة إلى الموارد التي أنشأتها لإكمال البدء السريع، لتجنب التكاليف المرتبطة باشتراكك Azure، احذف مجموعة الموارد وجميع الموارد ذات الصلة.
المحتوى ذو الصلة
- تعرف على أنماط تطبيقات Durable Functions الشائعة.
- تعرف على اختبار الوحدات