Questo articolo illustra come distribuire il modello in un endpoint online da usare nell'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 e 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 lo studio per creare/gestire endpoint/distribuzioni online, è necessaria un'autorizzazione aggiuntiva "Microsoft.Resources/deployments/write" dal 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 queste risorse non sono disponibili e si vogliono 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 di aggiornamenti in alcuni SKU di macchine virtuali. 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 la distribuzione.
In alternativa, è possibile usare la quota dal pool di quote condivise di Azure Machine Learning per un periodo di tempo limitato. Gli utenti possono accedere alla quota da questo pool per eseguire test per un periodo di tempo limitato. Quando si usa lo 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 pool di quote condivise per un breve periodo di tempo in modo da poter eseguire test. 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 connette 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, sono necessari parametri di identificatore, ovvero una sottoscrizione, un gruppo di risorse e un nome dell'area di lavoro. Questi dettagli vengono usati in from MLClientazure.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 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 Autenticare i client per gli 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 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. Per usare l'autenticazione basata su token di Microsoft Entra (anteprima), usare aad_token. Per altre informazioni sull'autenticazione, vedere Autenticare i client per gli endpoint online.
Configurare un endpoint
Quando si esegue la distribuzione in Azure dallo studio, si creerà un endpoint e una distribuzione da aggiungere. 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 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 la path classe (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 dove caricare i file da, l'interfaccia della riga di comando carica automaticamente il conda.yaml file 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 conda_file dipendenze 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 impostando il nome della destinazione di calcolo registrata. È possibile usare questo file deployment.yaml con proprietà aggiuntive applicabili a una distribuzione 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 la path classe (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 dove caricare i file, l'SDK carica automaticamente il conda.yaml file 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 conda_file dipendenze 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 init() funzione e una run() funzione.
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(). Questo articolo usa 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:
Il codice seguente usa il comando dell'interfaccia della riga di comando az storage blob upload-batch di Azure per caricare i file di assegnazione dei punteggi:
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 init funzione è la posizione in cui scrivere la logica per operazioni di inizializzazione globali come la memorizzazione nella cache del modello in memoria (come illustrato in questo file score.py ).
La run() funzione viene chiamata ogni volta che viene richiamato l'endpoint ed esegue l'effettivo punteggio e la stima. In questo file score.py la run() funzione estrae i dati da un input JSON, chiama il metodo del predict() modello scikit-learn e quindi restituisce il risultato della stima.
Distribuire ed eseguire il debug in locale usando un endpoint locale
È consigliabile eseguire il test dell'endpoint in locale per convalidare ed eseguire il debug del codice e della configurazione prima di eseguire la 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.
Per altre informazioni sul debug degli endpoint online in locale prima della distribuzione in Azure, vedere Debug degli endpoint online.
Distribuire il modello in locale
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
Operazione di creazione/aggiornamento/eliminazione non riuscita.
Richiamare l'endpoint locale per assegnare un punteggio ai dati usando il modello
Richiamare l'endpoint per assegnare un punteggio al modello usando il invoke comando 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 il invoke comando 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, è necessario 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 spostamento 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 Usa immagine Docker esistente con origine conda facoltativa.
Selezionare Avanti per passare alla pagina "Personalizza".
Copiare il contenuto del \azureml-examples\cli\endpoints\online\model-1\environment\conda.yaml file dalla copia locale del repository clonato o scaricato in precedenza.
Incollare il contenuto nella casella di testo.
Selezionare Avanti finché non si arriva alla pagina "Rivedi".
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 endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml file, con tutti gli input necessari per configurare una distribuzione:
Quando si esegue la distribuzione da Studio, si creerà un endpoint e una distribuzione da aggiungere. 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 di distribuzione nel file blue-deployment-with-registered-assets.yml usa un'istanza del tipo Standard_DS3_v2 per utilizzo generico e un'immagine mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDocker non GPU. Per il calcolo GPU, scegliere uno SKU del tipo di calcolo GPU e un'immagine Docker GPU.
Per usare Kubernetes, anziché gli endpoint gestiti, come destinazione di calcolo, vedere Introduzione alla destinazione di calcolo kubernetes.
È 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 di tipo Standard_DS3_v2 generico e un'immagine mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestDocker non GPU. Per il calcolo GPU, scegliere uno SKU del tipo di calcolo GPU e un'immagine Docker GPU.
Per usare Kubernetes, anziché gli endpoint gestiti, come destinazione di calcolo, vedere Introduzione alla destinazione di calcolo kubernetes.
Quando si usa lo 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 sotto l'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 --all-traffic flag nel codice az ml online-deployment create usato per creare la distribuzione alloca il 100% del traffico dell'endpoint alla distribuzione blu appena creata. Anche se ciò è utile per scopi di sviluppo e test, per la produzione, potrebbe essere necessario instradare il traffico alla nuova distribuzione tramite un comando esplicito. Ad esempio: az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
Creare l'endpoint:
Usando i endpoint valori definiti in precedenza e MLClient creati 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 l'oggetto blue_deployment_with_registered_assets definito in precedenza e creato MLClient 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:
Nella barra di navigazione a sinistra selezionare la pagina Modelli.
Selezionare il modello denominato model-1 spuntando il cerchio accanto al nome.
Selezionare Distribuisci>Endpoint in tempo reale.
Questa azione apre una finestra in cui è possibile specificare i dettagli sull'endpoint.
Immettere un nome endpoint univoco nell'area di Azure. Per altre informazioni sulle regole di denominazione, vedere Limiti degli endpoint.
Mantenere la selezione predefinita: gestita per il tipo di calcolo.
Mantenere la selezione predefinita: autenticazione basata su chiave per il tipo di autenticazione. Per altre informazioni sull'autenticazione, vedere Autenticare i client per gli endpoint online.
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 e ambiente". Successivamente, selezionare le opzioni seguenti:
Selezionare uno script di assegnazione dei punteggi per l'inferenza: Sfoglia e selezionare il \azureml-examples\cli\endpoints\online\model-1\onlinescoring\score.py file dal repository clonato o scaricato in precedenza.
Selezionare la sezione Ambiente : selezionare Ambienti personalizzati e quindi selezionare l'ambiente my-env:1 creato in precedenza.
Selezionare Avanti, accettando le impostazioni predefinite, fino a quando non viene richiesto di creare la distribuzione.
Esaminare le impostazioni di distribuzione e selezionare il pulsante Crea.
In alternativa, è possibile creare un endpoint online gestito dalla pagina Endpoint in Studio.
Nella barra di navigazione a sinistra selezionare la pagina Endpoint.
Seleziona + Crea.
Questa azione apre una finestra per 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 list metodo :
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 più 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 show comando 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 list comando :
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 l'output del log usando il get_logs metodo :
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 invoke comando 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
Si noti che si usano show i comandi e get-credentials per ottenere le credenziali di autenticazione. Si noti anche che si sta usando il --query flag per filtrare solo gli attributi necessari. Per altre informazioni sul flag, vedere Eseguire query sull'output dei comandi dell'interfaccia della --query riga di comando di Azure.
Per visualizzare i log delle chiamate, eseguire nuovamente get-logs.
Usando l'oggetto MLClient creato in precedenza, ottenere un handle per l'endpoint. L'endpoint può quindi essere richiamato usando il invoke comando 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 invoke comando 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. Ovvero, se la distribuzione ha 10 nodi, vengono 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 elimina 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.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedere https://aka.ms/ContentUserFeedback.