Řešení potíží s nasazením modelu
Nasazení služby zahrnuje mnoho prvků, včetně vytrénovaného modelu, konfigurace prostředí runtime, hodnoticího skriptu, image kontejneru a hostitele kontejneru. Řešení potíží s neúspěšným nasazením nebo chyby vzniklé při používání nasazené služby může být složité.
Kontrola stavu služby
V rámci prvotního kroku pro odstraňování potíží můžete zkontrolovat stav služby:
from azureml.core.webservice import AksWebservice
# Get the deployed service
service = AksWebservice(name='classifier-service', workspace=ws)
# Check its state
print(service.state)
Poznámka:
Pokud chcete zobrazit stav služby, musíte použít typ konkrétní výpočetní služby (například AksWebservice), nikoli obecný objekt WebService.
V případě provozní služby by měl být stav v pořádku.
Kontrola protokolů služby
Pokud služba není v pořádku nebo při jejím použití dochází k chybám, můžete si prohlédnout její protokoly:
print(service.get_logs())
Protokoly obsahují podrobné informace o zřizování služby a o zpracovávaných požadavcích a často vám můžou poskytnout přehled o příčině neočekávaných chyb.
Nasazení do místního kontejneru
Chyby nasazení a chyby za běhu můžete snáze diagnostikovat tím, že službu nasadíte jako kontejner v místní instanci Dockeru, třeba takto:
from azureml.core.webservice import LocalWebservice
deployment_config = LocalWebservice.deploy_configuration(port=8890)
service = Model.deploy(ws, 'test-svc', [model], inference_config, deployment_config)
Pak můžete místně nasazenou službu otestovat pomocí sady SDK:
print(service.run(input_data = json_data))
Následně můžete řešit problémy s běhovým modulem tím, že provedete změny v souboru bodování, na který je odkazováno v konfiguraci odvození, a znovu načtete službu bez opětovného nasazení (což lze udělat pouze s místní službou):
service.reload()
print(service.run(input_data = json_data))