Condividi tramite


Webservice Classe

Definisce la funzionalità di base per la distribuzione di modelli come endpoint servizio Web in Azure Machine Learning.

Il costruttore di servizi Web viene usato per recuperare una rappresentazione cloud di un oggetto Servizio Web associato all'area di lavoro specificata. Restituisce un'istanza di una classe figlio corrispondente al tipo specifico dell'oggetto Webservice recuperato. La classe Webservice consente di distribuire modelli di Machine Learning da un Model oggetto o Image .

Per altre informazioni sull'uso del servizio Web, vedere Distribuire modelli con Azure Machine Learning.

Inizializzare l'istanza del servizio Web.

Il costruttore webservice recupera una rappresentazione cloud di un oggetto Servizio Web associato all'area di lavoro specificata. Restituisce un'istanza di una classe figlio corrispondente al tipo specifico dell'oggetto Webservice recuperato.

Ereditarietà
Webservice

Costruttore

Webservice(workspace, name)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto workspace contenente l'oggetto Webservice da recuperare.

name
Necessario
str

Nome dell'oggetto Webservice da recuperare.

workspace
Necessario

Oggetto workspace contenente l'oggetto Webservice da recuperare.

name
Necessario
str

Nome dell'oggetto Webservice da recuperare.

Commenti

Nell'esempio seguente viene illustrato il modello di distribuzione consigliato in cui creare prima un oggetto di configurazione con il deploy_configuration metodo della classe figlio di Webservice (in questo caso AksWebservice) e quindi usare la configurazione con il deploy metodo della Model classe .


   # Set the web service configuration (using default here)
   aks_config = AksWebservice.deploy_configuration()

   # # Enable token auth and disable (key) auth on the webservice
   # aks_config = AksWebservice.deploy_configuration(token_auth_enabled=True, auth_enabled=False)

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb

Nell'esempio seguente viene illustrato come trovare un'istanza esistente AciWebservice in un'area di lavoro ed eliminarla, se esistente, in modo che il nome possa essere riutilizzato.


   from azureml.core.model import InferenceConfig
   from azureml.core.webservice import AciWebservice


   service_name = 'my-custom-env-service'

   inference_config = InferenceConfig(entry_script='score.py', environment=environment)
   aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)

   service = Model.deploy(workspace=ws,
                          name=service_name,
                          models=[model],
                          inference_config=inference_config,
                          deployment_config=aci_config,
                          overwrite=True)
   service.wait_for_deployment(show_output=True)

Esistono diversi modi per distribuire un modello come servizio Web, tra cui:

  • deploy metodo di per i Model modelli già registrati nell'area di lavoro.

  • deploy_from_image metodo di Webservice per le immagini già create da un modello.

  • deploy_from_model metodo di Webservice per i modelli già registrati nell'area di lavoro. Questo metodo creerà un'immagine.

  • deploy metodo di Webservice, che registrerà un modello e creerà un'immagine.

Per informazioni sull'uso dei servizi Web, vedere

La sezione Variabili elenca gli attributi di una rappresentazione locale dell'oggetto Servizio Web cloud. Queste variabili devono essere considerate di sola lettura. La modifica dei valori non verrà riflessa nell'oggetto cloud corrispondente.

Variabili

Nome Descrizione
auth_enabled

Indica se l'autenticazione è abilitata o meno per il servizio Web.

compute_type
str

Tipo di calcolo in cui viene distribuito il servizio Web.

created_time

Quando è stato creato il servizio Web.

azureml.core.Webservice.description

Descrizione dell'oggetto Webservice.

azureml.core.Webservice.tags

Dizionario di tag per l'oggetto Webservice.

azureml.core.Webservice.name

Nome del servizio Web.

azureml.core.Webservice.properties

Dizionario delle proprietà del valore della chiave per il servizio Web. Queste proprietà non possono essere modificate dopo la distribuzione, ma è possibile aggiungere nuove coppie chiave-valore.

created_by
str

