MLServer-Klasse
MLServer
azureml.deploy.server.MLServer
Basiswerte: azureml.deploy.operationalization.Operationalization
Dieses Modul bietet eine Dienstimplementierung für die ML Server-Instanz.
authentication
authentication(context)
Hinweis
Während Microsoft Entra-ID der neue Name für Azure Active Directory (Azure AD) ist, bleibt Azure AD in einigen fest kodierten Elementen wie Benutzeroberfläche-Feldern, Verbindungsanbietern, Fehlercodes und Cmdlets erhalten, um Störungen in bestehenden Umgebungen zu vermeiden. In diesem Artikel sind die beiden Namen austauschbar.
Überschreiben
Vom Framework aufgerufene Lebenszyklusmethode für die Authentifizierung. Ruft den Authentifizierungseinstiegspunkt für die Klassenhierarchie auf.
ML Server unterstützt zwei Formen von Authentifizierungskontexten:
LDAP: Tupel (Benutzername, Kennwort)
Azure Active Directory (AAD): dict {…}
access-token: str =4534535
Argumente
context
Der Authentifizierungskontext: LDAP, Azure Active Directory (AAD) oder vorhandene access-token-Zeichenfolge.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
create_or_update_service_pool
create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)
Erstellt oder aktualisiert den Pool für den veröffentlichten Webdienst mit der angegebenen anfänglichen und maximalen Poolgröße auf der ML Server-Instanz anhand von Name und Version.
Beispiel:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 1,
maximum_pool_size = 10)
<Response [200]>
>>>
Argumente
name
Der eindeutige Name des Webdiensts.
Version
Die Version des Webdiensts.
initial_pool_size
Die anfängliche Poolgröße für den Webdienst.
max_pool_size
Die maximale Poolgröße für den Webdienst. Diese darf nicht kleiner sein als „initial_pool_size“.
Gibt zurück
requests.models.Response: HTTP-Status, der angibt, ob die Anforderung erfolgreich übermittelt wurde.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
delete_service
delete_service(name, **opts)
einen Webdienst löschen
success = client.delete_service('example', version='v1.0.1')
print(success)
True
Argumente
name
Der Name des Webdiensts.
opts
Die Version des Webdiensts (version=’v1.0.1).
Gibt zurück
Ein bool
-Wert, der angibt, ob das Löschen des Diensts erfolgreich war.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
delete_service_pool
delete_service_pool(name, version, **opts)
Löscht den Pool für den veröffentlichten Webdienst auf der ML Server-Instanz anhand von Name und Version.
Beispiel:
>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>
Argumente
name
Der eindeutige Name des Webdiensts.
Version
Die Version des Webdiensts.
Gibt zurück
requests.models.Response: HTTP-Status, wenn der Pool für den Dienst gelöscht wurde.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
deploy_realtime
deploy_realtime(name, **opts)
Veröffentlicht einen neuen Echtzeitwebdienst auf der ML Server-Instanz anhand von Name und Version.
Alle Eingabe- und Ausgabetypen werden als pandas.DataFrame
definiert.
Beispiel:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.deploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
Hinweis
Die Verwendung von deploy_realtime() auf diese Weise ist identisch mit der Veröffentlichung eines Diensts mithilfe von deploy()
der Fluent-API.
Argumente
name
Der Name des Webdiensts.
opts
Die Diensteigenschaften, die als dict
veröffentlicht werden sollen. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:
version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.
description (str): Die Dienstbeschreibung.
alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume.
Gibt zurück
Eine neue Instanz von Service
, die den Echtzeitdienst als redeployed (erneut bereitgestellt) darstellt.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
deploy_service
deploy_service(name, **opts)
Veröffentlicht einen neuen Webdienst auf der ML Server-Instanz anhand von Name und Version.
Beispiel:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.deploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
Hinweis
Die Verwendung von deploy_service()
auf diese Weise ist identisch mit der Veröffentlichung eines Diensts mithilfe von deploy()
der Fluent-API.
Argumente
name
Der eindeutige Name des Webdiensts.
opts
Die Diensteigenschaften, die veröffentlicht werden sollen. Das dict-Element opts unterstützt die folgenden optionalen Eigenschaften:
version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.
description (str): Die Dienstbeschreibung.
code_str (str): Ein Python-Codeblock, der ausgeführt und ausgewertet werden soll.
init_str (str): Ein Python-Codeblock zum Initialisieren des Diensts.
code_fn (function): Eine Funktion, die ausgeführt und ausgewertet werden soll.
init_fn (function): Eine Funktion zum Initialisieren des Diensts.
objects (dict): Name und Wert der einzuschließenden Objekte.
models (dict): Name und Wert der einzuschließenden Modelle.
inputs (dict): Diensteingabeschema nach Name und Typ. Die folgenden Typen werden unterstützt:
INT
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
outputs (dict): Definiert das Ausgabeschema des Webdiensts. Wenn der Wert leer ist, gibt der Dienst keinen Antwortwert zurück. outputs sind als
{'x'=int}
- oder{'x': 'int'}
-Funktion eines Wörterbuchs definiert, die die Ausgabeparameternamen und die entsprechenden Datentypen beschreiben. Die folgenden Typen werden unterstützt:INT
float
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
artifacts (list): Eine Sammlung von Dateiartefakten, die zurückgegeben werden sollen. Der Dateiinhalt ist als Base64-Zeichenfolge codiert.
alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume. Wenn die Funktion code_fn bereitgestellt wird, verwendet sie standardmäßig diesen Funktionsnamen.
Gibt zurück
Eine neue Instanz von Service
, die den Dienst als deployed (bereitgestellt) darstellt.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
Destruktor
destructor()
Überschreiben
Zerstört die Lebenszyklusmethode, die vom Framework aufgerufen wird. Ruft Destruktoren für die Klassenhierarchie auf.
get_service
get_service(name, **opts)
Ruft einen Webdienst zur Nutzung ab.
service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
...
...
...
Argumente
name
Der Name des Webdiensts.
opts
Die optionale Version des Webdiensts. Im Fall von version=None
wird der neueste Dienst zurückgegeben.
Gibt zurück
Eine neue Instanz von Service
.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
get_service_pool_status
get_service_pool_status(name, version, **opts)
Ruft den Poolstatus auf jedem Computeknoten der ML Server-Instanz für die veröffentlichten Dienste mit dem angegebenen Namen und der angegebenen Version ab.
Beispiel:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 5,
maximum_pool_size = 5)
<Response [200]>
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Pending'}]
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Success'}]
Argumente
name
Der eindeutige Name des Webdiensts.
Version
Die Version des Webdiensts.
Gibt zurück
str: json – stellt den Poolstatus auf jedem Computeknoten für den bereitgestellten Dienst dar.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
initializer(http_client, config, adapters=None)
Überschreiben
Vom Framework während der Konstruktion aufgerufene Lebenszyklusmethode für die Initialisierung. Legt Attribute fest und ruft Initialisierer für die Klassenhierarchie auf.
Argumente
http_client
Die HTTP-Anforderungssitzung zum Verwalten und dauerhaften Speichern von Einstellungen über Anforderungen hinweg (Authentifizierung, Proxys).
config
Die globale Konfiguration.
adapter
Ein dict
-Element mit Transportadaptern nach URL.
list_services
list_services(name=None, **opts)
Listet die verschiedenen veröffentlichten Webdienste auf der ML Server-Instanz auf.
Der Name und die Version des Diensts sind optionale Angaben. Mit diesem Aufruf können Sie Dienstinformationen zu Folgendem abrufen:
Alle veröffentlichten Dienste
Alle Dienste mit Versionsangabe für einen bestimmten benannten Dienst
Eine bestimmte Version für einen benannten Dienst
Benutzer können diese Informationen zusammen mit dem Vorgang [get_service()](#getservice)
verwenden, um mit dem Webdienst zu interagieren und diesen zu nutzen.
Beispiel:
all_services = client.list_services()
all_versions_of_add_service = client.list_services('add-service')
add_service_v1 = client.list_services('add-service', version='v1')
Argumente
name
Der Name des Webdiensts.
opts
Die optionale Version des Webdiensts.
Gibt zurück
Ein list
-Element mit Dienstmetadaten.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
realtime_service
realtime_service(name)
Startet die Fluent-API-Verkettung von Eigenschaften zum Definieren eines Echtzeitwebdiensts.
Beispiel:
client.realtime_service('scoring')
.description('A new real-time web service')
.version('v1.0.0')
Argumente
name
Der Name des Webdiensts.
Gibt zurück
Eine RealtimeDefinition
-Instanz für die Fluent-API-Verkettung.
redeploy_realtime
redeploy_realtime(name, **opts)
Aktualisiert Eigenschaften für einen vorhandenen Echtzeitwebdienst auf dem Server nach Name und Version. Im Fall von version=None
wird der neueste Dienst aktualisiert.
Alle Eingabe- und Ausgabetypen werden als pandas.DataFrame
definiert.
Beispiel:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.redeploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
Hinweis
Die Verwendung von redeploy_realtime() auf diese Weise ist identisch mit der Aktualisierung eines Diensts mithilfe von redeploy()
der Fluent-API.
Argumente
name
Der Name des Webdiensts.
opts
Die zu aktualisierenden Diensteigenschaften als dict
. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:
version (str): Definiert die Webdienstversion.
description (str): Die Dienstbeschreibung.
alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume.
Gibt zurück
Eine neue Instanz von Service
, die den Echtzeitdienst als redeployed (erneut bereitgestellt) darstellt.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
redeploy_service
redeploy_service(name, **opts)
Aktualisiert Eigenschaften für einen vorhandenen Webdienst auf der ML Server-Instanz nach Name und Version. Im Fall von version=None
wird der neueste Dienst aktualisiert.
Beispiel:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.redeploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
Hinweis
Die Verwendung von redeploy_service() auf diese Weise ist identisch mit der Aktualisierung eines Diensts mithilfe von redeploy()
der Fluent-API.
Argumente
name
Der Name des Webdiensts.
opts
Die zu aktualisierenden Diensteigenschaften als dict
. Das opts-Element unterstützt die folgenden optionalen Eigenschaften:
version (str): Definiert eine eindeutige alphanumerische Bezeichnung für die Webdienstversion. Wenn die Version leer gelassen wird, wird an ihrer Stelle eine eindeutige GUID generiert. Dies ist während der Entwicklung eines Diensts nützlich, bevor der Autor bereit ist, offiziell eine semantische Version zur Freigabe zu veröffentlichen.
description (str): Die Dienstbeschreibung.
code_str (str): Ein Python-Codeblock, der ausgeführt und ausgewertet werden soll.
init_str (str): Ein Python-Codeblock zum Initialisieren des Diensts.
code_fn (function): Eine Funktion, die ausgeführt und ausgewertet werden soll.
init_fn (function): Eine Funktion zum Initialisieren des Diensts.
objects (dict): Name und Wert der einzuschließenden Objekte.
models (dict): Name und Wert der einzuschließenden Modelle.
inputs (dict): Diensteingabeschema nach Name und Typ. Die folgenden Typen werden unterstützt: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrame
outputs (dict): Definiert das Ausgabeschema des Webdiensts. Wenn der Wert leer ist, gibt der Dienst keinen Antwortwert zurück. outputs sind als
{'x'=int}
- oder{'x': 'int'}
-Funktion eines Wörterbuchs definiert, die die Ausgabeparameternamen und die entsprechenden Datentypen beschreiben. Die folgenden Typen werden unterstützt: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrameartifacts (list): Eine Sammlung von Dateiartefakten, die zurückgegeben werden sollen. Der Dateiinhalt ist als Base64-Zeichenfolge codiert.
alias (str): Der Name der Nutzungsfunktion. Der Standardwert lautet consume. Wenn die Funktion code_fn bereitgestellt wird, verwendet sie standardmäßig diesen Funktionsnamen.
Gibt zurück
Eine neue Instanz von Service
, die den Dienst als deployed (bereitgestellt) darstellt.
HttpException
Ruft bei einem HTTP-Fehler die ML Server-Instanz auf.
Dienst
service(name)
Startet die Fluent-API-Verkettung von Eigenschaften zum Definieren eines Standardwebdiensts.
Beispiel:
client.service('scoring')
.description('A new web service')
.version('v1.0.0')
Argumente
name
Der Name des Webdiensts.
Gibt zurück
Eine ServiceDefinition
-Instanz für die Fluent-API-Verkettung.