دليل مطور خدمة وظائف Azure

في Azure Functions، تشترك جميع الوظائف في بعض المفاهيم والمكونات التقنية الأساسية، بغض النظر عن اللغة أو بيئة التطوير المفضلة لديك. هذه المقالة خاصة باللغة. اختر لغتك المفضلة في أعلى المقالة.

تعتمد هذه المقالة على معرفتك المسبقة بمقالة نظرة عامة على خدمة وظائف Azure Functions.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Visual Studio أو Visual Studio Code أو من موجه الأوامر.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Maven (سطر الأوامر) أو Eclipse أو IntelliJ IDEA أو Gradle أو Quarkus أو Spring Cloud أو Visual Studio Code.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Visual Studio Code أو من موجه الأوامر.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Visual Studio Code أو من موجه الأوامر.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Visual Studio Code أو من موجه الأوامر.

إذا كنت تفضل الانتقال مباشرة، يمكنك إكمال برنامج تعليمي للتشغيل السريع باستخدام Visual Studio Code أو من موجه الأوامر.

مشروع التعليمات البرمجية

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

تعتمد طريقة تخطيط مشروع التعليمات البرمجية وكيفية الإشارة إلى الأساليب في مشروعك على لغة تطوير مشروعك. للحصول على إرشادات مفصلة خاصة باللغة، راجع دليل مطوري C#‎.

تعتمد طريقة تخطيط مشروع التعليمات البرمجية وكيفية الإشارة إلى الأساليب في مشروعك على لغة تطوير مشروعك. للحصول على إرشادات خاصة باللغة، راجع دليل مطوري Java.

تعتمد طريقة تخطيط مشروع التعليمات البرمجية وكيفية الإشارة إلى الأساليب في مشروعك على لغة تطوير مشروعك. للحصول على إرشادات خاصة باللغة، راجع دليل مطوري Node.js.

تعتمد طريقة تخطيط مشروع التعليمات البرمجية وكيفية الإشارة إلى الأساليب في مشروعك على لغة تطوير مشروعك. للحصول على إرشادات خاصة باللغة، راجع دليل مطوري PowerShell.

تعتمد طريقة تخطيط مشروع التعليمات البرمجية وكيفية الإشارة إلى الأساليب في مشروعك على لغة تطوير مشروعك. للحصول على إرشادات خاصة باللغة، راجع دليل مطوري Python.

يجب أن تحتوي جميع الدالات على مشغل، والذي يحدد كيفية بدء تشغيل الدالة ويمكن أن يوفر إدخالا للدالة. يمكن لوظائفك تحديد روابط الإدخال والإخراج اختياريا. تعمل هذه الارتباطات على تبسيط الاتصالات بخدمات أخرى دون الحاجة إلى العمل مع مجموعات SDK للعميل. وللحصول على مزيد من المعلومات، انظر مفاهيم مشغلات وروابط خدمة وظائف Azure Functions.

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

أدوات التطوير

توفر الأدوات التالية تجربة تطوير ونشر متكاملة ل Azure Functions بلغتك المفضلة:

تتكامل هذه الأدوات مع Azure Functions Core Tools بحيث يمكنك تشغيل وتصحيح الأخطاء على الكمبيوتر المحلي باستخدام وقت تشغيل Functions. وللحصول على مزيد من المعلومات، انظر التعليمات البرمجية لخدمة وظائف Azure Functions واختبارها محليًا.

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

يتم دعم تحرير المدخل للإصدار 3 Node.js فقط، والذي يستخدم ملف function.json.

التوزيع

عند نشر مشروع التعليمات البرمجية إلى Azure، فإنك تقوم أساسا بنشر مشروعك إلى مورد تطبيق دالة موجود. يوفر تطبيق الوظيفة سياق تنفيذ في Azure تعمل فيه لظائفك. على هذا النحو، إنها وحدة التوزيع والإدارة لوظائفك. من منظور Azure Resource، يعادل تطبيق الوظائف مورد موقع (Microsoft.Web/sites) في Azure App Service، وهو ما يعادل تطبيق ويب.

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