Utente che ha creato il servizio Web.

error
str

Se il servizio Web non è riuscito a eseguire la distribuzione, questo conterrà il messaggio di errore per il motivo per cui non è riuscito.

azureml.core.Webservice.state

Stato corrente del servizio Web.

updated_time

Ora dell'ultimo aggiornamento del servizio Web.

azureml.core.Webservice.workspace

Area di lavoro di Azure Machine Learning che contiene questo servizio Web.

token_auth_enabled

Indica se il servizio Web dispone dell'autenticazione basata su token abilitata.

Metodi

check_for_existing_webservice

Controllare che il servizio Web esista.

delete

Eliminare questo servizio Web dall'area di lavoro associata.

Questa chiamata di funzione non è asincrona. La chiamata viene eseguita fino a quando la risorsa non viene eliminata. Un WebserviceException oggetto viene generato se si verifica un problema durante l'eliminazione del modello dal servizio gestione modelli.

deploy

Distribuire un servizio Web da zero o più Model oggetti.

Questa funzione registrerà tutti i file di modelli forniti e creerà un'immagine nel processo, tutti associati all'oggetto specificato Workspace. Usare questa funzione quando si dispone di una directory di modelli per la distribuzione che non è stata registrata in precedenza.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

deploy_from_image

Distribuire un servizio Web da un Image oggetto .

Usare questa funzione se è già stato creato un oggetto Image per un modello.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

deploy_from_model

Distribuire un servizio Web da zero o più Model oggetti.

Questa funzione è simile a deploy, ma non registra i modelli. Usare questa funzione se sono già registrati oggetti modello. Verrà creata un'immagine nel processo, associata all'area di lavoro specificata.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

deploy_local_from_model

Compilare e distribuire un LocalWebservice oggetto per i test.

Richiede l'installazione e la configurazione di Docker.

deserialize

Convertire un oggetto JSON di risposta del servizio di gestione modelli in un oggetto Webservice.

Avrà esito negativo se l'area di lavoro specificata non è l'area di lavoro in cui è registrato il servizio Web.

get_keys

Recuperare le chiavi di autenticazione per questo servizio Web.

get_logs

Recuperare i log per questo servizio Web.

get_token

Recuperare il token di autenticazione per questo servizio Web, con ambito all'utente corrente.

list

Elencare i servizi Web associati all'oggetto corrispondente Workspace.

I risultati restituiti possono essere filtrati usando parametri.

regen_key

Rigenerare una delle chiavi del servizio Web, ovvero la chiave 'Primaria' o 'Secondaria'.

Viene WebserviceException generato un oggetto se key non è specificato o non è 'Primario' o 'Secondario'.

run

Chiamare questo servizio Web con l'input specificato.

Metodo astratto implementato dalle classi figlio di Webservice.

serialize

Convertire questo oggetto Webservice in un dizionario serializzato JSON.

Usare deserialize per eseguire di nuovo la conversione in un oggetto Servizio Web.

update

Aggiornare i parametri del servizio Web.

Si tratta di un metodo astratto implementato dalle classi figlio di Webservice. I parametri possibili da aggiornare variano in base al tipo figlio del servizio Web. Ad esempio, per Istanze di Azure Container i servizi Web, vedere update per parametri specifici.

update_deployment_state

Aggiornare lo stato corrente dell'oggetto in memoria.

Eseguire un aggiornamento sul posto delle proprietà dell'oggetto in base allo stato corrente dell'oggetto cloud corrispondente. Utile principalmente per il polling manuale dello stato di creazione.

wait_for_deployment

Eseguire automaticamente il polling della distribuzione del servizio Web in esecuzione.

Attendere che il servizio Web raggiunga uno stato del terminale. Genera un'eccezione WebserviceException se raggiunge uno stato terminale non riuscito o supera il timeout specificato.

check_for_existing_webservice

Controllare che il servizio Web esista.

static check_for_existing_webservice(workspace, name, overwrite=False, request_func=None, check_func=None)

Parametri

