في هذه المقالة، تتعلم نشر النموذج الخاص بك إلى نقطة نهاية عبر الإنترنت لاستخدامها في الاستدلال في الوقت الحقيقي. تبدأ بنشر نموذج على جهازك المحلي لتصحيح أي أخطاء. بعد ذلك، يمكنك نشر النموذج واختباره في Azure، وعرض سجلات التوزيع، ومراقبة اتفاقية مستوى الخدمة (SLA). بنهاية هذه المقالة، سيكون لديك نقطة نهاية HTTPS/REST قابلة للتطوير يمكنك استخدامها للاستدلال في الوقت الفعلي.
نقاط النهاية عبر الإنترنت هي نقاط نهاية تستخدم للاستدلال في الوقت الحقيقي. هناك نوعان من نقاط النهاية عبر الإنترنت: نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت. لمزيد من المعلومات حول نقاط النهاية والاختلافات بين نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت، راجع ما هي نقاط نهاية Azure التعلم الآلي؟
تساعد نقاط النهاية المدارة عبر الإنترنت على نشر نماذج التعلم الآلي بطريقة تسليم المفتاح. تعمل نقاط النهاية المُدارة عبر الإنترنت مع أجهزة وحدة المعالجة المركزية ووحدة معالجة الرسومات القوية في Azure بطريقة قابلة للتطوير، ومُدارة بالكامل. تهتم نقاط النهاية المُدارة عبر الإنترنت بخدمة نماذجك، وتوسيع نطاقها، وتأمينها، ومراقبتها، مما يحررك من النفقات العامة لإعداد البنية الأساسية وإدارتها.
يستخدم المثال الرئيسي في هذا المستند نقاط النهاية المُدارة عبر الإنترنت للتوزيع. لاستخدام Kubernetes بدلا من ذلك، راجع الملاحظات في هذا المستند المضمنة مع مناقشة نقطة النهاية المدارة عبر الإنترنت.
تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux.
مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم تكن لديك واحدة، فاستخدم الخطوات الواردة في تثبيت CLI (v2) وإعدادها واستخدامها لإنشاء واحدة.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. إذا كنت تستخدم الاستوديو لإنشاء/إدارة نقاط النهاية/عمليات النشر عبر الإنترنت، فستحتاج إلى إذن إضافي "Microsoft.Resources/deployments/write" من مالك مجموعة الموارد. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.
(اختياري) للتوزيع محلياً، يجب عليك تثبيت Docker Engine على الكمبيوتر المحلي. نوصي بشدة باستخدام هذا الخيار، حتى يسهل تصحيح الأخطاء.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.
(اختياري) للتوزيع محلياً، يجب عليك تثبيت Docker Engine على الكمبيوتر المحلي. نوصي بشدة باستخدام هذا الخيار، حتى يسهل تصحيح الأخطاء.
قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:
مساحة عمل Azure التعلم الآلي ومثيل حساب. إذا لم يكن لديك هذه الموارد وتريد إنشائها، فاستخدم الخطوات الواردة في مقالة التشغيل السريع: إنشاء موارد مساحة العمل.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.
إشعار
بينما يتم استخدام ملحق Azure CLI وCLI للتعلم الآلي في هذه الخطوات، فإنها ليست التركيز الرئيسي. يتم استخدامها أكثر كمرافق، وتمرير القوالب إلى Azure والتحقق من حالة عمليات نشر القالب.
قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:
تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux.
مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم تكن لديك واحدة، فاستخدم الخطوات الواردة في تثبيت CLI (v2) وإعدادها واستخدامها لإنشاء واحدة.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.
تأكد من أن لديك حصة نسبية كافية للجهاز الظاهري (VM) مخصصة للنشر. يحتفظ Azure التعلم الآلي بنسبة 20٪ من موارد الحوسبة لإجراء ترقيات على بعض وحدات SKU للجهاز الظاهري. على سبيل المثال، إذا طلبت 10 مثيلات في عملية نشر، يجب أن يكون لديك حصة نسبية ل 12 لكل عدد من الذاكرات الأساسية ل VM SKU. يؤدي الفشل في حساب موارد الحوسبة الإضافية إلى حدوث خطأ. هناك بعض وحدات SKU للجهاز الظاهري التي يتم إعفاءها من حجز الحصة الإضافية. لمزيد من المعلومات حول تخصيص الحصة النسبية، راجع تخصيص حصة الجهاز الظاهري للنشر.
بدلا من ذلك، يمكنك استخدام الحصة النسبية من تجمع الحصص المشتركة ل Azure التعلم الآلي لفترة محدودة. يوفر Azure التعلم الآلي مجموعة حصص مشتركة يمكن للمستخدمين عبر مناطق مختلفة الوصول إلى الحصة النسبية لإجراء الاختبار لفترة محدودة، اعتمادا على التوفر.
عند استخدام الاستوديو لنشر نماذج Llama-2 وPhi وNemotron و Mistral وDely وDci-DeciLM من كتالوج النموذج إلى نقطة نهاية مدارة عبر الإنترنت، يسمح لك Azure التعلم الآلي بالوصول إلى تجمع الحصص المشتركة لفترة قصيرة حتى تتمكن من إجراء الاختبار. لمزيد من المعلومات حول تجمع الحصة النسبية المشتركة، راجع الحصة النسبية المشتركة ل Azure التعلم الآلي.
إذا لم تكن قد قمت بالفعل بتعيين الإعدادات الافتراضية لـAzure CLI، فاحفظ الإعدادات الافتراضية. لتجنب تمرير قيم اشتراكك، ومساحة العمل، ومجموعة الموارد عدة مرات، قم بتشغيل هذا التعليمة البرمجية:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
استنساخ مستودع الأمثلة
لمتابعة هذه المقالة، قم أولا باستنساخ مستودع الأمثلة (azureml-examples). ثم قم بتشغيل التعليمات البرمجية التالية للانتقال إلى دليل المستودع cli/ :
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
تلميح
استخدم --depth 1 لنسخ آخر تثبيت فقط في المستودع، ما يقلل الوقت اللازم لإكمال العملية.
الأوامر الموجودة في هذا البرنامج التعليمي موجودة في الملفات deploy-local-endpoint.sh وفي deploy-managed-online-endpoint.shcli الدليل، وملفات تكوين YAML موجودة في endpoints/online/managed/sample/ الدليل الفرعي.
إشعار
ملفات تكوين YAML لنقاط نهاية Kubernetes عبر الإنترنت موجودة في endpoints/online/kubernetes/ الدليل الفرعي.
الاتصال بمساحة عمل التعلم الآلي من Microsoft Azure
مساحة العمل هي المورد ذو المستوى الأعلى للتعلم الآلي من Microsoft Azure، حيث توفر مكانًا مركزيًا للعمل مع جميع البيانات الاصطناعية التي تنشئها عند استخدام التعلم الآلي من Microsoft Azure. في هذا القسم، يمكنك الاتصال بمساحة العمل التي ستقوم فيها بتنفيذ مهام النشر. للمتابعة، افتح دفتر الملاحظات online-endpoints-simple-deployment.ipynb .
استيراد المكتبات المطلوبة:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
إشعار
إذا كنت تستخدم نقطة نهاية Kubernetes عبر الإنترنت، فاستورد KubernetesOnlineEndpoint الفئة و KubernetesOnlineDeployment من المكتبة azure.ai.ml.entities .
تكوين تفاصيل مساحة العمل والحصول على مؤشر لمساحة العمل:
للاتصال بمساحة عمل، تحتاج إلى معلمات المعرف - اشتراك ومجموعة موارد واسم مساحة العمل. يمكنك استخدام هذه التفاصيل في MLClient من azure.ai.ml للحصول على مؤشر إلى مساحة عمل Azure التعلم الآلي المطلوبة. يستخدم هذا المثال مصادقة Azure الافتراضية.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
إذا كان لديك Git مثبتا على جهازك المحلي، يمكنك اتباع الإرشادات لاستنساخ مستودع الأمثلة. وإلا، اتبع الإرشادات لتنزيل الملفات من مستودع الأمثلة.
استنساخ مستودع الأمثلة
للمتابعة مع هذه المقالة، قم أولا باستنساخ مستودع الأمثلة (أمثلة azureml) ثم قم بالتغيير إلى azureml-examples/cli/endpoints/online/model-1 الدليل.
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli/endpoints/online/model-1
تلميح
استخدم --depth 1 لنسخ آخر تثبيت فقط في المستودع، ما يقلل الوقت اللازم لإكمال العملية.
تنزيل الملفات من مستودع الأمثلة
إذا قمت باستنساخ مستودع الأمثلة، فإن جهازك المحلي يحتوي بالفعل على نسخ من الملفات لهذا المثال، ويمكنك التخطي إلى القسم التالي. إذا لم تقم باستنساخ المستودع، يمكنك تنزيله على جهازك المحلي.
انتقل إلى <> الزر Code على الصفحة، ثم حدد Download ZIP من علامة التبويب Local .
حدد موقع المجلد /cli/endpoints/online/model-1/model والملف /cli/endpoints/online/model-1/onlinescoring/score.py.
تعيين متغيرات البيئة
تعيين متغيرات البيئة التالية، كما يتم استخدامها في الأمثلة في هذه المقالة. استبدل القيم بمعرف اشتراك Azure ومنطقة Azure حيث توجد مساحة العمل ومجموعة الموارد التي تحتوي على مساحة العمل واسم مساحة العمل:
export SUBSCRIPTION_ID="your Azure subscription ID"
export LOCATION="Azure region where your workspace is located"
export RESOURCE_GROUP="Azure resource group that contains your workspace"
export WORKSPACE="Azure Machine Learning workspace name"
يتطلب منك بعض أمثلة القالب تحميل الملفات إلى مخزن Azure Blob لمساحة العمل الخاصة بك. تقوم الخطوات التالية بالاستعلام عن مساحة العمل وتخزين هذه المعلومات في متغيرات البيئة المستخدمة في الأمثلة:
لمتابعة هذه المقالة، قم أولا باستنساخ مستودع الأمثلة (azureml-examples). ثم قم بتشغيل التعليمات البرمجية التالية للانتقال إلى دليل الأمثلة:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
تلميح
استخدم --depth 1 لنسخ آخر تثبيت فقط في المستودع، ما يقلل الوقت اللازم لإكمال العملية.
تعريف نقطة النهاية
لتعريف نقطة نهاية عبر الإنترنت، حدد اسم نقطة النهاية ووضع المصادقة. لمزيد من المعلومات حول نقاط النهاية المدارة عبر الإنترنت، راجع نقاط النهاية عبر الإنترنت.
لتعيين اسم نقطة النهاية، قم بتشغيل الأمر التالي. استبدل YOUR_ENDPOINT_NAME باسم فريد في منطقة Azure. لمزيد من المعلومات حول قواعد التسمية، راجع حدود نقطة النهاية.
بالنسبة إلى Linux، قم بتشغيل هذا الأمر:
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
تكوين نقطة النهاية
تعرض القصاصة البرمجية التالية endpoints/online/Managed/sample/endpoint.yml الملف:
يتم وصف مرجع تنسيق YAML لنقطة النهاية في الجدول التالي. لمعرفة كيفية تحديد هذه السمات، راجع مرجع YAML لنقطة النهاية عبر الإنترنت. للحصول على معلومات حول الحدود المتعلقة بنقاط النهاية المدارة، راجع حدود نقاط النهاية عبر الإنترنت.
مفتاح
الوصف
$schema
(اختياري) مخطط YAML. لمشاهدة جميع الخيارات المتوفرة في ملف YAML، يمكنك عرض المخطط في قصاصة التعليمات البرمجية السابقة في مستعرض.
name
اسم نقطة النهاية.
auth_mode
استخدام key للمصادقة المستندة إلى المفتاح. استخدم aml_token للمصادقة المستندة إلى الرمز المميز التعلم الآلي من Microsoft Azure. استخدم aad_token للمصادقة المستندة إلى الرمز المميز ل Microsoft Entra (معاينة). لمزيد من المعلومات حول المصادقة، راجع مصادقة العملاء لنقاط النهاية عبر الإنترنت.
تكوين نقطة نهاية
أولا حدد اسم نقطة النهاية عبر الإنترنت، ثم قم بتكوين نقطة النهاية.
يجب أن يكون اسم نقطة النهاية فريدا في منطقة Azure. لمزيد من المعلومات حول قواعد التسمية، راجع حدود نقطة النهاية.
# Define an endpoint name
endpoint_name = "my-endpoint"
# Example way to define a random name
import datetime
endpoint_name = "endpt-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name = endpoint_name,
description="this is a sample endpoint",
auth_mode="key"
)
تستخدم key التعليمات البرمجية السابقة للمصادقة المستندة إلى المفتاح. لاستخدام مصادقة Azure التعلم الآلي المستندة إلى الرمز المميز، استخدم aml_token. لاستخدام المصادقة المستندة إلى الرمز المميز من Microsoft Entra (معاينة)، استخدم aad_token. لمزيد من المعلومات حول المصادقة، راجع مصادقة العملاء لنقاط النهاية عبر الإنترنت.
تكوين نقطة نهاية
عند النشر إلى Azure من الاستوديو، ستقوم بإنشاء نقطة نهاية ونشر لإضافتها إليها. في ذلك الوقت، ستتم مطالبتك بتوفير أسماء لنقطة النهاية والنشر.
تعيين اسم نقطة نهاية
لتعيين اسم نقطة النهاية، قم بتشغيل الأمر التالي. استبدل YOUR_ENDPOINT_NAME باسم فريد في منطقة Azure. لمزيد من المعلومات حول قواعد التسمية، راجع حدود نقطة النهاية.
يشكل التوزيع مجموعة من الموارد اللازمة لاستضافة النموذج الذي يقوم بالاستدلال الفعلي. على سبيل المثال، يمكنك نشر نموذج scikit-learn الذي يقوم بالتراجع واستخدام برنامج نصي لتسجيل النقاط score.py لتنفيذ النموذج بناء على طلب إدخال معين.
للتعرف على السمات الرئيسية للتوزيع، راجع عمليات النشر عبر الإنترنت.
تكوين عملية نشر
يستخدم تكوين التوزيع موقع النموذج الذي ترغب في نشره.
model - يحدد خصائص النموذج المضمنة path ، باستخدام (مكان تحميل الملفات منه). يقوم CLI تلقائيا بتحميل ملفات النموذج وتسجيل النموذج باسم تم إنشاؤه تلقائيا.
environment - باستخدام التعريفات المضمنة التي تتضمن مكان تحميل الملفات، يقوم CLI تلقائيا بتحميل conda.yaml الملف وتسجيل البيئة. لاحقا، لإنشاء البيئة، يستخدم image التوزيع (في هذا المثال، هو mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) للصورة الأساسية، ويتم تثبيت التبعيات conda_file أعلى الصورة الأساسية.
code_configuration - أثناء النشر، يتم تحميل الملفات المحلية مثل مصدر Python لنموذج التسجيل من بيئة التطوير.
استخدم نقطة النهاية YAML لاستهداف Kubernetes، بدلا من نقطة النهاية المدارة YAML. تحتاج إلى تحرير YAML لتغيير قيمة compute إلى اسم هدف الحساب المسجل. يمكنك استخدام deployment.yaml هذا الذي يحتوي على خصائص إضافية قابلة للتطبيق على نشر Kubernetes.
تنطبق جميع الأوامر المستخدمة في هذه المقالة لنقاط النهاية المدارة عبر الإنترنت أيضا على نقاط نهاية Kubernetes، باستثناء القدرات التالية التي لا تنطبق على نقاط نهاية Kubernetes:
Model - يحدد خصائص النموذج المضمنة path ، باستخدام (مكان تحميل الملفات منه). يقوم SDK تلقائيا بتحميل ملفات النموذج وتسجيل النموذج باسم تم إنشاؤه تلقائيا.
Environment - باستخدام التعريفات المضمنة التي تتضمن مكان تحميل الملفات، تقوم SDK تلقائيا بتحميل conda.yaml الملف وتسجيل البيئة. لاحقا، لإنشاء البيئة، يستخدم image التوزيع (في هذا المثال، هو mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) للصورة الأساسية، ويتم تثبيت التبعيات conda_file أعلى الصورة الأساسية.
CodeConfiguration - أثناء النشر، يتم تحميل الملفات المحلية مثل مصدر Python لنموذج التسجيل من بيئة التطوير.
import os
import logging
import json
import numpy
import joblib
def init():
"""
This function is called when the container is initialized/started, typically after create/update of the deployment.
You can write the logic here to perform init operations like caching the model in memory
"""
global model
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# Please provide your model's folder name if there is one
model_path = os.path.join(
os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
logging.info("Init complete")
def run(raw_data):
"""
This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
In the example we extract the data from the json input and call the scikit-learn model's predict()
method and return the result back
"""
logging.info("model 1: request received")
data = json.loads(raw_data)["data"]
data = numpy.array(data)
result = model.predict(data)
logging.info("Request processed")
return result.tolist()
يتم استدعاء الدالة init() عند تهيئة الحاوية أو بدء تشغيلها. تحدث التهيئة عادةً بعد وقت قصير من إنشاء التوزيع أو تحديثه. init الدالة هي المكان المناسب لكتابة منطق لعمليات التهيئة العمومية مثل التخزين المؤقت للنموذج في الذاكرة (كما هو موضح في هذا الملف score.py).
run() يتم استدعاء الدالة في كل مرة يتم فيها استدعاء نقطة النهاية، وهي تقوم بتسجيل النقاط والتنبؤ الفعليين. في ملف score.py هذا، تستخرج الدالة run() البيانات من إدخال JSON، وتستدعي أسلوب نموذج predict() scikit-learn، ثم ترجع نتيجة التنبؤ.
النشر والتصحيح محليا باستخدام نقطة نهاية محلية
نوصي بشدة باختبار تشغيل نقطة النهاية محليا للتحقق من صحة التعليمات البرمجية والتكوين وتصحيحها قبل النشر إلى Azure. يدعم Azure CLI وPython SDK نقاط النهاية المحلية والنشرات، بينما لا يدعم Azure التعلم الآلي studio وقالب ARM.
يمكنك استخدام حزمة Python لخادم Azure التعلم الآلي الاستدلال HTTP لتصحيح أخطاء البرنامج النصي لتسجيل النقاط محليا دون Docker Engine. يساعدك تصحيح الأخطاء باستخدام خادم الاستدلال على تصحيح أخطاء البرنامج النصي لتسجيل النقاط قبل النشر إلى نقاط النهاية المحلية بحيث يمكنك تصحيح الأخطاء دون التأثر بتكوينات حاوية التوزيع.
لمزيد من المعلومات حول تصحيح أخطاء نقاط النهاية عبر الإنترنت محليا قبل النشر إلى Azure، راجع تصحيح أخطاء نقطة النهاية عبر الإنترنت.
قم بتوزيع النموذج محلياً
قم أولا بإنشاء نقطة نهاية. اختيارياً، بالنسبة إلى نقطة نهاية محلية، يمكنك تخطي هذه الخطوة وإنشاء التوزيع مباشرةً (الخطوة التالية)، والتي بدورها ستنشئ بيانات التعريف المطلوبة. يعد نشر النماذج محليا مفيدا لأغراض التطوير والاختبار.
استدعاء نقطة النهاية لتسجيل النموذج باستخدام invoke الأمر وتمرير معلمات الاستعلام المخزنة في ملف JSON:
az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
إذا كنت تريد استخدام عميل REST (مثل curl)، يجب أن يكون لديك عنوان URI للتسجيل. للحصول على عنوان URI للتسجيل، قم بتشغيل az ml online-endpoint show --local -n $ENDPOINT_NAME. في البيانات التي تم إرجاعها، ابحث عن السمة scoring_uri .
استدعاء نقطة النهاية لتسجيل النموذج باستخدام invoke الأمر وتمرير معلمات الاستعلام المخزنة في ملف JSON.
إذا كنت تريد استخدام عميل REST (مثل curl)، يجب أن يكون لديك عنوان URI للتسجيل. للحصول على URI لتسجيل النقاط، قم بتشغيل التعليمات البرمجية التالية. في البيانات التي تم إرجاعها، ابحث عن السمة scoring_uri .
لا يدعم الاستوديو نقاط النهاية المحلية. راجع علامات تبويب Azure CLI أو Python للحصول على خطوات لاختبار نقطة النهاية محليا.
لا يدعم القالب نقاط النهاية المحلية. راجع علامات تبويب Azure CLI أو Python للحصول على خطوات لاختبار نقطة النهاية محليا.
قم بتوزيع نقطة النهاية عبر الإنترنت على Azure
بعد ذلك، قم بتوزيع نقطة النهاية عبر الإنترنت إلى Azure. كأفضل ممارسة للإنتاج، نوصي بتسجيل النموذج والبيئة التي ستستخدمها في النشر الخاص بك.
تسجيل النموذج والبيئة
نوصي بتسجيل النموذج والبيئة قبل النشر إلى Azure بحيث يمكنك تحديد الأسماء والإصدارات المسجلة أثناء النشر. يسمح لك تسجيل الأصول بإعادة استخدامها دون الحاجة إلى تحميلها في كل مرة تقوم فيها بإنشاء عمليات نشر، مما يزيد من قابلية إعادة الإنتاج وقابلية التتبع.
إشعار
على عكس التوزيع إلى Azure، لا يدعم التوزيع المحلي استخدام النماذج والبيئات المسجلة. بدلا من ذلك، يستخدم النشر المحلي ملفات النموذج المحلي ويستخدم بيئات مع ملفات محلية فقط.
للتوزيع إلى Azure، يمكنك استخدام الأصول المحلية أو المسجلة (النماذج والبيئات). في هذا القسم من المقالة، يستخدم النشر إلى Azure الأصول المسجلة، ولكن لديك خيار استخدام الأصول المحلية بدلا من ذلك. للحصول على مثال لتكوين توزيع يقوم بتحميل الملفات المحلية لاستخدامها في النشر المحلي، راجع تكوين عملية نشر.
لتسجيل النموذج والبيئة، استخدم النموذج model: azureml:my-model:1 أو environment: azureml:my-env:1.
للتسجيل، يمكنك استخراج تعريفات YAML لـmodel وenvironment إلى ملفات YAML منفصلة واستخدام الأوامر az ml model create وaz ml environment create. لمعرفة المزيد بشأن هذه الأوامر، قم بتشغيل az ml model create -h وaz ml environment create -h.
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
file_model = Model(
path="../../model-1/model/",
type=AssetTypes.CUSTOM_MODEL,
name="my-model",
description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)
تسجيل البيئة:
from azure.ai.ml.entities import Environment
env_docker_conda = Environment(
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
conda_file="../../model-1/environment/conda.yaml",
name="my-env",
description="Environment created from a Docker image plus Conda environment.",
)
ml_client.environments.create_or_update(env_docker_conda)
تسجيل النموذج هو كيان منطقي في مساحة العمل يمكن أن يحتوي على ملف نموذج واحد أو دليل لملفات متعددة. كأفضل ممارسة للإنتاج، يجب عليك تسجيل النموذج والبيئة. قبل إنشاء نقطة النهاية والنشر في هذه المقالة، يجب تسجيل مجلد النموذج الذي يحتوي على النموذج.
\azureml-examples\cli\endpoints\online\model-1\model حدد المجلد من النسخة المحلية من المستودع الذي قمت باستنساخه أو تنزيله مسبقا. عند المطالبة، حدد تحميل وانتظر حتى يكتمل التحميل.
حدد التالي بعد اكتمال تحميل المجلد.
أدخل اسمًا مألوفًا للنموذج. تفترض الخطوات الواردة في هذه المقالة أن النموذج يسمى model-1.
في صفحة "الإعدادات"، أدخل اسما، مثل my-env للبيئة.
بالنسبة إلى "Select environment source" اختر Use existing docker image with optional conda source.
حدد التالي للانتقال إلى صفحة "تخصيص".
انسخ محتويات الملف من \azureml-examples\cli\endpoints\online\model-1\environment\conda.yaml النسخة المحلية من المستودع الذي نسخته أو قمت بتنزيله سابقا.
الصق المحتويات في مربع النص.
حدد التالي حتى تصل إلى صفحة "مراجعة".
حدد إنشاء.
لمزيد من المعلومات حول إنشاء بيئة في الاستوديو، راجع إنشاء بيئة.
لتسجيل النموذج باستخدام قالب، يجب أولا تحميل ملف النموذج إلى مخزن Azure Blob. يستخدم az storage blob upload-batch المثال التالي الأمر لتحميل ملف إلى التخزين الافتراضي لمساحة العمل الخاصة بك:
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/model -s cli/endpoints/online/model-1/model --account-name $AZURE_STORAGE_ACCOUNT
بعد تحميل الملف، استخدم القالب لإنشاء تسجيل نموذج. في المثال التالي، تحتوي المعلمة modelUri على المسار إلى النموذج:
az deployment group create -g $RESOURCE_GROUP \
--template-file arm-templates/model-version.json \
--parameters \
workspaceName=$WORKSPACE \
modelAssetName="sklearn" \
modelUri="azureml://subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/workspaces/$WORKSPACE/datastores/$AZUREML_DEFAULT_DATASTORE/paths/model/sklearn_regression_model.pkl"
جزء من البيئة هو ملف conda الذي يحدد تبعيات النموذج المطلوبة لاستضافة النموذج. يوضح المثال التالي كيفية قراءة محتويات ملف conda في متغيرات البيئة:
استخدم الأصول المسجلة (النموذج والبيئة) في تعريف التوزيع الخاص بك. تعرض القصاصة البرمجية endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml التالية الملف، مع جميع المدخلات المطلوبة لتكوين التوزيع:
يمكنك تحديد أنواع مثيل وحدة المعالجة المركزية أو وحدة معالجة الرسومات والصور في تعريف التوزيع لكل من النشر المحلي والنشر إلى Azure.
استخدم تعريف النشر في ملف blue-deployment-with-registered-assets.yml مثيل نوع Standard_DS3_v2 للأغراض العامة وصورة mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDocker غير GPU . لحساب GPU، اختر نوع حساب وحدة معالجة الرسومات SKU وصورة GPU Docker.
لاستخدام Kubernetes، بدلا من نقاط النهاية المدارة، كهدف حساب، راجع مقدمة إلى هدف حساب Kubernetes.
يمكنك تحديد أنواع مثيل وحدة المعالجة المركزية أو وحدة معالجة الرسومات والصور في تكوين النشر لكل من النشر المحلي والنشر إلى Azure.
في وقت سابق، قمت بتكوين توزيع يستخدم مثيل نوع Standard_DS3_v2 للأغراض العامة وصورة mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDocker غير GPU . لحساب GPU، اختر نوع حساب وحدة معالجة الرسومات SKU وصورة GPU Docker.
يحدد التسجيل السابق للبيئة صورة mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 docker غير GPU عن طريق تمرير القيمة إلى القالب environment-version.json باستخدام المعلمة dockerImage . لحساب وحدة معالجة الرسومات، قم بتوفير قيمة لصورة عامل الإرساء GPU إلى القالب (باستخدام dockerImage المعلمة) وتوفير نوع حساب وحدة معالجة الرسومات SKU إلى القالب online-endpoint-deployment.json (باستخدام المعلمة skuName ).
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
إنشاء النشر المسمى blue ضمن نقطة النهاية.
az ml online-deployment create -name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
قد يستغرق إنشاء النشر ما يصل إلى 15 دقيقة، اعتمادا على ما إذا كان يتم إنشاء البيئة أو الصورة الأساسية للمرة الأولى. تتم معالجة عمليات النشر اللاحقة التي تستخدم نفس البيئة بشكل أسرع.
تلميح
إذا كنت تفضل عدم حظر وحدة تحكم CLI، يمكنك إضافة العلامة --no-wait إلى الأمر . ومع ذلك، سيؤدي هذا الخيار إلى إيقاف العرض التفاعلي لحالة النشر.
هام
--all-traffic تخصص العلامة في التعليمات البرمجية az ml online-deployment create المستخدمة لإنشاء النشر نسبة 100٪ من نسبة استخدام الشبكة لنقطة النهاية إلى النشر الأزرق الذي تم إنشاؤه حديثا. على الرغم من أن هذا مفيد لأغراض التطوير والاختبار، فقد تحتاج إلى توجيه حركة المرور إلى النشر الجديد من خلال أمر صريح. على سبيل المثال، az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100"
أنشئ نقطة النهاية:
باستخدام ما endpoint قمت بتعريفه سابقا و الذي MLClient قمت بإنشائه سابقا، يمكنك الآن إنشاء نقطة النهاية في مساحة العمل. يبدأ هذا الأمر إنشاء نقطة النهاية ويعيد استجابة تأكيد أثناء استمرار إنشاء نقطة النهاية.
blue_deployment_with_registered_assets باستخدام ما قمت بتعريفه سابقا و MLClient الذي قمت بإنشائه سابقا، يمكنك الآن إنشاء النشر في مساحة العمل. يبدأ هذا الأمر في إنشاء النشر ويعيد استجابة تأكيد أثناء استمرار إنشاء النشر.
استخدم الاستوديو لإنشاء نقطة نهاية عبر الإنترنت مُدارة مباشرةً في متصفحك. عندما تقوم بإنشاء نقطة نهاية عبر الإنترنت مُدارة في الاستوديو، يجب عليك تحديد توزيع أولي. لا يمكنك إنشاء نقطة نهاية فارغة مُدارة عبر الإنترنت.
إحدى الطرق لإنشاء نقطة نهاية مدارة عبر الإنترنت في الاستوديو هي من صفحة Models . يوفر هذا الأسلوب أيضا طريقة سهلة لإضافة نموذج إلى نشر موجود عبر الإنترنت مدار. لنشر النموذج المسمى model-1 الذي قمت بتسجيله مسبقا في قسم تسجيل النموذج والبيئة :
حدد النموذج المسمى model-1 عن طريق التحقق من الدائرة الموجودة بجانب اسمها.
حدد Deploy>Real-time endpoint.
يفتح هذا الإجراء نافذة حيث يمكنك تحديد تفاصيل حول نقطة النهاية.
أدخل اسم نقطة النهاية الفريد في منطقة Azure. لمزيد من المعلومات حول قواعد التسمية، راجع حدود نقطة النهاية.
الاحتفاظ بالتحديد الافتراضي: مدار لنوع الحساب.
احتفظ بالتحديد الافتراضي: المصادقة المستندة إلى المفتاح لنوع المصادقة. لمزيد من المعلومات حول المصادقة، راجع مصادقة العملاء لنقاط النهاية عبر الإنترنت.
حدد Next، حتى تصل إلى صفحة "Deployment". هنا، قم بتبديل تشخيصات Application Insights إلى Enabled للسماح لك بعرض الرسوم البيانية لأنشطة نقطة النهاية في الاستوديو لاحقا وتحليل المقاييس والسجلات باستخدام Application Insights.
حدد التالي للانتقال إلى صفحة "Code + environment". هنا، حدد الخيارات التالية:
حدد برنامج نصي لتسجيل النقاط للاستدلال: استعرض وحدد \azureml-examples\cli\endpoints\online\model-1\onlinescoring\score.py الملف من المستودع الذي نسخته أو قمت بتنزيله سابقا.
حدد قسم البيئة : حدد بيئات مخصصة ثم حدد البيئة my-env:1 التي قمت بإنشائها سابقا.
حدد التالي، قبول الإعدادات الافتراضية، حتى تتم مطالبتك بإنشاء النشر.
راجع إعدادات النشر وحدد الزر إنشاء .
بدلا من ذلك، يمكنك إنشاء نقطة نهاية مدارة عبر الإنترنت من صفحة نقاط النهاية في الاستوديو.
يفتح هذا الإجراء نافذة لك لتحديد النموذج الخاص بك وتحديد تفاصيل حول نقطة النهاية والنشر. أدخل إعدادات نقطة النهاية والنشر كما هو موضح سابقا، ثم قم بإنشاء النشر.
سرد كافة نقاط النهاية في مساحة العمل بتنسيق جدول باستخدام list الأسلوب :
for endpoint in ml_client.online_endpoints.list():
print(endpoint.name)
يقوم الأسلوب بإرجاع قائمة (مكرر) من الكيانات ManagedOnlineEndpoint .
يمكنك الحصول على مزيد من المعلومات عن طريق تحديد المزيد من المعلمات. على سبيل المثال، إخراج قائمة نقاط النهاية مثل جدول:
print("Kind\tLocation\tName")
print("-------\t----------\t------------------------")
for endpoint in ml_client.online_endpoints.list():
print(f"{endpoint.kind}\t{endpoint.location}\t{endpoint.name}")
عرض نقاط النهاية المدارة عبر الإنترنت
يمكنك عرض جميع نقاط النهاية المدارة عبر الإنترنت في صفحة نقاط النهاية. انتقل إلى صفحة تفاصيل نقطة النهاية للعثور على المعلومات الهامة بما في ذلك URI لنقطة النهاية والحالة وأدوات الاختبار ومراقبات النشاط وسجلات التوزيع ونموذج التعليمات البرمجية للاستهلاك:
في شريط التنقل الأيمن، حدد نقاط النهاية. هنا، يمكنك مشاهدة قائمة بجميع نقاط النهاية في مساحة العمل.
(اختياري) أنشئ عامل تصفية في نوع الحساب لعرض أنواع الحوسبة المُدارة فقط.
حدد اسم نقطة نهاية لعرض صفحة تفاصيل نقطة النهاية.
تلميح
في حين أن القوالب مفيدة لنشر الموارد، لا يمكن استخدامها لسرد الموارد أو إظهارها أو استدعاؤها. استخدم Azure CLI أو Python SDK أو الاستوديو لتنفيذ هذه العمليات. تستخدم التعليمات البرمجية التالية Azure CLI.
show استخدم الأمر لعرض المعلومات في provisioning_state لنقطة النهاية والنشر:
az ml online-endpoint show -n $ENDPOINT_NAME
سرد كافة نقاط النهاية في مساحة العمل بتنسيق جدول باستخدام list الأمر :
az ml online-endpoint list --output table
التحقق من حالة النشر عبر الإنترنت
تحقق من السجلات لمعرفة ما إذا كان النموذج قد تم نشره دون خطأ.
لمشاهدة إخراج السجل من حاوية، استخدم أمر CLI التالي:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
بشكل افتراضي، يتم سحب السجلات من حاوية خادم الاستدلال. لمشاهدة السجلات من حاوية تهيئة التخزين، أضف العلامة --container storage-initializer . لمزيد من المعلومات حول سجلات النشر، راجع الحصول على سجلات الحاوية.
بشكل افتراضي، يتم سحب السجلات من حاوية خادم الاستدلال. لمشاهدة السجلات من حاوية تهيئة التخزين، أضف container_type="storage-initializer" الخيار . لمزيد من المعلومات حول سجلات النشر، راجع الحصول على سجلات الحاوية.
لعرض إخراج السجل، حدد علامة التبويب Logs من صفحة نقطة النهاية. إذا كان لديك عمليات نشر متعددة في نقطة النهاية، فاستخدم القائمة المنسدلة لتحديد التوزيع الذي تريد رؤية سجله.
بشكل افتراضي، يتم سحب السجلات من خادم الاستدلال. لمشاهدة السجلات من حاوية تهيئة التخزين، استخدم Azure CLI أو Python SDK (راجع كل علامة تبويب للحصول على التفاصيل). توفر السجلات من حاوية تهيئة التخزين معلومات حول ما إذا كان قد تم تنزيل التعليمات البرمجية وبيانات النموذج بنجاح إلى الحاوية. لمزيد من المعلومات حول سجلات النشر، راجع الحصول على سجلات الحاوية.
تلميح
في حين أن القوالب مفيدة لنشر الموارد، لا يمكن استخدامها لسرد الموارد أو إظهارها أو استدعاؤها. استخدم Azure CLI أو Python SDK أو الاستوديو لتنفيذ هذه العمليات. تستخدم التعليمات البرمجية التالية Azure CLI.
لمشاهدة إخراج السجل من حاوية، استخدم أمر CLI التالي:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
بشكل افتراضي، يتم سحب السجلات من حاوية خادم الاستدلال. لمشاهدة السجلات من حاوية تهيئة التخزين، أضف العلامة --container storage-initializer . لمزيد من المعلومات حول سجلات النشر، راجع الحصول على سجلات الحاوية.
قم باستدعاء نقطة النهاية لتسجيل البيانات باستخدام النموذج الخاص بك
استخدم إما invoke الأمر أو عميل REST من اختيارك لاستدعاء نقطة النهاية وتسجيل بعض البيانات:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
احصل على المفتاح المستخدم للمصادقة على نقطة النهاية:
تلميح
يمكنك التحكم في أساسيات أمان Microsoft Entra التي يمكنها الحصول على مفتاح المصادقة عن طريق تعيينها إلى دور مخصص يسمح و Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. لمزيد من المعلومات حول إدارة التخويل إلى مساحات العمل، راجع إدارة الوصول إلى مساحة عمل Azure التعلم الآلي.
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
استخدم curl لتسجيل البيانات.
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
لاحظ أنك تستخدم show الأوامر و get-credentials للحصول على بيانات اعتماد المصادقة. لاحظ أيضا أنك تستخدم العلامة --query لتصفية السمات المطلوبة فقط. لمعرفة المزيد حول العلامة --query ، راجع استعلام إخراج أمر Azure CLI.
لمشاهدة سجلات الاستدعاء، قم بتشغيل get-logs مرة أخرى.
باستخدام الذي MLClient تم إنشاؤه سابقا، احصل على مؤشر إلى نقطة النهاية. يمكن بعد ذلك استدعاء نقطة النهاية باستخدام invoke الأمر مع المعلمات التالية:
endpoint_name - اسم نقطة النهاية
request_file - ملف مع بيانات الطلب
deployment_name - اسم التوزيع المحدد للاختبار في نقطة نهاية
# test the blue deployment with some sample data
ml_client.online_endpoints.invoke(
endpoint_name=endpoint_name,
deployment_name="blue",
request_file="../model-1/sample-request.json",
)
استخدم علامة التبويب Test في صفحة تفاصيل نقطة النهاية لاختبار التوزيع المدار عبر الإنترنت. أدخل نموذج الإدخال واعرض النتائج.
حدد علامة تبويب اختبار في صفحة تفاصيل نقطة النهاية.
استخدم القائمة المنسدلة لتحديد التوزيع الذي تريد اختباره.
في حين أن القوالب مفيدة لنشر الموارد، لا يمكن استخدامها لسرد الموارد أو إظهارها أو استدعاؤها. استخدم Azure CLI أو Python SDK أو الاستوديو لتنفيذ هذه العمليات. تستخدم التعليمات البرمجية التالية Azure CLI.
استخدم إما invoke الأمر أو عميل REST من اختيارك لاستدعاء نقطة النهاية وتسجيل بعض البيانات:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file cli/endpoints/online/model-1/sample-request.json
إذا كنت تريد تحديث التعليمة البرمجية أو الطراز أو البيئة، فقم بتحديث ملف YAML، ثم قم بتشغيل الأمر az ml online-endpoint update .
إشعار
إذا قمت بتحديث عدد المثيلات (لتوسيع نطاق النشر الخاص بك) إلى جانب إعدادات النموذج الأخرى (مثل التعليمات البرمجية أو النموذج أو البيئة) في أمر واحد update ، تنفيذ عملية التحجيم أولا، ثم سيتم تطبيق التحديثات الأخرى. من الممارسات الجيدة تنفيذ هذه العمليات بشكل منفصل في بيئة إنتاج.
لفهم كيفية عمل update :
افتح الملف online/model-1/onlinescoring/Score.py.
غيّر السطر الأخير من الوظيفة init() : بعد logging.info("Init complete")، أضف logging.info("Updated successfully").
حفظ الملف.
قم بإجراء هذا الأمر:
az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
إشعار
التحديث باستخدام YAML تعريفي. أي إن التغييرات في YAML تنعكس في موارد Azure Resource Manager الأساسية (نقاط النهاية وعمليات التوزيع). يسهل النهج التعريفي GitOps: تمر جميع التغييرات على نقاط النهاية وعمليات التوزيع (حتى instance_count) عبر YAML.
تلميح
يمكنك استخدام معلمات التحديث العامة، مثل المعلمة --set ، مع أمر CLI update لتجاوز السمات في YAML أو لتعيين سمات معينة دون تمريرها في ملف YAML. يُعد استخدام --set السمات المفردة ذا قيمة خاصة في سيناريوهات التطوير والاختبار. على سبيل المثال، لزيادة قيمة instance_count التوزيع الأول، يمكنك استخدام --set instance_count=2 العلامة. ومع ذلك، نظراً لعدم تحديث YAML، فإن هذه التقنية لا تسهل GitOps.
تحديد ملف YAML ليس إلزاميا. على سبيل المثال، إذا كنت تريد اختبار إعداد تزامن مختلف لتوزيع معين، يمكنك تجربة شيء مثل az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. سيؤدي ذلك إلى الاحتفاظ بكافة التكوينات الموجودة ولكن تحديث المعلمات المحددة فقط.
نظرا لتعديل الدالة init() التي يتم تشغيلها عند إنشاء نقطة النهاية أو تحديثها، ستكون الرسالة Updated successfully في السجلات. استرجع السجلات عن طريق تشغيل:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
يعمل الأمر update أيضاً مع عمليات التوزيع المحلية. استخدم نفس الأمر az ml online-deployment update مع العلم --local .
إذا كنت ترغب في تحديث التعليمات البرمجية أو النموذج أو البيئة، فقم بتحديث التكوين، ثم قم بتشغيل MLClientonline_deployments.begin_create_or_update أسلوب لإنشاء نشر أو تحديثه.
إشعار
إذا قمت بتحديث عدد المثيلات (لتوسيع نطاق النشر الخاص بك) إلى جانب إعدادات النموذج الأخرى (مثل التعليمات البرمجية أو النموذج أو البيئة) بطريقة واحدة begin_create_or_update ، تنفيذ عملية التحجيم أولا، ثم سيتم تطبيق التحديثات الأخرى. من الممارسات الجيدة تنفيذ هذه العمليات بشكل منفصل في بيئة إنتاج.
لفهم كيفية عمل begin_create_or_update :
افتح الملف online/model-1/onlinescoring/Score.py.
غيّر السطر الأخير من الوظيفة init() : بعد logging.info("Init complete")، أضف logging.info("Updated successfully").
نظرا لتعديل الدالة init() التي يتم تشغيلها عند إنشاء نقطة النهاية أو تحديثها، ستكون الرسالة Updated successfully في السجلات. استرجع السجلات عن طريق تشغيل:
begin_create_or_update يعمل الأسلوب أيضا مع عمليات التوزيع المحلية. استخدم نفس الأسلوب مع العلامة local=True .
حاليا، يسمح لك الاستوديو بإجراء تحديثات فقط لعدد مثيلات التوزيع. استخدم الإرشادات التالية لتوسيع نطاق توزيع فردي لأعلى أو لأسفل عن طريق ضبط عدد المثيلات:
افتح صفحة تفاصيل نقطة النهاية وابحث عن بطاقة النشر التي تريد تحديثها.
حدد رمز التحرير (رمز القلم الرصاص) بجوار اسم النشر.
تحديث عدد المثيلات المقترنة بالنشر. يمكنك الاختيار بين الاستخدام الافتراضي أو الهدف ل "نوع مقياس التوزيع".
إذا قمت بتحديد Default، فإنك تحدد أيضا قيمة رقمية لعدد المثيلات.
إذا قمت بتحديد الاستخدام الهدف، يمكنك تحديد القيم لاستخدامها للمعلمات عند تغيير الحجم التلقائي للتوزيع.
حدد تحديث لإنهاء تحديث عدد المثيلات للتوزيع.
لا يوجد حاليا خيار لتحديث النشر باستخدام قالب ARM.
إشعار
تحديث النشر في هذا القسم هو مثال على تحديث متجدد موضعي.
بالنسبة لنقطة نهاية مدارة عبر الإنترنت، يتم تحديث النشر إلى التكوين الجديد بنسبة 20٪ من العقد في كل مرة. أي إذا كان النشر يحتوي على 10 عقد، يتم تحديث عقدتين في كل مرة.
بالنسبة لنقطة نهاية Kubernetes عبر الإنترنت، يقوم النظام بشكل متكرر بإنشاء مثيل نشر جديد مع التكوين الجديد وحذف النسخة القديمة.
لاستخدام الإنتاج، يجب مراعاة النشر الأزرق والأخضر، والذي يوفر بديلا أكثر أمانا لتحديث خدمة ويب.
(اختياري) قم بتكوين القياس التلقائي
يقوم التحجيم التلقائي بتشغيل المقدار المناسب من الموارد للتعامل مع الحِمل على تطبيقك. تدعم نقاط النهاية المُدارة عبر الإنترنت القياس التلقائي من خلال التكامل مع ميزة القياس التلقائي لجهاز المراقبة Azure. لتكوين القياس التلقائي، راجع كيفية القياس التلقائي لنقاط النهاية عبر الإنترنت.
(اختياري) مراقبة اتفاقية مستوى الخدمة (SLA) باستخدام Azure Monitor
لعرض المقاييس وتعيين التنبيهات بناءً على اتفاقية مستوى الخدمة الخاصة بك، أكمل الخطوات الموضحة في مراقبة نقاط النهاية عبر الإنترنت.
(اختياري) التكامل مع Log Analytics
get-logs يوفر الأمر ل CLI أو get_logs أسلوب SDK فقط المئات الأخيرة من أسطر السجلات من مثيل محدد تلقائيا. ومع ذلك، يوفر Log Analytics طريقة لتخزين السجلات وتحليلها بشكل دائم. لمزيد من المعلومات حول استخدام التسجيل، راجع مراقبة نقاط النهاية عبر الإنترنت.