التشغيل السريع: تكوين Durable Functions باستخدام الهوية المدارة

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

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

إشعار

يتم دعم الهوية المدارة في إصدارات ملحق Durable Functions 2.7.0 والإصدارات الأحدث.

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

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

للتشغيل السريع، تحتاج إلى:

  • مشروع Durable Functions موجود تم إنشاؤه في مدخل Microsoft Azure أو مشروع Durable Functions محلي تم نشره في Azure.
  • الإلمام بتشغيل تطبيق Durable Functions في Azure.

إذا لم يكن لديك مشروع Durable Functions موجود تم نشره في Azure، نوصي بالبدء بأحد عمليات التشغيل السريع التالية:

التطوير المحلي

استخدام محاكي تخزين Azure

عند التطوير محليا، يوصى باستخدام Azurite، وهو محاكي Azure Storage المحلي. قم بتكوين تطبيقك إلى المحاكي عن طريق تحديد "AzureWebJobsStorage": "UseDevelopmentStorage = true" في local.settings.json.

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

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

عند استخدام بيانات اعتماد المطور، يحاول الاتصال الحصول على رمز مميز من المواقع التالية، بالترتيب المذكور، للوصول إلى موارد Azure:

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

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

تكوين وقت التشغيل لاستخدام هوية المطور المحلي

  1. حدد اسم حساب Azure Storage في local.settings.json، على سبيل المثال:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
       }
    }
    
  2. انتقل إلى مورد حساب Azure Storage على مدخل Microsoft Azure، وانتقل إلى علامة التبويب Access Control (IAM)، وانقر على Add role assignment. ابحث عن الأدوار التالية:

    • مساهم بيانات قائمة انتظار التخزين
    • المساهم في بيانات مخزن البيانات الثنائية الكبيرة
    • مساهم بيانات جدول التخزين

    قم بتعيين الأدوار لنفسك بالنقر فوق "+ Select members" والعثور على بريدك الإلكتروني في النافذة المنبثقة. (هذا البريد الإلكتروني هو البريد الإلكتروني الذي تستخدمه لتسجيل الدخول إلى تطبيقات Microsoft أو Azure CLI أو المحررين في عائلة Visual Studio.)

    لقطة شاشة تعرض تعيين الوصول للمستخدم.

الاتصالات المستندة إلى الهوية للتطبيق المنشور في Azure

تمكين مورد الهوية المدارة

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

تعيين أدوار الوصول إلى الهوية المدارة

انتقل إلى مورد Azure Storage لتطبيقك على مدخل Microsoft Azure وقم بتعيين ثلاثة أدوار للتحكم في الوصول استنادا إلى الدور (RBAC) لمورد الهوية المدارة:

  • مساهم بيانات قائمة انتظار التخزين
  • المساهم في بيانات مخزن البيانات الثنائية الكبيرة
  • مساهم بيانات جدول التخزين

للعثور على مورد الهوية، حدد تعيين الوصول إلى الهوية المدارة ثم + تحديد الأعضاء

لقطة شاشة تعرض تعيين الوصول إلى الهوية المدارة.

إضافة تكوين الهوية المدارة إلى تطبيقك

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

  1. في مدخل Microsoft Azure، في قائمة موارد تطبيق الوظائف ضمن Settings، حدد Environment variables.

  2. في قائمة الإعدادات، ابحث عن AzureWebJobsStorage وحدد أيقونة Delete . لقطة شاشة لإعداد التخزين الافتراضي.

  3. أضف إعدادا لربط حساب تخزين Azure الخاص بك بالتطبيق.

    استخدم إحدى الطرق التالية استنادا إلى السحابة التي يعمل بها تطبيقك:

    • سحابة Azure: إذا كان تطبيقك يعمل في Azure العمومي، أضف الإعداد AzureWebJobsStorage__accountName الذي يحدد اسم حساب تخزين Azure. قيمة المثال: mystorageaccount123

    • سحابة غير Azure: إذا كان التطبيق الخاص بك يعمل في سحابة خارج Azure، يجب إضافة الإعدادات الثلاثة التالية لتوفير عناوين URL خدمة معينة (أو نقاط نهاية) لحساب التخزين بدلا من اسم حساب.

      • اسم الإعداد: AzureWebJobsStorage__blobServiceUri

        قيمة المثال: https://mystorageaccount123.blob.core.windows.net/

      • اسم الإعداد: AzureWebJobsStorage__queueServiceUri

        قيمة المثال: https://mystorageaccount123.queue.core.windows.net/

      • اسم الإعداد: AzureWebJobsStorage__tableServiceUri

        قيمة المثال: https://mystorageaccount123.table.core.windows.net/

    يمكنك الحصول على قيم متغيرات URI هذه في معلومات حساب التخزين من علامة التبويب نقاط النهاية.

    لقطة شاشة لعينة نقطة النهاية.

    إشعار

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

  4. قم بإنهاء تكوين الهوية المدارة (تذكر النقر فوق "تطبيق" بعد إجراء تغييرات الإعداد):

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

    • إذا كنت تستخدم هوية معينة من قبل المستخدم، أضف الإعدادات التالية في تكوين التطبيق الخاص بك:

      • AzureWebJobsStorage__credential، أدخل managedidentity

      • AzureWebJobsStorage__clientId، احصل على قيمة GUID هذه من مورد الهوية المدارة

      لقطة شاشة لمعرف عميل هوية المستخدم.

    إشعار

    لا تدعم managedIdentityResourceId Durable Functions عند استخدام الهوية المعينة من قبل المستخدم. استخدم clientId بدلاً من ذلك.