عندما لا يكون تطبيق الوظائف وأي موارد مطلوبة أخرى موجودة بالفعل في Azure، تحتاج أولا إلى إنشاء هذه الموارد قبل أن تتمكن من نشر ملفات المشروع. يمكنك إنشاء هذه الموارد بإحدى الطرق التالية:

بالإضافة إلى النشر المستند إلى الأدوات، تدعم Functions تقنيات أخرى لنشر التعليمات البرمجية المصدر إلى تطبيق وظائف موجود. للحصول على مزيدٍ من المعلومات، راجع تقنيات النشر في Azure Functions.

الاتصال بالخدمات

أحد المتطلبات الرئيسية لأي خدمة حوسبة مستندة إلى السحابة هو قراءة البيانات من خدمات السحابة الأخرى وكتابتها. توفر الوظائف مجموعة واسعة من الروابط التي تسهل عليك الاتصال بالخدمات دون الحاجة إلى العمل مع SDKs للعميل.

سواء كنت تستخدم ملحقات الربط التي توفرها Functions أو كنت تعمل مع SDKs للعميل مباشرة، يمكنك تخزين بيانات الاتصال بأمان وعدم تضمينها في التعليمات البرمجية الخاصة بك. لمزيد من المعلومات، راجع الاتصالات.

Bindings

توفر الوظائف روابط للعديد من خدمات Azure وبعض خدمات الجهات الخارجية، والتي يتم تنفيذها كملحقات. لمزيد من المعلومات، راجع القائمة الكاملة للروابط المدعومة.

يمكن أن تدعم ملحقات الربط كلا من المدخلات والمخرجات، وتعمل العديد من المشغلات أيضا كروابط إدخال. تتيح لك الروابط تكوين الاتصال بالخدمات بحيث يمكن لمضيف الوظائف معالجة الوصول إلى البيانات نيابة عنك. وللحصول على مزيد من المعلومات، انظر مفاهيم مشغلات وروابط خدمة وظائف Azure Functions.

إذا كنت تواجه مشكلات في الأخطاء الواردة من الروابط، فشاهد وثائق Azure Functions Binding Error Code .

SDKs العميل

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

عند استخدام حزم SDK للعميل، يجب استخدام نفس العملية لتخزين سلسلة الاتصال المستخدمة بواسطة ملحقات الربط والوصول إليها.

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

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

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

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

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

الاتصالات

كأفضل ممارسة أمان، تستفيد Azure Functions من وظيفة إعدادات التطبيق في Azure App Service لمساعدتك على تخزين السلاسل والمفاتيح والرموز المميزة الأخرى المطلوبة للاتصال بخدمات أخرى بشكل أكثر أمانا. يتم تخزين إعدادات التطبيق في Azure مشفرة ويمكن الوصول إليها في وقت التشغيل بواسطة تطبيقك كأزواج متغيرات name value البيئة. بالنسبة للمشغلات والروابط التي تتطلب خاصية اتصال، يمكنك تعيين اسم إعداد التطبيق بدلا من سلسلة الاتصال الفعلي. لا يمكنك تكوين ربط البيانات مباشرة باستخدام سلسلة الاتصال أو مفتاح.

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

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

قيم الاتصال

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

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

على سبيل المثال، قد تكون Storage1الخاصية connection لتعريف مشغل Azure Blob . طالما لا توجد قيمة سلسلة واحدة تم تكوينها بواسطة متغير بيئة يسمى Storage1، يمكن استخدام متغير بيئة يسمى Storage1__blobServiceUri لإعلام blobServiceUri خاصية الاتصال. تختلف خصائص الاتصال لكل خدمة. راجع وثائق المكون المستخدم في الاتصال.

إشعار

عند استخدام Azure App Configuration أو Key Vault لتوفير إعدادات لاتصالات الهوية المُدارة، يجب أن تستخدم أسماء الإعداد فاصل مفاتيح صالح مثل : أو / بدلاً من __ لضمان حل الأسماء بشكل صحيح.

على سبيل المثال، Storage1:blobServiceUri

تكوين اتصال يستند إلى الهوية