Nome Descrizione
workspace
Necessario
name
Necessario
str
overwrite
Valore predefinito: False
request_func
<xref:function>

per richiedere al servizio di verificare se il nome del servizio esiste

Valore predefinito: None
check_func
<xref:function>

funzione per controllare il contenuto della risposta di request_func

Valore predefinito: None

Eccezioni

Tipo Descrizione

delete

Eliminare questo servizio Web dall'area di lavoro associata.

Questa chiamata di funzione non è asincrona. La chiamata viene eseguita fino a quando la risorsa non viene eliminata. Un WebserviceException oggetto viene generato se si verifica un problema durante l'eliminazione del modello dal servizio gestione modelli.

delete()

Eccezioni

Tipo Descrizione

deploy

Distribuire un servizio Web da zero o più Model oggetti.

Questa funzione registrerà tutti i file di modelli forniti e creerà un'immagine nel processo, tutti associati all'oggetto specificato Workspace. Usare questa funzione quando si dispone di una directory di modelli per la distribuzione che non è stata registrata in precedenza.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto Workspace a cui associare il servizio Web.

name
Necessario
str

Nome da assegnare al servizio distribuito. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri.

model_paths
Necessario

Elenco dei percorsi su disco per i file di modello o la cartella. Può essere un elenco vuoto.

image_config
Necessario

Oggetto ImageConfig utilizzato per determinare le proprietà Image necessarie.

deployment_config

Oggetto WebserviceDeploymentConfiguration usato per configurare il servizio Web. Se non ne viene specificato uno, verrà usato un oggetto di configurazione vuoto in base alla destinazione desiderata.

Valore predefinito: None
deployment_target

Oggetto ComputeTarget in cui distribuire il servizio Web. Poiché Istanze di Azure Container non è associatoComputeTarget, lasciare questo parametro impostato su Nessuno per eseguire la distribuzione in Istanze di Azure Container.

Valore predefinito: None
overwrite

Sovrascrivere il servizio esistente se il servizio con nome esiste già.

Valore predefinito: False

Restituisce

Tipo Descrizione

Oggetto Servizio Web corrispondente al servizio Web distribuito.

Eccezioni

Tipo Descrizione

deploy_from_image

Distribuire un servizio Web da un Image oggetto .

Usare questa funzione se è già stato creato un oggetto Image per un modello.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto Workspace a cui associare il servizio Web.

name
Necessario
str

Nome da assegnare al servizio distribuito. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri.

image
Necessario

Oggetto Image da distribuire.

deployment_config

Oggetto WebserviceDeploymentConfiguration usato per configurare il servizio Web. Se non ne viene specificato uno, verrà usato un oggetto di configurazione vuoto in base alla destinazione desiderata.

Valore predefinito: None
deployment_target

Oggetto ComputeTarget in cui distribuire il servizio Web. Poiché Istanze di Azure Container non è associatoComputeTarget, lasciare questo parametro impostato su Nessuno per eseguire la distribuzione in Istanze di Azure Container.

Valore predefinito: None
overwrite

Sovrascrivere il servizio esistente se il servizio con nome esiste già.

Valore predefinito: False

Restituisce

Tipo Descrizione

Oggetto Servizio Web corrispondente al servizio Web distribuito.

Eccezioni

Tipo Descrizione

deploy_from_model

Distribuire un servizio Web da zero o più Model oggetti.

Questa funzione è simile a deploy, ma non registra i modelli. Usare questa funzione se sono già registrati oggetti modello. Verrà creata un'immagine nel processo, associata all'area di lavoro specificata.

Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. Per altre informazioni, vedere Utilizzare un modello distribuito come servizio Web.

static deploy_from_model(workspace, name, models, image_config, deployment_config=None, deployment_target=None, overwrite=False)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto Workspace a cui associare il servizio Web.

name
Necessario
str

Nome da assegnare al servizio distribuito. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri.

models
Necessario

Elenco di oggetti modello. Può essere un elenco vuoto.

