التخويل على نقاط النهاية الدفعية

تدعم نقاط النهاية الدفعية مصادقة Microsoft Entra أو aad_token. وهذا يعني أنه من أجل استدعاء نقطة نهاية دفعة، يجب على المستخدم تقديم رمز مصادقة Microsoft Entra صالح إلى URI لنقطة نهاية الدفعة. يتم فرض التخويل على مستوى نقطة النهاية. توضح المقالة التالية كيفية التفاعل بشكل صحيح مع نقاط النهاية الدفعية ومتطلبات الأمان الخاصة بها.

كيفية عمل التخويل

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

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

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

هام

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

كيفية تشغيل المهام باستخدام أنواع مختلفة من بيانات الاعتماد

توضح الأمثلة التالية طرقا مختلفة لبدء مهام توزيع الدفعات باستخدام أنواع مختلفة من بيانات الاعتماد:

هام

عند العمل على مساحات عمل خاصة ممكنة للارتباط، لا يمكن استدعاء نقاط النهاية الدفعية من واجهة المستخدم في Azure التعلم الآلي studio. يرجى استخدام Azure التعلم الآلي CLI v2 بدلا من ذلك لإنشاء الوظيفة.

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

تشغيل المهام باستخدام بيانات اعتماد المستخدم

في هذه الحالة، نريد تنفيذ نقطة نهاية دفعية باستخدام هوية المستخدم الذي قام بتسجيل الدخول حاليا. اتبع الخطوات التالية:

  1. استخدم Azure CLI لتسجيل الدخول باستخدام مصادقة تفاعلية أو مصادقة رمز الجهاز:

    az login
    
  2. بمجرد المصادقة، استخدم الأمر التالي لتشغيل مهمة نشر دفعة:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci
    

تشغيل المهام باستخدام كيان الخدمة

في هذه الحالة، نريد تنفيذ نقطة نهاية دفعية باستخدام كيان خدمة تم إنشاؤه بالفعل في معرف Microsoft Entra. لإكمال المصادقة، سيتعين عليك إنشاء سر لتنفيذ المصادقة. اتبع الخطوات التالية:

  1. إنشاء سر لاستخدامه للمصادقة كما هو موضح في الخيار 3: إنشاء سر عميل جديد.

  2. للمصادقة باستخدام كيان خدمة، استخدم الأمر التالي. لمزيد من التفاصيل، راجع تسجيل الدخول باستخدام Azure CLI.

    az login --service-principal \
             --tenant <tenant> \
             -u <app-id> \
             -p <password-or-cert> 
    
  3. بمجرد المصادقة، استخدم الأمر التالي لتشغيل مهمة نشر دفعة:

    az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                                --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci/
    

تشغيل المهام باستخدام هوية مدارة

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

في الموارد التي تم تكوينها للهويات المدارة لموارد Azure، يمكنك تسجيل الدخول باستخدام الهوية المدارة. يتم تسجيل الدخول باستخدام هوية المورد من خلال العلامة --identity . لمزيد من التفاصيل، راجع تسجيل الدخول باستخدام Azure CLI.

az login --identity

بمجرد المصادقة، استخدم الأمر التالي لتشغيل مهمة نشر دفعة:

az ml batch-endpoint invoke --name $ENDPOINT_NAME \
                            --input https://azuremlexampledata.blob.core.windows.net/data/heart-disease-uci

تكوين RBAC لاستدعاء نقاط النهاية الدفعية

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

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

"actions": [
    "Microsoft.MachineLearningServices/workspaces/read",
    "Microsoft.MachineLearningServices/workspaces/data/versions/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/registered/write",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/read",
    "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/read",
    "Microsoft.MachineLearningServices/workspaces/datastores/write",
    "Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action",
    "Microsoft.MachineLearningServices/workspaces/listStorageAccountKeys/action",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/read",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/deployments/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/batchEndpoints/jobs/write",
    "Microsoft.MachineLearningServices/workspaces/computes/read",
    "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
    "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
    "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
    "Microsoft.MachineLearningServices/workspaces/experiments/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
    "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
    "Microsoft.MachineLearningServices/workspaces/metrics/resource/write",
    "Microsoft.MachineLearningServices/workspaces/modules/read",
    "Microsoft.MachineLearningServices/workspaces/models/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
    "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write",
    "Microsoft.MachineLearningServices/workspaces/environments/read",
    "Microsoft.MachineLearningServices/workspaces/environments/write",
    "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    "Microsoft.MachineLearningServices/workspaces/environments/readSecrets/action"
]

تكوين مجموعات الحوسبة للوصول إلى البيانات

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

نوع إدخال البيانات بيانات الاعتماد في المتجر بيانات الاعتماد المستخدمة الوصول الممنوح من قبل
مخزن البيانات ‏‏نعم‬ بيانات اعتماد مخزن البيانات في مساحة العمل مفتاح الوصول أو SAS
أصل البيانات ‏‏نعم‬ بيانات اعتماد مخزن البيانات في مساحة العمل مفتاح الوصول أو SAS
مخزن البيانات لا هوية الوظيفة + الهوية المدارة لمجموعة الحوسبة RBAC
أصل البيانات لا هوية الوظيفة + الهوية المدارة لمجموعة الحوسبة RBAC
Azure Blob Storage غير مطبق هوية الوظيفة + الهوية المدارة لمجموعة الحوسبة RBAC
Azure Data Lake Storage الجيل الأول غير مطبق هوية الوظيفة + الهوية المدارة لمجموعة الحوسبة POSIX
Azure Data Lake Storage Gen2 غير مطبق هوية الوظيفة + الهوية المدارة لمجموعة الحوسبة POSIX وRBAC

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

لتكوين نظام مجموعة الحوسبة للوصول إلى البيانات، اتبع الخطوات التالية:

  1. انتقل إلى Azure التعلم الآلي studio.

  2. انتقل إلى Compute، ثم Compute clusters، وحدد مجموعة الحوسبة التي يستخدمها التوزيع الخاص بك.

  3. تعيين هوية مدارة إلى نظام مجموعة الحوسبة:

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

    2. حدد تعيين هوية مدارة وتكوينها حسب الحاجة. يمكنك استخدام هوية مدارة معينة من قبل النظام أو هوية مدارة معينة من قبل المستخدم. إذا كنت تستخدم هوية مدارة معينة من قبل النظام، يتم تسميتها باسم "[اسم مساحة العمل]/computes/[اسم مجموعة الحساب]".

    3. ا‏‏حفظ التغييرات.

    Animation showing the steps to assign a managed identity to a cluster.

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

  5. تعيين مستوى وصول Storage Blob Data Reader في حساب التخزين:

    1. انتقل إلى قسم التحكم بالوصول (IAM) .

    2. حدد علامة التبويب تعيين الدور، ثم انقر فوق إضافة>تعيين دور.

    3. ابحث عن الدور المسمى Storage Blob Data Reader، وحدده، وانقر فوق Next.

    4. انقر فوق Select members.

    5. ابحث عن الهوية المدارة التي قمت بإنشائها. إذا كنت تستخدم هوية مدارة معينة من قبل النظام، يتم تسميتها باسم "[اسم مساحة العمل]/computes/[اسم مجموعة الحوسبة]".

    6. أضف الحساب، وأكمل المعالج.

    Animation showing the steps to assign the created managed identity to the storage account.

  6. نقطة النهاية الخاصة بك جاهزة لتلقي المهام وبيانات الإدخال من حساب التخزين المحدد.

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