يمكن تكوين بعض الاتصالات في خدمة وظائف Azure Functions لاستخدام هوية ما بدلاً من البيانات السرية. يعتمد الدعم على إصدار وقت التشغيل والملحق باستخدام الاتصال. في بعض الحالات، قد يظل سلسلة الاتصال مطلوبا في Functions على الرغم من أن الخدمة التي تتصل بها تدعم الاتصالات المستندة إلى الهوية. للحصول على برنامج تعليمي حول تكوين تطبيقات الوظائف الخاصة بك باستخدام الهويات المُدارة، راجع البرنامج التعليمي لإنشاء تطبيق وظائف باستخدام الاتصالات المستندة إلى الهوية.

إشعار

عند التشغيل في خطة Consumption أو Elastic Premium، يستخدم WEBSITE_AZUREFILESCONNECTIONSTRING تطبيقك الإعدادات و WEBSITE_CONTENTSHARE عند الاتصال بملفات Azure على حساب التخزين المستخدم من قبل تطبيق الوظائف. لا تدعم Azure Files استخدام الهوية المدارة عند الوصول إلى مشاركة الملف. لمزيد من المعلومات، راجع سيناريوهات المصادقة المدعومة من Azure Files

يتم دعم الاتصالات المستندة إلى الهوية فقط على Functions 4.x، إذا كنت تستخدم الإصدار 1.x، فيجب عليك أولا الترحيل إلى الإصدار 4.x.

تدعم المكونات التالية الاتصالات المستندة إلى الهوية:

موفر المصدر للاتصال الخطط المدعومة معرفة المزيد
مشغلات وروابط Azure Blobs الكل إصدار ملحق Azure Blobs 5.0.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
مشغلات وروابط قوائم انتظار Azure الكل إصدار ملحق Azure Queues 5.0.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
جداول Azure (عند استخدام Azure Storage) الكل إصدار ملحق جداول Azure 1.0.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
قاعدة بيانات Azure SQL الكل توصيل تطبيق دالة ب Azure SQL باستخدام الهوية المدارة وروابط SQL
مشغلات Azure Event Hubs وروابطه الكل إصدار ملحق Azure Event Hubs 5.0.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
مشغلات Azure Service Bus وروابطه الكل ناقل خدمة Azure إصدار الملحق 5.0.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
ربط بيانات مخرجات Azure Event Grid الكل إصدار ملحق Azure Event Grid 3.3.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
مشغلات وروابط Azure Cosmos DB الكل إصدار ملحق Azure Cosmos DB 4.0.0 أو أحدث،
حزمة الملحقات 4.0.2 أو أحدث
مشغلات وروابط Azure SignalR الكل إصدار ملحق Azure SignalR 1.7.0 أو أحدث
مجموعة الملحقات 3.6.1 أو أحدث
موفر تخزين Durable Functions (Azure Storage) الكل إصدار ملحق Durable Functions 2.7.0 أو أحدث،
مجموعة الملحقات 3.3.0 أو أحدث
التخزين المطلوب من المضيف ("AzureWebJobsStorage") الكل الاتصال بموقع التخزين المضيف باستخدام هوية

عند استضافتها في خدمة Azure Functions، تستخدم الاتصالات المستندة إلى الهوية هوية مدارة. تستخدم الهوية المعينة من قبل النظام بشكل افتراضي على الرغم من إمكانية تحديد هوية معينة من قبل المستخدم مع خصائص credential و clientID. لاحظ أن تكوين هوية معينة من المستخدم باستخدام معرف مورد غير معتمد. عند التشغيل في سياقات أخرى، مثل التنمية المحلية، يتم استخدام هوية المطور الخاصة بك بدلًا من ذلك، على الرغم من أنه يمكن تخصيصها. راجع التطوير المحلي من خلال الاتصالات القائمة على الهوية.

منح الإذن للهوية

مهما كانت الهوية المستخدمة يجب أن يكون لديك أذونات لتنفيذ الإجراءات المقصودة. بالنسبة لمعظم خدمات Azure، يعني هذا أنك بحاجة إلى تعيين دور في Azure RBAC، باستخدام أدوار مضمنة أو مخصصة توفر هذه الأذونات.

هام

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

اختر إحدى علامات التبويب هذه للتعرف على الأذونات لكل مكون:

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

نوع الربط مثال على الأدوار المضمنة
المشغِّل مالك بيانات كائن ثنائي كبير الحجم للتخزين والمساهم في بياناتقائمة انتظار التخزين 1