image_config
Necessario

Oggetto ImageConfig utilizzato per determinare le proprietà Image necessarie.

deployment_config

Oggetto WebserviceDeploymentConfiguration usato per configurare il servizio Web. Se non ne viene specificato uno, verrà usato un oggetto di configurazione vuoto in base alla destinazione desiderata.

Valore predefinito: None
deployment_target

Oggetto ComputeTarget in cui distribuire il servizio Web. Poiché ACI non ha associato ComputeTarget, lasciare questo parametro come Nessuno per la distribuzione in ACI.

Valore predefinito: None
overwrite

Sovrascrivere il servizio esistente se il servizio con nome esiste già.

Valore predefinito: False

Restituisce

Tipo Descrizione

Oggetto Servizio Web corrispondente al servizio Web distribuito.

Eccezioni

Tipo Descrizione

deploy_local_from_model

Compilare e distribuire un LocalWebservice oggetto per i test.

Richiede l'installazione e la configurazione di Docker.

static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto Workspace al quale associare il servizio Web.

name
Necessario
str

Nome da assegnare al servizio distribuito. Deve essere univoco nel computer locale.

models
Necessario

Elenco di oggetti modello. Può essere un elenco vuoto.

image_config
Necessario

Oggetto ImageConfig utilizzato per determinare le proprietà dell'immagine del servizio necessarie.

deployment_config

LocalWebserviceDeploymentConfiguration usato per configurare il servizio Web. Se non ne viene specificato uno, verrà utilizzato un oggetto di configurazione vuoto.

Valore predefinito: None
wait

Indica se attendere che il contenitore Docker di LocalWebservice venga visualizzato come integro. Genera un'eccezione se il contenitore si arresta in modo anomalo. Il valore predefinito è False.

Valore predefinito: False

Restituisce

Tipo Descrizione

Eccezioni

Tipo Descrizione

deserialize

Convertire un oggetto JSON di risposta del servizio di gestione modelli in un oggetto Webservice.

Avrà esito negativo se l'area di lavoro specificata non è l'area di lavoro in cui è registrato il servizio Web.

deserialize(workspace, webservice_payload)

Parametri

Nome Descrizione
cls
Necessario

Indica che si tratta di un metodo di classe.

workspace
Necessario

L'oggetto area di lavoro in cui è registrato il servizio Web.

webservice_payload
Necessario

Oggetto JSON da convertire in un oggetto Webservice.

Restituisce

Tipo Descrizione

Rappresentazione del servizio Web dell'oggetto JSON specificato.

Eccezioni

Tipo Descrizione

get_keys

Recuperare le chiavi di autenticazione per questo servizio Web.

get_keys()

Restituisce

Tipo Descrizione
(str, str)

Chiavi di autenticazione per questo servizio Web.

Eccezioni

Tipo Descrizione

get_logs

Recuperare i log per questo servizio Web.

get_logs(num_lines=5000, init=False)

Parametri

Nome Descrizione
num_lines
int

Numero massimo di righe di log da recuperare.

Valore predefinito: 5000
init

Ottenere i log del contenitore init

Valore predefinito: False

Restituisce

Tipo Descrizione
str

Log per questo servizio Web.

Eccezioni

Tipo Descrizione

get_token

Recuperare il token di autenticazione per questo servizio Web, con ambito all'utente corrente.

get_token()

Restituisce

Tipo Descrizione

Token di autenticazione per questo servizio Web e quando deve essere aggiornato dopo.

Eccezioni

Tipo Descrizione

list

Elencare i servizi Web associati all'oggetto corrispondente Workspace.

I risultati restituiti possono essere filtrati usando parametri.

static list(workspace, compute_type=None, image_name=None, image_id=None, model_name=None, model_id=None, tags=None, properties=None, image_digest=None)

Parametri

Nome Descrizione
workspace
Necessario

Oggetto Workspace in cui elencare i servizi Web.

compute_type
str

