Webservice Classe
Définit les fonctionnalités de base pour le déploiement de modèles en tant que points de terminaison de service web sur Azure Machine Learning.
Le constructeur Webservice permet de récupérer une représentation cloud d’un objet Webservice associé à l’espace de travail fourni. Retourne une instance d’une classe enfant correspondant au type spécifique de l’objet Webservice récupéré. La classe Webservice permet de déployer des modèles Machine Learning à partir d’un objet Model ou Image.
Pour plus d’informations sur l’utilisation de Webservice, consultez Déployer des modèles avec Azure Machine Learning.
Initialisez le instance webservice.
Le constructeur webservice récupère une représentation cloud d’un objet Webservice associé à l’espace de travail fourni. Elle retourne une instance d’une classe enfant correspondant au type spécifique de l’objet Webservice récupéré.
- Héritage
-
Webservice
Constructeur
Webservice(workspace, name)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet d’espace de travail contenant l’objet Webservice à récupérer. |
name
Obligatoire
|
Nom de l’objet Webservice à récupérer. |
workspace
Obligatoire
|
Objet d’espace de travail contenant l’objet Webservice à récupérer. |
name
Obligatoire
|
Nom de l’objet Webservice à récupérer. |
Remarques
L’exemple suivant montre le modèle de déploiement recommandé dans lequel vous créez d’abord un objet de configuration avec la méthode deploy_configuration
de la classe enfant de Webservice (dans ce cas, AksWebservice), puis utilisez la configuration avec la méthode deploy
de la classe Model.
# 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)
Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb
L’exemple suivant montre comment rechercher un AciWebservice existant dans un espace de travail et le supprimer s’il existe afin que le nom puisse être réutilisé.
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)
Il existe plusieurs façons de déployer un modèle en tant que service web, notamment avec les méthodes suivantes :
Méthode
deploy
de Model pour les modèles déjà inscrits dans l’espace de travail.méthode
deploy_from_image
de Webservice pour les images déjà créées à partir d’un modèle.Méthode
deploy_from_model
de Webservice pour les modèles déjà inscrits dans l’espace de travail. Cette méthode permet de créer une image.Méthode
deploy
de Webservice, qui inscrit un modèle et crée une image.
Pour plus d’informations sur l’utilisation des services web, consultez
La section Variables liste les attributs d’une représentation locale de l’objet WebService cloud. Ces variables doivent être considérées comme étant en lecture seule. La modification de leurs valeurs ne sera pas répercutée dans l’objet cloud correspondant.
Variables
Nom | Description |
---|---|
auth_enabled
|
Indique si l’authentification est activée ou non pour le service web. |
compute_type
|
Type de calcul sur lequel le service web est déployé. |
created_time
|
Date/heure de création du service web. |
azureml.core.Webservice.description
|
Description de l’objet Webservice. |
azureml.core.Webservice.tags
|
Dictionnaire d’étiquettes pour l’objet Webservice. |
azureml.core.Webservice.name
|
Nom du service web. |
azureml.core.Webservice.properties
|
Dictionnaire des propriétés clé-valeur du service web. Vous ne pouvez pas changer ces propriétés après le déploiement. Toutefois, vous pouvez ajouter de nouvelles paires clé-valeur. |
created_by
|
Utilisateur qui a créé le service web. |
error
|
En cas d’échec du déploiement du service web, le message d’erreur indique la raison de l’échec. |
azureml.core.Webservice.state
|
État actuel du service web. |
updated_time
|
Dernière mise à jour du service web. |
azureml.core.Webservice.workspace
|
Espace de travail Azure Machine Learning qui contient ce service web. |
token_auth_enabled
|
Indique si l’authentification de jeton est activée ou non pour le service web. |
Méthodes
check_for_existing_webservice |
Vérifie que le service web existe. |
delete |
Supprime ce service web de l’espace de travail qui lui est associé. Cet appel de fonction n’est pas asynchrone. L’appel s’exécute jusqu’à ce que la ressource soit supprimée. Une exception WebserviceException est déclenchée en cas de problème lors de la suppression du modèle du service de gestion des modèles. |
deploy |
Déploie un service web à partir de zéro ou plusieurs objets Model. Cette fonction inscrira tous les fichiers de modèle fournis et créera une image durant le processus, tous associés au Workspace spécifié. Utilisez cette fonction lorsque vous disposez d’un répertoire de modèles à déployer qui n’ont pas été inscrits précédemment. Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web. |
deploy_from_image |
Déploie un service web à partir d’un objet Image. Utilisez cette fonction si vous disposez déjà d’un objet Image créé pour un modèle. Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web. |
deploy_from_model |
Déploie un service web à partir de zéro ou plusieurs objets Model. Cette fonction est similaire à deploy, mais n’inscrit pas les modèles. Utilisez cette fonction si vous avez des objets de modèle déjà inscrits. Cette opération crée une image au cours du processus, associée à l’espace de travail spécifié. Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web. |
deploy_local_from_model |
Génère et déploie un LocalWebservice à des fins de test. Exige l’installation et la configuration de Docker. |
deserialize |
Convertit un objet JSON de réponse au service Gestion des modèles en objet Webservice. Échoue si l’espace de travail fourni n’est pas celui sous lequel le service web est inscrit. |
get_keys |
Récupère des clés d’authentification pour ce service web. |
get_logs |
Récupère les journaux pour ce service web. |
get_token |
Récupère le jeton d’authentification de ce service web, limité à l’utilisateur actif. |
list |
Liste les services web associés au Workspace correspondant. Les résultats retournés peuvent être filtrés à l’aide de paramètres. |
regen_key |
Regénère l’une des clés du service web, soit la clé « Primary » ou la clé « Secondary ». Une exception WebserviceException est levée si |
run |
Appelle ce Webservice avec l’entrée fournie. Méthode abstraite implémentée par les classes enfants de Webservice. |
serialize |
Convertit cet objet Webservice en dictionnaire JSON sérialisé. Utilisez deserialize pour le reconvertir en objet Webservice. |
update |
Met à jour les paramètres de Webservice. Cette méthode abstraite est implémentée par les classes enfants de Webservice. Les paramètres qu’il est possible de mettre à jour varient en fonction du type d’enfant du service web. Par exemple, pour les services web Azure Container Instances, consultez update pour connaître les paramètres spécifiques. |
update_deployment_state |
Actualise l’état actuel de l’objet en mémoire. Effectue une mise à jour sur place des propriétés de l’objet en fonction de l’état actuel de l’objet cloud correspondant. Sert principalement à interroger manuellement l’état de la création. |
wait_for_deployment |
Interroge automatiquement sur le déploiement du service web en cours d’exécution. Attend que le service web atteigne un état terminal. Lève une exception WebserviceException s’il atteint un état terminal infructueux ou dépasse le délai d’expiration indiqué. |
check_for_existing_webservice
Vérifie que le service web existe.
static check_for_existing_webservice(workspace, name, overwrite=False, request_func=None, check_func=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
|
name
Obligatoire
|
|
overwrite
|
Valeur par défaut: False
|
request_func
|
<xref:function>
fonction pour demander au service de vérifier si le nom du service existe Valeur par défaut: None
|
check_func
|
<xref:function>
fonction permettant de vérifier le contenu de la réponse de request_func Valeur par défaut: None
|
Exceptions
Type | Description |
---|---|
delete
Supprime ce service web de l’espace de travail qui lui est associé.
Cet appel de fonction n’est pas asynchrone. L’appel s’exécute jusqu’à ce que la ressource soit supprimée. Une exception WebserviceException est déclenchée en cas de problème lors de la suppression du modèle du service de gestion des modèles.
delete()
Exceptions
Type | Description |
---|---|
deploy
Déploie un service web à partir de zéro ou plusieurs objets Model.
Cette fonction inscrira tous les fichiers de modèle fournis et créera une image durant le processus, tous associés au Workspace spécifié. Utilisez cette fonction lorsque vous disposez d’un répertoire de modèles à déployer qui n’ont pas été inscrits précédemment.
Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web.
static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet Workspace auquel associer le service web. |
name
Obligatoire
|
Nom à donner au service déployé. Doit être unique à l’espace de travail, ne comporter que des lettres minuscules, des chiffres ou des tirets, commencer par une lettre et comporter entre 3 et 32 caractères. |
model_paths
Obligatoire
|
Liste des chemins sur disque vers les fichiers ou le dossier du modèle. Peut être une liste vide. |
image_config
Obligatoire
|
Objet ImageConfig utilisé pour déterminer les propriétés d’image nécessaires. |
deployment_config
|
WebserviceDeploymentConfiguration utilisée pour configurer le service web. En l’absence d’indication, un objet de configuration vide est utilisé en fonction de la cible souhaitée. Valeur par défaut: None
|
deployment_target
|
ComputeTarget sur lequel déployer le service web. Comme Azure Container Instances n’est associé à aucun ComputeTarget, laissez ce paramètre défini sur None pour effectuer un déploiement sur Azure Container Instances. Valeur par défaut: None
|
overwrite
|
Remplace le service existant si un service du même nom existe déjà. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Objet Webservice correspondant au service web déployé. |
Exceptions
Type | Description |
---|---|
deploy_from_image
Déploie un service web à partir d’un objet Image.
Utilisez cette fonction si vous disposez déjà d’un objet Image créé pour un modèle.
Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web.
static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet Workspace auquel associer le service web. |
name
Obligatoire
|
Nom à donner au service déployé. Doit être unique à l’espace de travail, ne comporter que des lettres minuscules, des chiffres ou des tirets, commencer par une lettre et comporter entre 3 et 32 caractères. |
image
Obligatoire
|
Objet Image à déployer. |
deployment_config
|
WebserviceDeploymentConfiguration utilisée pour configurer le service web. En l’absence d’indication, un objet de configuration vide est utilisé en fonction de la cible souhaitée. Valeur par défaut: None
|
deployment_target
|
ComputeTarget sur lequel déployer le service web. Comme Azure Container Instances n’est associé à aucun ComputeTarget, laissez ce paramètre défini sur None pour effectuer un déploiement sur Azure Container Instances. Valeur par défaut: None
|
overwrite
|
Remplace le service existant si un service du même nom existe déjà. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Objet Webservice correspondant au service web déployé. |
Exceptions
Type | Description |
---|---|
deploy_from_model
Déploie un service web à partir de zéro ou plusieurs objets Model.
Cette fonction est similaire à deploy, mais n’inscrit pas les modèles. Utilisez cette fonction si vous avez des objets de modèle déjà inscrits. Cette opération crée une image au cours du processus, associée à l’espace de travail spécifié.
Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. Pour plus d’informations, consultez Utiliser un modèle déployé en tant que service web.
static deploy_from_model(workspace, name, models, image_config, deployment_config=None, deployment_target=None, overwrite=False)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet Workspace auquel associer le service web. |
name
Obligatoire
|
Nom à donner au service déployé. Doit être unique à l’espace de travail, ne comporter que des lettres minuscules, des chiffres ou des tirets, commencer par une lettre et comporter entre 3 et 32 caractères. |
models
Obligatoire
|
Liste d’objets de modèle. Peut être une liste vide. |
image_config
Obligatoire
|
Objet ImageConfig utilisé pour déterminer les propriétés d’image nécessaires. |
deployment_config
|
WebserviceDeploymentConfiguration utilisée pour configurer le service web. En l’absence d’indication, un objet de configuration vide est utilisé en fonction de la cible souhaitée. Valeur par défaut: None
|
deployment_target
|
ComputeTarget sur lequel déployer le service web. Comme aucun ComputeTarget n’est associé à ACI, laissez ce paramètre défini sur None pour le déployer sur ACI. Valeur par défaut: None
|
overwrite
|
Remplace le service existant si un service du même nom existe déjà. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Objet Webservice correspondant au service web déployé. |
Exceptions
Type | Description |
---|---|
deploy_local_from_model
Génère et déploie un LocalWebservice à des fins de test.
Exige l’installation et la configuration de Docker.
static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet Workspace auquel associer le service web. |
name
Obligatoire
|
Nom à donner au service déployé. Doit être unique sur l’ordinateur local. |
models
Obligatoire
|
Liste d’objets de modèle. Peut être une liste vide. |
image_config
Obligatoire
|
Objet ImageConfig utilisé pour déterminer les propriétés d’image de service nécessaires. |
deployment_config
|
Objet LocalWebserviceDeploymentConfiguration utilisé pour configurer le service web. Si aucun objet de configuration n’est fourni, un objet de configuration vide est utilisé. Valeur par défaut: None
|
wait
|
Indique s’il faut attendre que le conteneur Docker de LocalWebservice se signale comme sain. Lève une exception si le conteneur se bloque. La valeur par défaut est False. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Exceptions
Type | Description |
---|---|
deserialize
Convertit un objet JSON de réponse au service Gestion des modèles en objet Webservice.
Échoue si l’espace de travail fourni n’est pas celui sous lequel le service web est inscrit.
deserialize(workspace, webservice_payload)
Paramètres
Nom | Description |
---|---|
cls
Obligatoire
|
Indique qu’il s’agit d’une méthode de classe. |
workspace
Obligatoire
|
Objet d’espace de travail sous lequel le service web est inscrit. |
webservice_payload
Obligatoire
|
Objet JSON à convertir en objet Webservice. |
Retours
Type | Description |
---|---|
Représentation Webservice de l’objet JSON fourni. |
Exceptions
Type | Description |
---|---|
get_keys
Récupère des clés d’authentification pour ce service web.
get_keys()
Retours
Type | Description |
---|---|
Clés d’authentification pour ce service web. |
Exceptions
Type | Description |
---|---|
get_logs
Récupère les journaux pour ce service web.
get_logs(num_lines=5000, init=False)
Paramètres
Nom | Description |
---|---|
num_lines
|
Nombre maximal de lignes de journal à récupérer. Valeur par défaut: 5000
|
init
|
Obtient les journaux du conteneur init Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Journaux pour ce service web. |
Exceptions
Type | Description |
---|---|
get_token
Récupère le jeton d’authentification de ce service web, limité à l’utilisateur actif.
get_token()
Retours
Type | Description |
---|---|
Jeton d’authentification de ce service Web et le moment auquel il doit être actualisé après. |
Exceptions
Type | Description |
---|---|
list
Liste les services web associés au Workspace correspondant.
Les résultats retournés peuvent être filtrés à l’aide de paramètres.
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)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet Workspace dans lequel lister les services web. |
compute_type
|
Filtre pour lister uniquement des types de services web spécifiques. Les options sont « ACI » et « AKS ». Valeur par défaut: None
|
image_name
|
Filtre la liste pour inclure uniquement les services web déployés avec le nom d’image spécifique. Valeur par défaut: None
|
image_id
|
Filtre la liste pour inclure uniquement les services web déployés avec l’ID d’image spécifique. Valeur par défaut: None
|
model_name
|
Filtre la liste pour inclure uniquement les services web déployés avec le nom de modèle spécifique. Valeur par défaut: None
|
model_id
|
Filtre la liste pour inclure uniquement les services web déployés avec l’ID de modèle spécifique. Valeur par défaut: None
|
tags
|
Filtre en fonction de la liste fournie, selon les paramètres « key » ou « [key, value] ». Ex. ['key', ['key2', 'key2 value']] Valeur par défaut: None
|
properties
|
Filtre en fonction de la liste fournie, selon les paramètres « key » ou « [key, value] ». Ex. ['key', ['key2', 'key2 value']] Valeur par défaut: None
|
image_digest
|
Filtre la liste pour inclure uniquement les services web déployés avec la synthèse d’image spécifique. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Liste filtrée des services web dans l’espace de travail fourni. |
Exceptions
Type | Description |
---|---|
regen_key
Regénère l’une des clés du service web, soit la clé « Primary » ou la clé « Secondary ».
Une exception WebserviceException est levée si key
n’est pas spécifié ou n’a pas la valeur « Primary » ou « Secondary ».
regen_key(key, set_key=None)
Paramètres
Nom | Description |
---|---|
key
Obligatoire
|
Clé à regénérer. Les options sont « Primary » et « Secondary ». |
set_key
|
Valeur spécifiée par l’utilisateur qui permet une spécification manuelle de la valeur de la clé Valeur par défaut: None
|
Exceptions
Type | Description |
---|---|
run
Appelle ce Webservice avec l’entrée fournie.
Méthode abstraite implémentée par les classes enfants de Webservice.
abstract run(input)
Paramètres
Nom | Description |
---|---|
input
Obligatoire
|
<xref:varies>
Données d’entrée avec lesquelles appeler le service web. Il s’agit des données que votre modèle Machine Learning attend comme entrée pour exécuter des prédictions. |
Retours
Type | Description |
---|---|
Résultat de l’appel du service Web. Retourne les prédictions exécutées à partir de votre modèle Machine Learning. |
Exceptions
Type | Description |
---|---|
serialize
Convertit cet objet Webservice en dictionnaire JSON sérialisé.
Utilisez deserialize pour le reconvertir en objet Webservice.
serialize()
Retours
Type | Description |
---|---|
Représentation JSON de ce Webservice. |
Exceptions
Type | Description |
---|---|
update
Met à jour les paramètres de Webservice.
Cette méthode abstraite est implémentée par les classes enfants de Webservice. Les paramètres qu’il est possible de mettre à jour varient en fonction du type d’enfant du service web. Par exemple, pour les services web Azure Container Instances, consultez update pour connaître les paramètres spécifiques.
abstract update(*args)
Paramètres
Nom | Description |
---|---|
args
Obligatoire
|
<xref:varies>
Valeurs à mettre à jour. |
Exceptions
Type | Description |
---|---|
update_deployment_state
Actualise l’état actuel de l’objet en mémoire.
Effectue une mise à jour sur place des propriétés de l’objet en fonction de l’état actuel de l’objet cloud correspondant. Sert principalement à interroger manuellement l’état de la création.
update_deployment_state()
Exceptions
Type | Description |
---|---|
wait_for_deployment
Interroge automatiquement sur le déploiement du service web en cours d’exécution.
Attend que le service web atteigne un état terminal. Lève une exception WebserviceException s’il atteint un état terminal infructueux ou dépasse le délai d’expiration indiqué.
wait_for_deployment(show_output=False, timeout_sec=None)
Paramètres
Nom | Description |
---|---|
show_output
|
Indique s’il est nécessaire d’imprimer une sortie plus détaillée. Valeur par défaut: False
|
timeout_sec
|
Lève une exception si le déploiement dépasse le délai d’expiration donné. Valeur par défaut: None
|
Exceptions
Type | Description |
---|---|