يجب أيضا منح أذونات إضافية لاتصال AzureWebJobsStorage.2
ربط بيانات الإدخال قارئ بيانات للبيانات الثنائية الكبيرة للتخزين
ربط بيانات الإخراج مالك بيانات للبيانات الثنائية الكبيرة للتخزين

1 يعالج مشغل الكائن الثنائي كبير الحجم الفشل عبر عمليات إعادة المحاولة المتعددة عن طريق كتابة الكائنات الثنائية كبيرة الحجم السامة إلى قائمة انتظار على حساب التخزين المحدد بواسطة الاتصال.

2 يتم استخدام اتصال AzureWebJobsStorage داخليًا للكائنات الثنائية كبيرة الحجم وقوائم الانتظار التي تمكن المشغل. إذا تم تكوينه لاستخدام اتصال قائم على الهوية، فإنه يحتاج إلى أذونات إضافية تتجاوز المتطلبات الافتراضية. تتم تغطية الأذونات المطلوبة من قبل مالك بيانات Storage Blob والمساهم في بيانات قائمة انتظار التخزين والمساهم في حساب التخزين. لمعرفة المزيد، راجع الاتصال بتخزين المضيف مع هوية.

الخصائص الشائعة للاتصالات المستندة إلى الهوية

يقبل الاتصال المستند إلى الهوية في خدمة Azure الخصائص الشائعة التالية، حيث تكون <CONNECTION_NAME_PREFIX> قيمة الخاصية connection في تعريف المشغل أو الارتباط:

الخاصية قالب متغير البيئة ‏‏الوصف
بيانات اعتماد الرمز المميز <CONNECTION_NAME_PREFIX>__credential تحدد طريقة الحصول على الرمز المميز للاتصال. يجب تعيين هذا الإعداد إلى managedidentity إذا كانت دالة Azure المنشورة تنوي استخدام مصادقة الهوية المدارة. هذه القيمة صالحة فقط عندما تتوفر هوية مدارة في بيئة الاستضافة.
معرف العميل <CONNECTION_NAME_PREFIX>__clientId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد الهوية المعينة من قبل المستخدم لاستخدامها عند الحصول على رمز مميز. وتقبل هذه الخاصية معرف عميل يطابق إحدى الهويات المعينة من قبل المستخدم والمحددة للتطبيق. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديدها، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها.
معرف المورد <CONNECTION_NAME_PREFIX>__managedIdentityResourceId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد معرف المورد الذي سيتم استخدامه عند الحصول على رمز مميز. تقبل الخاصية معرف مورد يتوافق مع معرف المورد للهوية المدارة المعرفة من قبل المستخدم. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديد أي منهما، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها.

قد يتم دعم خيارات أخرى لنوع اتصال معين. راجع الوثائق الخاصة بالمكون الذي يقوم بالاتصال.

متغيرات بيئة Azure SDK

تنبيه

لا يوصى باستخدام متغيرات بيئة Azure SDK EnvironmentCredential بسبب التأثير غير المقصود المحتمل على الاتصالات الأخرى. كما أنها غير مدعومة بالكامل عند نشرها في Azure Functions.

يمكن أيضا تعيين متغيرات البيئة المقترنة ب Azure SDK EnvironmentCredential ، ولكن لا تتم معالجتها بواسطة خدمة Functions للتحجيم في خطط الاستهلاك. متغيرات البيئة هذه ليست خاصة بأي اتصال واحد وسيتم تطبيقها كافتراضية ما لم يتم تعيين خاصية مقابلة لاتصال معين. على سبيل المثال، إذا AZURE_CLIENT_ID تم تعيين، استخدام هذا كما لو <CONNECTION_NAME_PREFIX>__clientId تم تكوينه. سيؤدي الإعداد <CONNECTION_NAME_PREFIX>__clientId بشكل صريح إلى تجاوز هذا الإعداد الافتراضي.

التطوير النحلي باستخدام الاتصالات المستندة إلى الهوية

إشعار

يتطلب التطوير المحلي مع الاتصالات المستندة إلى الهوية إصدارا 4.0.3904 من Azure Functions Core Tools، أو إصدارا أحدث.

