interactive_auth = InteractiveLoginAuthentication() #Set the interactive authentification ws = Workspace.get(name=AZURE_WORKSPACE_NAME, auth=interactive_auth, subscription_id=AZURE_SUBSCRIPTION_ID,resource_group=AZURE_RESOURCE_GROUP) service = Webservice(workspace=ws, name=SERVICE_NAME) #Get model MODEL_PATH = os.path.join(os.getcwd(),MODEL_PATH) wget.download(MODEL_URL,MODEL_PATH) #Register a new model new_model = Model.register(model_path = MODEL_PATH, model_name = MODEL_NAME, description = MODEL_DESCRIPTION, workspace = ws) #Create a new image CONDA_FILE_PATH = os.path.join(os.getcwd(),CONDA_FILE_PATH) wget.download(CONDA_FILE_URL,CONDA_FILE_PATH) inference_config = InferenceConfig(entry_script=EXECUTION_SCRIPT_PATH, runtime="python", conda_file=CONDA_FILE_PATH) #Update the service #service.update(image=None, tags=None, properties=None, description=None, auth_enabled=None, ssl_enabled=None, ssl_cert_pem_file=None, ssl_key_pem_file=None, ssl_cname=None, enable_app_insights=None, models=None, inference_config=None) service.update(models=[new_model],inference_config=inference_config) print(service.state) print(service.get_logs()) print("service ",SERVICE_NAME," was updated successefuly") variables.put("SCORING_URI",service.scoring_uri) print("END " + __file__)
from azureml.core import Workspace from azureml.core.webservice import Webservice # Requires the config to be downloaded first to the current working directory ws = Workspace.from_config() # Set with the deployment name name = "" # load existing web service service = Webservice(name=name, workspace=ws) service.update(enable_app_insights=True) logs = service.get_logs() for line in logs.split('\n'): print(line)
def deploy(ws_name,model_name,path_to_model, environment_name,register_environment,pip_packages,conda_packages, cpu_cores , memory_gb, path_to_entry_script,service_name): ''' Get Workspace ''' ws = Workspace.from_config() print("Got Workspace {}".format(ws_name)) ''' Register Model ''' model = Model.register(workspace = ws, model_path =path_to_model, model_name = model_name, ) print("Registered Model {}".format(model_name)) ''' Register Environment ''' # to install required packages if register_environment: env = Environment(environment_name) cd = CondaDependencies.create(pip_packages=pip_packages, conda_packages = conda_packages) env.python.conda_dependencies = cd # Register environment to re-use later env.register(workspace = ws) print("Registered Environment") myenv = Environment.get(workspace=ws, name=environment_name) # Uncomment to save environment # myenv.save_to_directory('./environ', overwrite=True) ''' Config Objects ''' aciconfig = AciWebservice.deploy_configuration( cpu_cores=cpu_cores, memory_gb=memory_gb, ) inference_config = InferenceConfig(entry_script=path_to_entry_script, environment=myenv) ''' Deploying ''' print("Deploying....... This may take a few mins, check the status in MLS after the function finishes executing") service = Model.deploy(workspace=ws, name=ws_name, models=[model], inference_config=inference_config, deployment_config=aciconfig, overwrite = True) service.wait_for_deployment(show_output=True) url = service.scoring_uri print(url) service = Webservice(ws,ws_name) print(service.get_logs()) return url