Questo articolo illustra come distribuire il modello in un endpoint online per l'inferenza in tempo reale. Per iniziare, distribuire un modello nel computer locale per eseguire il debug di eventuali errori. Distribuire e testare quindi il modello in Azure, visualizzare i log di distribuzione e monitorare il contratto di servizio. Al termine di questo articolo, si avrà un endpoint HTTPS/REST scalabile che è possibile usare per l'inferenza in tempo reale.
Gli endpoint online sono endpoint usati per l'inferenza (in tempo reale). Esistono due tipi di endpoint online: endpoint online gestiti ed endpoint online Kubernetes. Per altre informazioni sugli endpoint e sulle differenze tra endpoint online gestiti ed endpoint online Kubernetes, vedere Che cosa sono gli endpoint di Azure Machine Learning?
Gli endpoint online gestiti consentono di distribuire i modelli di apprendimento automatico in modo pronto all'uso. Funzionano con computer CPU e GPU potenti in Azure in modo scalabile e completamente gestito. Gli endpoint online gestiti si occupano di gestire, dimensionare, proteggere e monitorare i modelli, liberando l'utente dalle attività di configurazione e gestione dell'infrastruttura sottostante.
L'esempio principale in questo documento usa endpoint online gestiti per la distribuzione. Per usare Kubernetes, invece, vedere le note contenute in questo documento che sono inline con la discussione sugli endpoint online gestiti.
Gli esempi dell'interfaccia della riga di comando in questo articolo presuppongono che si usi la shell Bash (o compatibile). Ad esempio, un sistema Linux o un sottosistema Windows per Linux.
I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di Proprietario o Collaboratore per l'area di lavoro di Azure Machine Learning o a un ruolo personalizzato che consente Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Se si usa Studio per creare/gestire endpoint/distribuzioni online, è necessario richiedere un'autorizzazione aggiuntiva "Microsoft.Resources/deployments/write" al proprietario del gruppo di risorse. Per altre informazioni, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.
(Facoltativo) Per eseguire la distribuzione in locale, è necessario installare Docker Engine nel computer locale. Si consiglia vivamente di usare questa opzione per facilitare il debug dei problemi.
I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di Proprietario o Collaboratore per l'area di lavoro di Azure Machine Learning o a un ruolo personalizzato che consente Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Per altre informazioni, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.
(Facoltativo) Per eseguire la distribuzione in locale, è necessario installare Docker Engine nel computer locale. Si consiglia vivamente di usare questa opzione per facilitare il debug dei problemi.
Prima di seguire la procedura descritta in questo articolo, assicurarsi di disporre dei prerequisiti seguenti:
Un'area di lavoro di Azure Machine Learning e un'istanza di ambiente di calcolo. Se non sono disponibili queste risorse e si desidera crearle, seguire la procedura descritta nell'articolo Avvio rapido: Creare risorse dell'area di lavoro.
I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di Proprietario o Collaboratore per l'area di lavoro di Azure Machine Learning o a un ruolo personalizzato che consente Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Per altre informazioni, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.
Nota
Anche se l'interfaccia della riga di comando di Azure e l'estensione dell'interfaccia della riga di comando per l'apprendimento automatico vengono usate in questi passaggi, non sono l'obiettivo principale. vengono usate più come utilità, passando modelli ad Azure e controllando lo stato delle distribuzioni di modelli.
Prima di seguire la procedura descritta in questo articolo, assicurarsi di disporre dei prerequisiti seguenti:
Gli esempi dell'interfaccia della riga di comando in questo articolo presuppongono che si usi la shell Bash (o compatibile). Ad esempio, un sistema Linux o un sottosistema Windows per Linux.
I controlli degli accessi in base al ruolo di Azure vengono usati per concedere l'accesso alle operazioni in Azure Machine Learning. Per eseguire la procedura descritta in questo articolo, all'account utente deve essere assegnato il ruolo di Proprietario o Collaboratore per l'area di lavoro di Azure Machine Learning o a un ruolo personalizzato che consente Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Per altre informazioni, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.
Assicurarsi di avere una quota di macchina virtuale (VM) sufficiente allocata per la distribuzione. Azure Machine Learning riserva il 20% delle risorse di calcolo per l'esecuzione degli aggiornamenti in alcune SKU di VM. Ad esempio, se si richiedono 10 istanze in una distribuzione, è necessario avere una quota per 12 per ogni numero di core per lo SKU della macchina virtuale. Se non si tiene conto delle risorse di calcolo aggiuntive, viene generato un errore. Esistono alcuni SKU di macchina virtuale esenti dalla prenotazione di quota aggiuntiva. Per altre informazioni sull'allocazione delle quote, vedere Allocazione della quota di macchine virtuali per le distribuzioni.
In alternativa, è possibile usare la quota dal pool di quote condivise di Azure Machine Learning per un periodo di tempo limitato. Azure Machine Learning offre un pool di quote condivise da cui gli utenti in diverse aree possono accedere alla quota per eseguire test per un periodo di tempo limitato, a seconda della disponibilità.
Quando si usa Studio per distribuire modelli Llama-2, Phi, Nemotron, Mistral, Dolly e Deci-DeciLM dal catalogo dei modelli a un endpoint online gestito, Azure Machine Learning consente di accedere al proprio pool di quote condivise per un breve periodo di tempo, in modo da poter eseguire la verifica. Per altre informazioni sul pool di quote condivise, vedere Quota condivisa di Azure Machine Learning.
Se le impostazioni predefinite per l'interfaccia della riga di comando di Azure non sono già state impostate, salvare le proprie impostazioni predefinite. Per evitare di passare più volte i valori per la sottoscrizione, l'area di lavoro e il gruppo di risorse, eseguire questo codice:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Clonare il repository di esempi
Per seguire questo articolo, clonare prima di tutto il repository degli esempi (azureml-examples). Eseguire quindi il codice seguente per passare alla directory del repository cli/:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
Suggerimento
Usare --depth 1 per clonare solo il commit più recente nel repository, riducendo il tempo necessario per completare l'operazione.
I comandi di questa esercitazione si trovano nei file deploy-local-endpoint.sh e deploy-managed-online-endpoint.sh nella directory cli e i file di configurazione YAML si trovano nella sottodirectory endpoints/online/managed/sample/.
Nota
I file di configurazione YAML per gli endpoint online Kubernetes si trovano nella sottodirectory endpoints/online/kubernetes/.
Clonare il repository degli esempi
Prima di eseguire gli esempi di training, clonare il repository degli esempi (azureml-examples) e passare alla directory azureml-examples/sdk/python/endpoints/online/managed:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/sdk/python/endpoints/online/managed
Suggerimento
Usare --depth 1 per clonare solo il commit più recente nel repository, riducendo il tempo necessario per completare l'operazione.
Le informazioni contenute in questo articolo si basano sul notebook online-endpoints-simple-deployment.ipynb. Include lo stesso contenuto di questo articolo, anche se l'ordine dei codici è lievemente differente.
Connettersi all'area di lavoro di Azure Machine Learning
L’ area di lavoro è la risorsa di primo livello per Azure Machine Learning, che offre una posizione centralizzata per lavorare con tutti gli artefatti creati quando si usa Azure Machine Learning. In questa sezione, ci si connetterà all'area di lavoro in cui verranno eseguite le attività di distribuzione. Per seguire la procedura, aprire il notebook online-endpoints-simple-deployment.ipynb.
Importare le librerie necessarie:
# 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
Nota
Se si usa l'endpoint online Kubernetes, importare le classi KubernetesOnlineEndpoint e KubernetesOnlineDeployment dalla libreria azure.ai.ml.entities.
Configurare i dettagli e ottenere un handle per l'area di lavoro:
Per connettersi a un'area di lavoro, occorrono i parametri identificatore, ovvero una sottoscrizione, un gruppo di risorse e un nome dell'area di lavoro. Questi dettagli verranno usati in MLClient da azure.ai.ml per ottenere un handle per l'area di lavoro di Azure Machine Learning necessaria. In questo esempio si usa l'autenticazione di Azure predefinita.
# 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
)
Se Git è installato nel computer locale, è possibile seguire le istruzioni per clonare il repository degli esempi. In caso contrario, seguire le istruzioni per scaricare i file dal repository degli esempi.
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli/endpoints/online/model-1
Suggerimento
Usare --depth 1 per clonare solo il commit più recente nel repository, riducendo il tempo necessario per completare l'operazione.
Scaricare i file dal repository degli esempi
Se è stato clonato il repository di esempi, il computer locale dispone già di copie dei file per questo esempio ed è possibile passare alla sezione successiva. Se il repository non è stato clonato, è possibile scaricarlo nel computer locale.
Passare al pulsante <>Codice nella pagina, quindi selezionare Scarica ZIP dalla scheda Locale.
Individuare la cartella /cli/endpoints/online/model-1/model e il file /cli/endpoints/online/model-1/onlinescoring/score.py.
Impostare le variabili di ambiente
Impostare le variabili di ambiente seguenti, come vengono usate negli esempi contenuti in questo articolo. Sostituire i valori con l'ID sottoscrizione di Azure, l'area di Azure in cui si trova l'area di lavoro, il gruppo di risorse che contiene l'area di lavoro e il nome dell'area di lavoro:
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"
Un paio di esempi di modello richiedono di caricare i file nell'archivio BLOB di Azure per l'area di lavoro. La procedura seguente esegue una query sull'area di lavoro e archivia queste informazioni nelle variabili di ambiente usate negli esempi:
Per seguire questo articolo, clonare prima di tutto il repository degli esempi (azureml-examples). Eseguire quindi il codice seguente per passare alla directory degli esempi:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
Suggerimento
Usare --depth 1 per clonare solo il commit più recente nel repository, riducendo il tempo necessario per completare l'operazione.
Definire l'endpoint
Per definire un endpoint online, specificare il nome dell'endpoint e la modalità di autenticazione. Per altre informazioni sugli endpoint online gestiti, vedere Endpoint online.
Per impostare il nome dell'endpoint eseguire il comando seguente. Sostituire YOUR_ENDPOINT_NAME con un nome univoco nell'area di Azure. Per altre informazioni sulle regole di denominazione, vedere i limiti degli endpoint.
Per Linux, eseguire questo comando:
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
Configurare l'endpoint
Il frammento di codice seguente mostra il file endpoints/online/managed/sample/endpoint.yml:
Il riferimento per il formato YAML dell'endpoint è descritto nella tabella seguente. Per informazioni su come specificare questi attributi, vedere le informazioni di riferimento sull'endpointYAML online. Per informazioni sui limiti correlati agli endpoint gestiti, vedere Limiti sugli endpoint online.
Chiave
Descrizione
$schema
(Facoltativo) Schema YAML. Per vedere tutte le opzioni disponibili nel file YAML, è possibile visualizzare in un browser lo schema incluso nel frammento di codice precedente.
name
Nome dell'endpoint.
auth_mode
Usare key per l'autenticazione basata su chiave. Usare aml_token per l'autenticazione basata su token di Azure Machine Learning. Usare aad_token per l'autenticazione basata su token di Microsoft Entra (anteprima). Per altre informazioni sull'autenticazione, vedere Eseguire l'autenticazione di client per endpoint online.
Configurare un endpoint
Definire prima di tutto il nome dell'endpoint online, quindi configurare l'endpoint.
Il nome dell'endpoint deve essere univoco nell'area di Azure. Per altre informazioni sulle regole di denominazione, vedere i limiti degli endpoint.
# 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"
)
Il codice precedente usa key per l'autenticazione basata su chiave. Per usare l'autenticazione basata su token di Azure Machine Learning, usare aml_token. Usare aad_token per l'autenticazione basata su token di Microsoft Entra (anteprima). Per altre informazioni sull'autenticazione, vedere Eseguire l'autenticazione di client per endpoint online.
Configurare un endpoint
Quando si esegue la distribuzione in Azure dallo studio, si creerà un endpoint e una distribuzione da aggiungere al suddetto. In tale occasione verrà richiesto di specificare i nomi per l'endpoint e la distribuzione.
Impostare il nome di un endpoint
Per impostare il nome dell'endpoint eseguire il comando seguente. Sostituire YOUR_ENDPOINT_NAME con un nome univoco nell'area di Azure. Per altre informazioni sulle regole di denominazione, vedere i limiti degli endpoint.
Per distribuzione si intende un set di risorse necessarie per ospitare il modello che esegue l'inferenza effettiva. Per questo esempio si distribuisce un modello scikit-learn che esegue la regressione e si usa uno script di assegnazione dei punteggi score.py per eseguire il modello su una determinata richiesta di input.
Per informazioni sugli attributi chiave di una distribuzione, vedere Distribuzioni online.
Configurare una distribuzione
La configurazione di distribuzione usa il percorso del modello da distribuire.
Il frammento di codice seguente mostra il file endpoints/online/managed/sample/blue-deployment.yml, con tutti gli input necessari per configurare una distribuzione:
Il file blue-deployment.yml specifica gli attributi di distribuzione seguenti:
model: specifica le proprietà del modello inline, usando path (da cui caricare i file). L'interfaccia della riga di comando carica automaticamente i file del modello e registra il modello con un nome generato automaticamente.
environment: usando le definizioni inline che includono da dove caricare i file, l'interfaccia della riga di comando carica automaticamente il file conda.yaml e registra l'ambiente. Successivamente, per compilare l'ambiente, la distribuzione usa image (in questo esempio è mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) per l'immagine di base e le dipendenze conda_file vengono installate sopra l'immagine di base.
code_configuration - Durante la distribuzione, i file locali, ad esempio l'origine Python per il modello di assegnazione dei punteggi, vengono caricati dall'ambiente di sviluppo.
Per usare gli endpoint Kubernetes anziché gli endpoint online gestiti come destinazione di calcolo:
Creare e collegare il cluster Kubernetes come destinazione di calcolo all'area di lavoro di Azure Machine Learning usando studio di Azure Machine Learning.
Usare l'endpoint YAML per specificare come destinazione Kubernetes anziché l'endpoint gestito YAML. È necessario modificare YAML per modificare il valore di compute con il nome della destinazione di calcolo registrata. È possibile usare questo file deployment.yaml con proprietà aggiuntive applicabili a una distribuzione di Kubernetes.
Tutti i comandi usati in questo articolo per gli endpoint online gestiti si applicano anche agli endpoint Kubernetes, ad eccezione delle funzionalità seguenti che non si applicano agli endpoint Kubernetes:
Model: specifica le proprietà del modello inline, usando path (da cui caricare i file). L'SDK carica automaticamente i file del modello e registra il modello con un nome generato automaticamente.
Environment: usando le definizioni inline che includono da dove caricare i file, l'SDK carica automaticamente il file conda.yaml e registra l'ambiente. Successivamente, per compilare l'ambiente, la distribuzione usa image (in questo esempio è mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest) per l'immagine di base e le dipendenze conda_file vengono installate sopra l'immagine di base.
CodeConfiguration - Durante la distribuzione, i file locali, ad esempio l'origine Python per il modello di assegnazione dei punteggi, vengono caricati dall'ambiente di sviluppo.
Per altre informazioni sulla definizione di distribuzione online, vedere Classe OnlineDeployment.
Configurare una distribuzione
Quando si esegue la distribuzione in Azure, si creerà un endpoint e una distribuzione da aggiungere al suddetto. In tale occasione verrà richiesto di specificare i nomi per l'endpoint e la distribuzione.
Informazioni sullo script di assegnazione dei punteggi
Suggerimento
Il formato dello script di assegnazione dei punteggi per gli endpoint online è lo stesso di quello usato nella versione precedente dell'interfaccia della riga di comando e in Python SDK.
Lo script di assegnazione dei punteggi specificato in code_configuration.scoring_script deve avere una funzione init() e una run().
Lo script di assegnazione dei punteggi deve avere una funzione init() e una run().
Lo script di assegnazione dei punteggi deve avere una funzione init() e una run().
Lo script di assegnazione dei punteggi deve avere una funzione init() e una run(). In questo articolo viene usato il file score.py.
Quando si usa un modello per la distribuzione, è prima necessario caricare il/i file di assegnazione dei punteggi in un archivio BLOB di Azure e quindi registrarlo:
L'esempio seguente usa il codice dell'interfaccia della riga di comando di Azure az storage blob upload-batch per caricare il/i file di punteggio:
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/score -s cli/endpoints/online/model-1/onlinescoring --account-name $AZURE_STORAGE_ACCOUNT
Il codice seguente registra il codice usando un modello:
az deployment group create -g $RESOURCE_GROUP \
--template-file arm-templates/code-version.json \
--parameters \
workspaceName=$WORKSPACE \
codeAssetName="score-sklearn" \
codeUri="https://$AZURE_STORAGE_ACCOUNT.blob.core.windows.net/$AZUREML_DEFAULT_CONTAINER/score"
In questo esempio viene usato il file score.py: score.py
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()
La init() funzione viene chiamata quando il contenitore viene inizializzato o avviato. L'inizializzazione si verifica in genere poco dopo la creazione o l'aggiornamento della distribuzione. La funzione init è la posizione in cui scrivere la logica per operazioni di inizializzazione globali, come ad esempio la memorizzazione nella cache del modello in memoria (come mostrato nel file score.py).
La funzione run() viene chiamata ogni volta che si invoca l'endpoint ed esegue l'assegnazione del punteggio e la stima effettive. In questo file score.py la funzione run() estrae i dati da un input JSON, chiama il metodo predict() del modello scikit-learn e restituisce il risultato della stima.
Distribuire ed eseguire il debug in locale usando un endpoint locale
È vivamente consigliabile testare l'endpoint in locale per convalidare ed eseguire il debug del codice e della configurazione prima di procedere alla distribuzione in Azure. L'interfaccia della riga di comando di Azure e Python SDK supportano endpoint e distribuzioni locali, mentre Studio di Azure Machine Learning e il modello ARM no.
È possibile usare il pacchetto Python del server HTTP di inferenza di Azure Machine Learning per eseguire il debug dello script di assegnazione dei punteggi in locale senza il motoreDocker. Il debug con il server di inferenza consente di eseguire il debug dello script di assegnazione dei punteggi prima della distribuzione negli endpoint locali in modo che sia possibile eseguire il debug senza alcun impatto sulle configurazioni del contenitore di distribuzione.
Creare prima di tutto un endpoint. Facoltativamente, per un endpoint locale, è possibile ignorare questo passaggio e creare direttamente la distribuzione (passaggio successivo), che a sua volta creerà i metadati necessari. La distribuzione dei modelli in locale è utile a scopo di sviluppo e test.
Studio non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Il modello non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Creare ora una distribuzione denominata blue nell'endpoint.
Il flag local=True indirizza l'SDK a distribuire l'endpoint nell'ambiente Docker.
Studio non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Il modello non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Studio non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Il modello non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Nella tabella seguente sono elencati i possibili valori di provisioning_state:
valore
Descrizione
Creazione
La risorsa è in fase di creazione.
Aggiornamento
La risorsa è in fase di aggiornamento.
Eliminazione in corso
La risorsa è in fase di eliminazione.
Completato
Operazione di creazione/aggiornamento completata.
Non riuscito
L'operazione di creazione/aggiornamento/eliminazione ha dato esito negativo.
Richiamare l'endpoint locale per assegnare un punteggio ai dati usando il modello
Richiamare l'endpoint per assegnare un punteggio al modello usando l'utile comando invoke e passando i parametri di query archiviati in un file JSON:
az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Se si desidera usare un client REST (ad esempio curl), è necessario disporre dell'URI di assegnazione dei punteggi. Per ottenere l'URI di assegnazione dei punteggi, eseguire az ml online-endpoint show --local -n $ENDPOINT_NAME. Nei dati restituiti trovare l'attributo scoring_uri.
Richiamare l'endpoint per assegnare un punteggio al modello usando l'utile comando invoke e passando i parametri di query archiviati in un file JSON.
Se si desidera usare un client REST (ad esempio curl), è necessario disporre dell'URI di assegnazione dei punteggi. Per ottenere l'URI di assegnazione dei punteggi, eseguire il codice seguente. Nei dati restituiti trovare l'attributo scoring_uri.
Studio non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Il modello non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Esaminare i log per l'output dell'operazione di chiamata
Nel file score.py di esempio, il metodo run() registra un output nella console.
Studio non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Il modello non supporta gli endpoint locali. Per testare l'endopoint in locale, vedere le schede dell'interfaccia della riga di comando di Azure o Python.
Distribuire l'endpoint online in Azure
A questo punto, distribuire l'endpoint online in Azure. Come procedura consigliata per la produzione, è consigliabile registrare il modello e l'ambiente che verranno usati nella distribuzione.
Registrare il modello e l'ambiente
È consigliabile registrare il modello e l'ambiente prima della distribuzione in Azure in modo da poter specificare i nomi e le versioni registrati durante la distribuzione. La registrazione degli asset consente di riutilizzarli senza la necessità di caricarli ogni volta che si creano distribuzioni, aumentando così la riproducibilità e la tracciabilità.
Nota
A differenza della distribuzione in Azure, la distribuzione locale non supporta l'uso di modelli e ambienti registrati. La distribuzione locale usa invece file di modello locali e usa ambienti solo con file locali.
Per la distribuzione in Azure, è possibile usare asset locali o registrati (modelli e ambienti). In questa sezione dell'articolo la distribuzione in Azure usa gli asset registrati, ma è possibile usare gli asset locali. Per un esempio di configurazione di distribuzione che carica i file locali da usare per la distribuzione locale, vedere Configurare una distribuzione.
Per registrare il modello e l'ambiente, usare il modulo model: azureml:my-model:1 o environment: azureml:my-env:1.
Per la registrazione, è possibile estrarre le definizioni YAML di model e environment in file YAML separati e usare i comandi az ml model create e az ml environment create. Per altre informazioni su questi comandi, eseguire az ml model create -h e 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)
Registrare l'ambiente:
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)
Una registrazione del modello è un'entità logica nell'area di lavoro che può contenere un singolo file di modello o una directory costituita da più file. Come procedura consigliata per la produzione, è necessario registrare il modello e l'ambiente. Prima di creare l'endpoint e la distribuzione in questo articolo,registrare la cartella del modello che contiene il modello.
Procedere come segue per registrare il modello di esempio:
Nella barra di navigazione a sinistra selezionare la pagina Modelli.
Selezionare Registra, quindi scegliere Da file locali.
Selezionare Tipo non specificato per Tipo di modello.
Selezionare Sfoglia, quindi selezionare Sfoglia cartella.
Selezionare la cartella \azureml-examples\cli\endpoints\online\model-1\model dalla copia locale del repository clonato o scaricato in precedenza. Quando richiesto, selezionare Carica e attendere il completamento del caricamento.
Selezionare Avanti al termine del caricamento della cartella.
Immettere un Nome descrittivo per il modello. I passaggi descritti in questo articolo presuppongono che il modello sia denominato model-1.
Selezionare Avanti e quindi Registra per completare la registrazione.
Nella barra di navigazione a sinistra selezionare la pagina Ambienti.
Seleziona Crea.
Nella pagina "Impostazioni" specificare un nome, ad esempio my-env per l'ambiente.
Per "Selezionare l'origine dell'ambiente", scegliere Usare l'immagine Docker esistente con l'origine conda facoltativa.
Selezionare Avanti per andare alla pagina "Personalizza".
Copiare il contenuto del file \azureml-examples\cli\endpoints\online\model-1\environment\conda.yaml dalla copia locale del repository clonato o scaricato in precedenza.
Incollare il contenuto nella casella di testo.
Selezionare Avanti fino a visualizzare la pagina di revisione.
Selezionare Crea.
Per altre informazioni sulla creazione di un ambiente in Studio, vedere Creare un ambiente.
Per registrare il modello usando un template, è prima necessario caricare il file del modello in un archivio BLOB di Azure. L'esempio seguente usa il comando az storage blob upload-batch per caricare un file nella risorsa di archiviazione predefinita per l'area di lavoro:
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/model -s cli/endpoints/online/model-1/model --account-name $AZURE_STORAGE_ACCOUNT
Dopo aver caricato il file, usare il modello per creare una registrazione del modello. Nell'esempio seguente il parametro modelUri contiene il percorso del modello:
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"
Parte dell'ambiente è un file conda che specifica le dipendenze del modello necessarie per ospitare il modello. Nell'esempio seguente viene illustrato come leggere il contenuto del file conda in variabili di ambiente:
Nell'esempio seguente viene illustrato come usare il modello per registrare l'ambiente. Il contenuto del file conda del passaggio precedente viene passato al modello usando il parametro condaFile:
Usare gli asset registrati (modello e ambiente) nella definizione di distribuzione. Il frammento di codice seguente mostra il file endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml, con tutti gli input necessari per configurare una distribuzione:
Quando si esegue la distribuzione dallo studio, si creerà un endpoint e una distribuzione da aggiungere al suddetto. In tale occasione verrà richiesto di specificare i nomi per l'endpoint e la distribuzione.
È possibile specificare i tipi di istanza CPU o GPU e le immagini nella definizione di distribuzione per la distribuzione locale e la distribuzione in Azure.
La definizione della distribuzione nel file blue-deployment-with-registered-assets.yml usa un'istanza Standard_DS3_v2di tipo generico e un'immagine Docker non GPU mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest. Per il calcolo GPU, scegliere uno SKU del tipo di calcolo GPU e un'immagine Docker GPU.
È possibile specificare i tipi di istanza CPU o GPU e le immagini nella configurazione della distribuzione sia per la distribuzione locale che per la distribuzione in Azure.
In precedenza è stata configurata una distribuzione che usava un'istanza Standard_DS3_v2 di tipo generico e un'immagine Docker non GPU mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest. Per il calcolo GPU, scegliere uno SKU del tipo di calcolo GPU e un'immagine Docker GPU.
Quando si usa Studio per eseguire la distribuzione in Azure, verrà richiesto di specificare le proprietà di calcolo (tipo di istanza e numero di istanze) e l'ambiente da usare per la distribuzione.
La registrazione precedente dell'ambiente specifica un'immagine Docker non GPU mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 passando il valore al modello environment-version.json usando il parametro dockerImage. Per un calcolo GPU, fornire un valore per un'immagine Docker GPU al modello (usando il parametro dockerImage) e fornire uno SKU del tipo di calcolo GPU al modello online-endpoint-deployment.json (usando il parametro skuName).
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
Creare la distribuzione denominata blue nell'endpoint.
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
La creazione della distribuzione può richiedere fino a 15 minuti a seconda che l'ambiente o l'immagine sottostante venga compilata per la prima volta. Le distribuzioni successive che usano lo stesso ambiente vengono elaborate più velocemente.
Suggerimento
Se si preferisce non bloccare la console dell'interfaccia della riga di comando, è possibile aggiungere il flag --no-wait al comando. Tuttavia, questa opzione arresterà la visualizzazione interattiva dello stato della distribuzione.
Importante
Il flag --all-traffic usato in az ml online-deployment create usato per creare la distribuzione alloca il 100% del traffico dell'endpoint alla distribuzione blu appena creata. Anche se questo è utile ai fini dello sviluppo e del test, per l'ambiente di produzione, potrebbe essere necessario instradare il traffico per la nuova distribuzione tramite un comando esplicito. Ad esempio: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
Creare l'endpoint:
Usando endpoint definito in precedenza e MLClient creato in precedenza, è ora possibile creare l'endpoint nell'area di lavoro. Questo comando avvia la creazione dell'endpoint e restituisce una risposta di conferma mentre la procedura è ancora in corso.
Usando blue_deployment_with_registered_assets definito in precedenza e MLClient creato in precedenza, è ora possibile creare la distribuzione nell'area di lavoro. Questo comando avvia la creazione della distribuzione e restituisce una risposta di conferma mentre la creazione della distribuzione è ancora in corso.
Se si preferisce non bloccare la console Python, è possibile aggiungere il flag no_wait=True ai parametri. Tuttavia, questa opzione arresterà la visualizzazione interattiva dello stato della distribuzione.
Creare un endpoint e una distribuzione online gestiti
Usare Studio per creare un endpoint online gestito direttamente nel browser. Quando si crea un endpoint online gestito in Studio, è necessario definire una distribuzione iniziale. Non è possibile creare un endpoint online gestito vuoto.
Un modo per creare un endpoint online gestito in Studio è dalla pagina Modelli. Questo metodo offre anche un modo semplice per aggiungere un modello a una distribuzione online gestita esistente. Per distribuire il modello denominato model-1 registrato in precedenza nella sezione Registrare il modello e l'ambiente:
Selezionare Avanti finché non si arriva alla pagina "Distribuzione". In questo caso, impostare diagnostica di Application Insights su Abilitato per consentire la visualizzazione di grafici delle attività dell'endpoint in Studio in un secondo momento e analizzare le metriche e i log tramite Application Insights.
Selezionare Avanti per passare alla pagina “Codice + Ambiente”. Successivamente, selezionare le opzioni seguenti:
Selezionare uno script di assegnazione dei punteggi per l'inferenza: esplorare e selezionare il file \azureml-examples\cli\endpoints\online\model-1\onlinescoring\score.py dal repository clonato e scaricato in precedenza.
Nella barra di navigazione a sinistra selezionare la pagina Endpoint.
Seleziona + Crea.
Questa azione apre una finestra in cui selezionare il modello e specificare i dettagli relativi all'endpoint e alla distribuzione. Immettere le impostazioni per l'endpoint e la distribuzione come descritto in precedenza, quindi Creare la distribuzione.
Elencare tutti gli endpoint nell'area di lavoro in un formato di tabella usando il metodo list:
for endpoint in ml_client.online_endpoints.list():
print(endpoint.name)
Il metodo restituisce un elenco (iteratore) di ManagedOnlineEndpoint entità.
Per ottenere altre informazioni, è possibile specificare altri parametri. Ad esempio, emettere l'elenco di endpoint come una tabella:
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}")
Visualizzare gli endpoint online gestiti
È possibile visualizzare tutti gli endpoint online gestiti nella pagina Endpoint. Andare alla pagina Dettagli dell'endpoint per trovare informazioni critiche, tra cui l'URI dell'endpoint, lo stato, gli strumenti di test, i monitoraggi attività, i log di distribuzione e il codice di consumo di esempio:
Nella barra di navigazione a sinistra selezionare Endpoint. Qui è possibile visualizzare un elenco di tutti gli endpoint nell'area di lavoro.
(Facoltativo) Creare un Filtro in Tipo di ambiente di calcolo per visualizzare solo gli ambienti di calcolo di tipo Gestito.
Selezionare un nome di endpoint per visualizzare la pagina Dettagli dell'endpoint.
Suggerimento
Anche se i modelli sono utili per la distribuzione delle risorse, non possono essere usati per elencare, visualizzare o richiamare risorse. Usare l'interfaccia della riga di comando di Azure, Python SDK o Studio per eseguire queste operazioni. Il codice seguente usa l'interfaccia della riga di comando di Azure.
Usare il comando show per visualizzare le informazioni in provisioning_state per l'endpoint e la distribuzione:
az ml online-endpoint show -n $ENDPOINT_NAME
Elencare tutti gli endpoint nell'area di lavoro in un formato di tabella usando il comando list:
az ml online-endpoint list --output table
Verificare lo stato della distribuzione online
Controllare i log per verificare se il modello è stato distribuito senza errori.
Per visualizzare l'output del log da un contenitore, usare il seguente comando dell'interfaccia della riga di comando:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Per impostazione predefinita, i log vengono estratti dal contenitore del server di inferenza. Per visualizzare i log dal contenitore dell'inizializzatore di archiviazione, aggiungere il flag --container storage-initializer. Per altre informazioni sui log di distribuzione, vedere Ottenere i log dai contenitori.
È possibile visualizzare questo output di log usando il metodo get_logs:
Per impostazione predefinita, i log vengono estratti dal contenitore del server di inferenza. Per visualizzare i log dal contenitore dell'inizializzatore di archiviazione, aggiungere l'opzione container_type="storage-initializer". Per altre informazioni sui log di distribuzione, vedere Ottenere i log dai contenitori.
Per visualizzare l'output del log, selezionare la scheda Log nella pagina dell'endpoint. Se nell'endpoint sono presenti diverse distribuzioni, usare l'elenco a discesa per selezionare la distribuzione di cui si desidera visualizzare il log.
Per impostazione predefinita, i log vengono estratti dal server di inferenza. Per visualizzare i log estratti dal contenitore dell'inizializzatore di archiviazione, usare l'interfaccia della riga di comando di Azure o Python SDK (per informazioni dettagliate vedere le singole schede). I log estratti dal contenitore dell'inizializzatore di archiviazione forniscono informazioni sul fatto che il codice e i dati del modello siano stati o meno scaricati correttamente nel contenitore. Per altre informazioni sui log di distribuzione, vedere Ottenere i log dai contenitori.
Suggerimento
Anche se i modelli sono utili per la distribuzione delle risorse, non possono essere usati per elencare, visualizzare o richiamare risorse. Usare l'interfaccia della riga di comando di Azure, Python SDK o Studio per eseguire queste operazioni. Il codice seguente usa l'interfaccia della riga di comando di Azure.
Per visualizzare l'output del log da un contenitore, usare il seguente comando dell'interfaccia della riga di comando:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Per impostazione predefinita, i log vengono estratti dal contenitore del server di inferenza. Per visualizzare i log dal contenitore dell'inizializzatore di archiviazione, aggiungere il flag --container storage-initializer. Per altre informazioni sui log di distribuzione, vedere Ottenere i log dai contenitori.
Richiamare l'endpoint per assegnare un punteggio ai dati usando il modello
Usare il comando invoke o un client REST di propria scelta per richiamare l'endpoint e assegnare un punteggio ad alcuni dati:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Ottenere la chiave usata per l'autenticazione all'endpoint:
Suggerimento
È possibile controllare quali entità di sicurezza di Microsoft Entra possono ottenere la chiave di autenticazione assegnandole a un ruolo personalizzato che consente Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action e Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action. Per altre informazioni sulla gestione dell'autorizzazione per le aree di lavoro, vedere Gestire l'accesso a un'area di lavoro di Azure Machine Learning.
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
Usare curl per assegnare punteggi ai dati.
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
Per visualizzare i log delle chiamate, eseguire nuovamente get-logs.
Usando il MLClient creato in precedenza, si ottiene un handle per l'endpoint. È quindi possibile richiamare l'endpoint usando il comando invoke con i parametri seguenti:
endpoint_name: nome dell'endpoint
request_file: file con i dati della richiesta
deployment_name: nome della distribuzione specifica da testare in un endpoint
Inviare una richiesta di esempio usando un file json.
# 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",
)
Usare la scheda Test nella pagina dei dettagli dell'endpoint per testare la distribuzione online gestita. Immettere l'input di esempio e visualizzare i risultati.
Selezionare la scheda Test nella pagina dei dettagli dell'endpoint.
Usare l'elenco a discesa per selezionare la distribuzione che si desidera testare.
Anche se i modelli sono utili per la distribuzione delle risorse, non possono essere usati per elencare, visualizzare o richiamare risorse. Usare l'interfaccia della riga di comando di Azure, Python SDK o Studio per eseguire queste operazioni. Il codice seguente usa l'interfaccia della riga di comando di Azure.
Usare il comando invoke o un client REST di propria scelta per richiamare l'endpoint e assegnare un punteggio ad alcuni dati:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file cli/endpoints/online/model-1/sample-request.json
Se si desidera aggiornare il codice, il modello o l'ambiente, aggiornare il file YAML ed eseguire il comando az ml online-endpoint update.
Nota
Se si aggiorna il numero di istanze (per ridimensionare la distribuzione) insieme ad altre impostazioni del modello (ad esempio codice, modello o ambiente) in un singolo comando update, l'operazione di ridimensionamento verrà eseguita per prima cosa, seguita dall'applicazione degli altri aggiornamenti. È consigliabile eseguire queste operazioni separatamente in un ambiente di produzione.
Per comprendere il funzionamento di update:
Aprire il file online/model-1/onlinescoring/score.py.
Modificare l'ultima riga della funzione init(): dopo logging.info("Init complete"), aggiungere logging.info("Updated successfully").
Salvare il file.
Eseguire questo comando:
az ml online-deployment update -n blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml
Nota
L'aggiornamento tramite YAML è dichiarativo. Ciò significa, che le modifiche nel file YAML si riflettono nelle risorse di Azure Resource Manager sottostanti (endpoint e distribuzioni). Un approccio dichiarativo facilita GitOps: tutte le modifiche apportate agli endpoint e alle distribuzioni (persino instance_count) passano attraverso YAML.
Suggerimento
È possibile usare parametri di aggiornamento generici, ad esempio il parametro --set, con il comando dell'interfaccia update della riga di comando per eseguire l'override degli attributi nel file YAML o e impostare attributi specifici senza passarli nel file YAML. L'uso di --set per attributi singoli è particolarmente utile negli scenari di sviluppo e test. Ad esempio, per aumentare il valore instance_count per la prima distribuzione, è possibile usare il flag --set instance_count=2. Tuttavia, poiché YAML non viene aggiornato, questa tecnica non facilita GitOps.
La specifica del file YAML NON è obbligatoria. Ad esempio, se si desidera testare un'impostazione di concorrenza diversa per una determinata distribuzione, è possibile provare qualcosa come az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4. Questa operazione manterrà tutte le configurazioni esistenti, ma aggiornerà solo i parametri specificati.
Poiché la funzione init() è stata modificata e viene eseguita al momento della creazione o modifica dell'endpoint, il messaggio Updated successfully verrà visualizzato nei log. Recuperare i log eseguendo:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Il comando update funziona anche con le distribuzioni locali. Usare lo stesso comando az ml online-deployment update con il flag --local.
Se si desidera aggiornare il codice, il modello o l'ambiente, aggiornare la configurazione ed eseguire il metodo online_deployments.begin_create_or_update di MLClient per creare o aggiornare una distribuzione.
Nota
Se si aggiorna il numero di istanze (per ridimensionare la distribuzione) insieme ad altre impostazioni del modello (come codice, modello o ambiente) in un singolo metodo begin_create_or_update, l'operazione di ridimensionamento verrà eseguita per prima cosa, seguita dall'applicazione di altri aggiornamenti. È consigliabile eseguire queste operazioni separatamente in un ambiente di produzione.
Per comprendere il funzionamento di begin_create_or_update:
Aprire il file online/model-1/onlinescoring/score.py.
Modificare l'ultima riga della funzione init(): dopo logging.info("Init complete"), aggiungere logging.info("Updated successfully").
Poiché la funzione init() è stata modificata e viene eseguita al momento della creazione o modifica dell'endpoint, il messaggio Updated successfully verrà visualizzato nei log. Recuperare i log eseguendo:
Il metodo begin_create_or_update funziona anche con le distribuzioni locali. Usare lo stesso metodo con il flag local=True.
Attualmente, Studio consente di apportare aggiornamenti solo al numero di istanze di una distribuzione. Usare le istruzioni seguenti per aumentare o ridurre le prestazioni di una singola distribuzione modificando il numero di istanze:
Aprire la pagina Dettagli dell'endpoint e trovare la scheda per la distribuzione che si desidera aggiornare.
Selezionare l'icona di modifica (icona a forma di matita) accanto al nome della distribuzione.
Aggiornare il numero di istanze associato alla distribuzione. È possibile scegliere tra Impostazione predefinita o Utilizzo della destinazione per "Tipo di scala di distribuzione".
Se si seleziona Impostazione predefinita, è anche possibile specificare un valore numerico per il numero di istanze.
Se si seleziona Utilizzo della destinazione, è possibile specificare i valori da usare per i parametri durante il ridimensionamento automatico della distribuzione.
Selezionare Aggiorna per completare l'aggiornamento dei numeri di istanze per la distribuzione.
Attualmente non è disponibile un'opzione per aggiornare la distribuzione usando un modello di Resource Manager.
Nota
L'aggiornamento alla distribuzione in questa sezione è un esempio di aggiornamento in sequenza sul posto.
Per un endpoint online gestito, la distribuzione viene aggiornata alla nuova configurazione con il 20% dei nodi alla volta. Ciò significa, che se la distribuzione ha 10 nodi, sono aggiornati 2 nodi alla volta.
Per un endpoint online Kubernetes, il sistema crea in modo iterativo una nuova istanza di distribuzione con la nuova configurazione ed eliminerà quella precedente.
Per l'utilizzo di produzione, è consigliabile prendere in considerazione la distribuzione blu-verde, che offre un'alternativa più sicura per l'aggiornamento di un servizio Web.
(Facoltativo) Configurare il ridimensionamento automatico
La scalabilità automatica usa automaticamente la quantità corretta di risorse per gestire il carico dell'applicazione. Gli endpoint online gestiti supportano la scalabilità automatica tramite l'integrazione con la funzionalità di scalabilità automatica di monitoraggio di Azure. Per configurare il ridimensionamento automatico, vedere Come ridimensionare automaticamente gli endpoint online.
(Facoltativo) Monitorare il contratto di servizio usando Monitoraggio di Azure
Per visualizzare le metriche e impostare gli avvisi in base al contratto di servizio, completare i passaggi descritti in Monitorare gli endpoint online.
(Facoltativo) Eseguire l'integrazione con Log Analytics
Il comando get-logs per l'interfaccia della riga di comando o il metodo get_logs per SDK fornisce solo le ultime centinaia di righe di log da un'istanza selezionata automaticamente. Tuttavia, Log Analytics consente di archiviare e analizzare i log in modo durevole. Per altre informazioni sull'uso della registrazione, vedere Monitorare gli endpoint online.
Se non si usa l'endpoint e la distribuzione, è necessario eliminarli. Eliminando l'endpoint, vengono eliminate anche tutte le distribuzioni sottostanti.