عند تشغيل مشروع الدالة محليا، يخبر التكوين أعلاه وقت التشغيل باستخدام هوية المطور المحلي. يحاول الاتصال الحصول على رمز مميز من المواقع التالية، بالترتيب:

  • ذاكرة تخزين مؤقت محلية مشتركة بين تطبيقات Microsoft
  • سياق المستخدم الحالي في Visual Studio
  • سياق المستخدم الحالي في Visual Studio Code
  • سياق المستخدم الحالي في واجهة Azure CLI

إذا لم ينجح أي من هذه الخيارات، يحدث خطأ.

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

قد ترغب أحيانًا في تحديد استخدام هوية مختلفة. يمكنك إضافة خصائص التكوين للاتصال الذي يشير إلى الهوية البديلة استنادا إلى معرف العميل وسر العميل لكيان خدمة Microsoft Entra. خيار التكوين هذا غير مدعوم عند استضافته في خدمة Azure Functions. لاستخدام معرف وسر على جهازك المحلي، حدد الاتصال بالخصائص الإضافية التالية:

الخاصية قالب متغير البيئة ‏‏الوصف
معرف المستأجر <CONNECTION_NAME_PREFIX>__tenantId معرف مستأجر Microsoft Entra (الدليل).
معرف العميل <CONNECTION_NAME_PREFIX>__clientId معرف (تطبيق) العميل لتسجيل التطبيق في المستأجر.
سر العميل <CONNECTION_NAME_PREFIX>__clientSecret سر العميل الذي تم إنشاؤه لتسجيل التطبيق.

فيما يلي مثال على الخصائص local.settings.json المطلوبة للاتصال المستند إلى الهوية ب Azure Blobs:

{
  "IsEncrypted": false,
  "Values": {
    "<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
    "<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
    "<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
    "<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
    "<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
  }
}

الاتصال بموقع التخزين المضيف باستخدام هوية

يستخدم مضيف Azure Functions اتصال التخزين الذي تم تعيينه AzureWebJobsStorage لتمكين السلوكيات الأساسية مثل تنسيق تنفيذ قاعدة بيانات أحادية لمشغلات المؤقت وتخزين مفتاح التطبيق الافتراضي. يمكن أيضا تكوين هذا الاتصال لاستخدام هوية.

تنبيه

تعتمد المكونات الأخرى في Functions على AzureWebJobsStorage للسلوكيات الافتراضية. يجب عدم نقله إلى اتصال قائم على الهوية إذا كنت تستخدم إصدارات قديمة من الإضافات التي لا تدعم هذا النوع من الاتصال، بما في ذلك المشغلات والروابط الخاصة بـ Azure Blobs وEvent Hubs والوظائف المتينة. وعلى غرار ذلك، يستخدم AzureWebJobsStorage في أدوات النشر عند استخدام البنية المجاورة للخادم في عامل استهلاك لينكس، وإذا فعّلت ذلك، فسوف تحتاج إلى النشر باستخدام حزمة نشر خارجية.

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

لاستخدام اتصال يستند إلى الهوية ل AzureWebJobsStorage، قم بتكوين إعدادات التطبيق التالية:

الإعدادات ‏‏الوصف مثال للقيمة
AzureWebJobsStorage__blobServiceUri عنوان موقع الويب لوحدة البيانات لخدمة كائن ثنائي كبير الحجم من حساب التخزين. https://<storage_account_name>.blob.core.windows.net
AzureWebJobsStorage__queueServiceUri عنوان موقع الويب (URI) لوحدة البيانات لخدمة قائمة الانتظار من حساب التخزين. https://<storage_account_name>.queue.core.windows.net
AzureWebJobsStorage__tableServiceUri عنوان موقع الويب (URI) لوحدة البيانات لخدمة جداول من حساب التخزين. https://<storage_account_name>.table.core.windows.net

يمكن أيضًا تعيين الخصائص الشائعة للاتصالات المستندة إلى الهوية.

إذا كنت تقوم بتكوين AzureWebJobsStorage باستخدام حساب تخزين يستخدم لاحقة DNS الافتراضية واسم الخدمة ل Azure العمومي، باتباع https://<accountName>.[blob|queue|file|table].core.windows.net التنسيق، يمكنك بدلا من ذلك تعيين AzureWebJobsStorage__accountName إلى اسم حساب التخزين الخاص بك. يتم استنتاج نقاط النهاية لكل خدمة تخزين لهذا الحساب. لا يعمل هذا عندما يكون حساب التخزين في سحابة ذات سيادة أو لديه DNS مخصص.