Filtra per elencare solo tipi di servizi Web specifici. Le opzioni sono "ACI", "servizio Azure Kubernetes".

Valore predefinito: None
image_name
str

Elenco di filtri per includere solo i servizi Web distribuiti con il nome dell'immagine specifico.

Valore predefinito: None
image_id
str

Elenco di filtri per includere solo i servizi Web distribuiti con l'ID immagine specifico.

Valore predefinito: None
model_name
str

Elenco di filtri per includere solo i servizi Web distribuiti con il nome del modello specifico.

Valore predefinito: None
model_id
str

Elenco di filtri per includere solo i servizi Web distribuiti con l'ID modello specifico.

Valore predefinito: None
tags

Filtrare in base all'elenco specificato, in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]

Valore predefinito: None
properties

Filtrare in base all'elenco specificato, in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]

Valore predefinito: None
image_digest
str

Elenco di filtri per includere solo i servizi Web distribuiti con il digest dell'immagine specifico.

Valore predefinito: None

Restituisce

Tipo Descrizione

Elenco filtrato di servizi Web nell'area di lavoro specificata.

Eccezioni

Tipo Descrizione

regen_key

Rigenerare una delle chiavi del servizio Web, ovvero la chiave 'Primaria' o 'Secondaria'.

Viene WebserviceException generato un oggetto se key non è specificato o non è 'Primario' o 'Secondario'.

regen_key(key, set_key=None)

Parametri

Nome Descrizione
key
Necessario
str

Chiave da rigenerare. Le opzioni sono 'Primary' o 'Secondary'.

set_key
str

Valore specificato dall'utente che consente la specifica manuale del valore della chiave

Valore predefinito: None

Eccezioni

Tipo Descrizione

run

Chiamare questo servizio Web con l'input specificato.

Metodo astratto implementato dalle classi figlio di Webservice.

abstract run(input)

Parametri

Nome Descrizione
input
Necessario
<xref:varies>

Dati di input con cui chiamare il servizio Web. Si tratta dei dati previsti dal modello di Machine Learning come input per l'esecuzione delle stime.

Restituisce

Tipo Descrizione

Risultato della chiamata al servizio Web. Verranno restituite le stime eseguite dal modello di Machine Learning.

Eccezioni

Tipo Descrizione

serialize

Convertire questo oggetto Webservice in un dizionario serializzato JSON.

Usare deserialize per eseguire di nuovo la conversione in un oggetto Servizio Web.

serialize()

Restituisce

Tipo Descrizione

Rappresentazione JSON di questo servizio Web.

Eccezioni

Tipo Descrizione

update

Aggiornare i parametri del servizio Web.

Si tratta di un metodo astratto implementato dalle classi figlio di Webservice. I parametri possibili da aggiornare variano in base al tipo figlio del servizio Web. Ad esempio, per Istanze di Azure Container i servizi Web, vedere update per parametri specifici.

abstract update(*args)

Parametri

Nome Descrizione
args
Necessario
<xref:varies>

Valori da aggiornare.

Eccezioni

Tipo Descrizione

update_deployment_state

Aggiornare lo stato corrente dell'oggetto in memoria.

Eseguire un aggiornamento sul posto delle proprietà dell'oggetto in base allo stato corrente dell'oggetto cloud corrispondente. Utile principalmente per il polling manuale dello stato di creazione.

update_deployment_state()

Eccezioni

Tipo Descrizione

wait_for_deployment

Eseguire automaticamente il polling della distribuzione del servizio Web in esecuzione.

Attendere che il servizio Web raggiunga uno stato del terminale. Genera un'eccezione WebserviceException se raggiunge uno stato terminale non riuscito o supera il timeout specificato.

wait_for_deployment(show_output=False, timeout_sec=None)

Parametri

Nome Descrizione
show_output

Indica se stampare un output più dettagliato.

Valore predefinito: False
timeout_sec

Generare un'eccezione se la distribuzione supera il timeout specificato.

Valore predefinito: None

Eccezioni

Tipo Descrizione