الإعدادات ‏‏الوصف مثال للقيمة
AzureWebJobsStorage__accountName اسم حساب التخزين، صالح فقط إذا لم يكن الحساب في سحابة ذات سيادة وليس لديه DNS مخصص. يعد بناء الجملة هذا فريدا من AzureWebJobsStorage نوعه ولا يمكن استخدامه للاتصالات الأخرى المستندة إلى الهوية. <storage_account_name>

ستحتاج إلى إنشاء تعيين دور يوفر الوصول إلى حساب التخزين لـ "AzureWebJobsStorage" في وقت التشغيل. إن أدوار الإدارة، مثل Owner، غير كافية. يغطي دور Storage Blob مالك بيانات الاحتياجات الرئيسة لتخزين مضيف الدوال - يحتاج وقت التشغيل إلى الوصول للقراءة والكتابة إلى الكائنات الثنائية كبيرة الحجم والقدرة على إنشاء حاويات. تستخدم عدة ملحقات هذا الاتصال كموقع افتراضي للكائنات الثنائية كبيرة الحجم وقوائم الانتظار والجداول، وقد تضيف هذه الاستخدامات متطلبات كما هو مذكور في الجدول أدناه. قد تحتاج إلى أذونات إضافية إذا كنت تستخدم "AzureWebJobsStorage" لأي أغراض أخرى.

ملحق الأدوار المطلوبة الشرح
لا يوجد امتداد (المضيف فحسب ) مالك بيانات للبيانات الثنائية الكبيرة للتخزين يستخدم للتنسيق العام، ومخزن المفاتيح الافتراضي
Azure Blobs (المشغل فحسب) كل:
المساهم في حساب التخزين,
مالك بيانات تخزين الكائنات الثنائية كبيرة الحجم,
مساهم بيانات قائمة انتظار التخزين
يستخدم مشغل كائن ثنائي كبير الحجم داخليًا قوائم انتظار Azure ويكتب إيصالات الكائن الثنائي كبير الحجم. يستخدم AzureWebJobsStorage لهؤلاء، بغض النظر عن الاتصال الذي تم تكوينه للمشغل.
محاور أحداث Azure (المشغل فحسب) (لا تغيير عن المتطلبات الافتراضية)
مالك بيانات للبيانات الثنائية الكبيرة للتخزين
نقاط التحقق مستمرة في النقاط باستخدام اتصال AzureWebJobsStorage.
مشغل المؤقت (لا تغيير عن المتطلبات الافتراضية)
مالك بيانات للبيانات الثنائية الكبيرة للتخزين
لضمان تنفيذ واحد لكل حدث، يتم أخذ الأقفال مع الكائنات الثنائية كبيرة الحجم باستخدام اتصال AzureWebJobsStorage.
Durable Functions كل:
مساهم بيانات للبيانات الثنائية الكبيرة للتخزين،
مساهم بيانات قائمة انتظار التخزين،
مساهم بيانات جدول التخزين
تستخدم Durable Functions الكائنات الثنائية كبيرة الحجم وقوائم الانتظار والجداول لتنسيق وظائف النشاط والحفاظ على حالة التزامن. يستخدم اتصال AzureWebJobsStorage لكل هذه بشكل افتراضي، لكن يمكنك تحديد اتصال مختلف في تكوين ملحق Durable Functions.

مشكلات الإبلاغ

عنصر ‏‏الوصف الارتباط
وقت التشغيل مضيف البرنامج النصي، المشغلات والروابط، دعم اللغة تقديم مشكلة
القوالب مشاكل في التعليمات البرمجية مع قالب الإنشاء تقديم مشكلة
المدخل مشكلة في واجهة المستخدم أو التجربة تقديم مشكلة

المستودعات مفتوحة المصدر

التعليمات البرمجية ل Azure Functions مصدر مفتوح، ويمكنك العثور على المكونات الرئيسية في مستودعات GitHub هذه:

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

لمزيد من المعلومات، راجع الموارد التالية: