Lär dig hur du kommer åt Azure-resurser från ditt bedömningsskript med en onlineslutpunkt och antingen en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet.
Både hanterade slutpunkter och Kubernetes-slutpunkter gör det möjligt för Azure Mašinsko učenje att hantera bördan med att etablera beräkningsresursen och distribuera maskininlärningsmodellen. Vanligtvis behöver din modell komma åt Azure-resurser, till exempel Azure Container Registry eller din bloblagring för slutsatsdragning. med en hanterad identitet kan du komma åt dessa resurser utan att behöva hantera autentiseringsuppgifter i koden. Läs mer om hanterade identiteter.
Om du vill använda Azure Mašinsko učenje måste du ha en Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Mašinsko učenje i dag.
En Azure-resursgrupp där du (eller tjänstens huvudnamn du använder) måste ha användaråtkomstadministratör och deltagaråtkomst . Du har en sådan resursgrupp om du har konfigurerat ML-tillägget enligt föregående artikel.
En Azure Machine Learning-arbetsyta. Du har redan en arbetsyta om du har konfigurerat ML-tillägget enligt föregående artikel.
En tränad maskininlärningsmodell som är redo för bedömning och distribution. Om du följer med i exemplet tillhandahålls en modell.
Om du inte redan har angett standardinställningarna för Azure CLI sparar du standardinställningarna. Kör den här koden för att undvika att skicka in värdena för din prenumeration, arbetsyta och resursgrupp flera gånger:
az account set --subscription <subscription ID>
az configure --defaults gitworkspace=<Azure Machine Learning workspace name> group=<resource group>
Om du vill följa med i exemplet klonar du exempellagringsplatsen och ändrar sedan katalogen till cli.
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Om du vill använda Azure Mašinsko učenje måste du ha en Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Mašinsko učenje i dag.
En Azure-resursgrupp där du (eller tjänstens huvudnamn du använder) måste ha användaråtkomstadministratör och deltagaråtkomst . Du har en sådan resursgrupp om du har konfigurerat ML-tillägget enligt föregående artikel.
En Azure Machine Learning-arbetsyta. Du har en arbetsyta om du har konfigurerat ML-tillägget enligt artikeln ovan.
En tränad maskininlärningsmodell som är redo för bedömning och distribution. Om du följer med i exemplet tillhandahålls en modell.
Om du inte redan har angett standardinställningarna för Azure CLI sparar du standardinställningarna. Kör den här koden för att undvika att skicka in värdena för din prenumeration, arbetsyta och resursgrupp flera gånger:
az account set --subscription <subscription ID>
az configure --defaults gitworkspace=<Azure Machine Learning workspace name> group=<resource group>
Om du vill följa med i exemplet klonar du exempellagringsplatsen och ändrar sedan katalogen till cli.
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Om du vill använda Azure Mašinsko učenje måste du ha en Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Mašinsko učenje i dag.
En Azure-resursgrupp där du (eller tjänstens huvudnamn du använder) måste ha användaråtkomstadministratör och deltagaråtkomst . Du har en sådan resursgrupp om du har konfigurerat ML-tillägget enligt föregående artikel.
En Azure Machine Learning-arbetsyta. Du har redan en arbetsyta om du har konfigurerat ML-tillägget enligt föregående artikel.
En tränad maskininlärningsmodell som är redo för bedömning och distribution. Om du följer med i exemplet tillhandahålls en modell.
Klona exempellagringsplatsen och ändra sedan katalogen.
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/sdk/endpoints/online/managed/managed-identities
Om du vill använda Azure Mašinsko učenje måste du ha en Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Mašinsko učenje i dag.
Behörigheter för att skapa roller för din prenumeration eller de Azure-resurser som används av den användartilldelade identiteten.
En Azure-resursgrupp där du (eller tjänstens huvudnamn du använder) måste ha användaråtkomstadministratör och deltagaråtkomst . Du har en sådan resursgrupp om du har konfigurerat ML-tillägget enligt föregående artikel.
En Azure Machine Learning-arbetsyta. Du har redan en arbetsyta om du har konfigurerat ML-tillägget enligt föregående artikel.
En tränad maskininlärningsmodell som är redo för bedömning och distribution. Om du följer med i exemplet tillhandahålls en modell.
Klona exempellagringsplatsen.
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/sdk/endpoints/online/managed/managed-identities
Identiteten för en slutpunkt är oföränderlig. När slutpunkten skapas kan du associera den med en systemtilldelad identitet (standard) eller en användartilldelad identitet. Du kan inte ändra identiteten när slutpunkten har skapats.
Om arc- och bloblagringen har konfigurerats som privata, dvs. bakom ett virtuellt nätverk, bör åtkomsten från Kubernetes-slutpunkten vara via den privata länken oavsett om din arbetsyta är offentlig eller privat. Mer information om inställningen för privat länk finns i Så här skyddar du arbetsytans virtuella nätverk.
Konfigurera variabler för distribution
Konfigurera variabelnamnen för arbetsytan, arbetsytans plats och slutpunkten som du vill skapa för användning med distributionen.
Ange sedan vad du vill ge bloblagringskontot, blobcontainern och filen namnet. Dessa variabelnamn definieras här och refereras till i az storage account create och az storage container create kommandon i nästa avsnitt.
Följande kod exporterar dessa värden som miljövariabler:
När dessa variabler har exporterats skapar du en textfil lokalt. När slutpunkten distribueras kommer bedömningsskriptet åt den här textfilen med hjälp av den systemtilldelade hanterade identiteten som genereras när slutpunkten skapas.
Bestäm namnet på slutpunkten, arbetsytan och arbetsytans plats och exportera sedan värdet som en miljövariabel:
Ange sedan vad du vill ge bloblagringskontot, blobcontainern och filen namnet. Dessa variabelnamn definieras här och refereras till i az storage account create och az storage container create kommandon i nästa avsnitt.
När dessa variabler har exporterats skapar du en textfil lokalt. När slutpunkten distribueras kommer bedömningsskriptet åt den här textfilen med hjälp av den användartilldelade hanterade identiteten som används i slutpunkten.
Bestäm namnet på ditt användaridentitetsnamn och exportera värdet som en miljövariabel:
export UAI_NAME="<USER_ASSIGNED_IDENTITY_NAME>"
Tilldela värden för arbetsytan och distributionsrelaterade variabler:
Ange sedan vad du vill ge bloblagringskontot, blobcontainern och filen namnet. Dessa variabelnamn definieras här och refereras till i lagringskontot och koden för att skapa containrar av StorageManagementClient och ContainerClient.
När dessa variabler har tilldelats skapar du en textfil lokalt. När slutpunkten distribueras kommer bedömningsskriptet åt den här textfilen med hjälp av den systemtilldelade hanterade identiteten som genereras när slutpunkten skapas.
Hämta nu ett handtag till arbetsytan och hämta dess plats:
from azure.ai.ml import MLClient
from azure.identity import AzureCliCredential
from azure.ai.ml.entities import (
ManagedOnlineDeployment,
ManagedOnlineEndpoint,
Model,
CodeConfiguration,
Environment,
)
credential = AzureCliCredential()
ml_client = MLClient(credential, subscription_id, resource_group, workspace_name)
workspace_location = ml_client.workspaces.get(workspace_name).location
Använd det här värdet för att skapa ett lagringskonto.
Tilldela värden för arbetsytan och distributionsrelaterade variabler:
Ange sedan vad du vill ge bloblagringskontot, blobcontainern och filen namnet. Dessa variabelnamn definieras här och refereras till i lagringskontot och koden för att skapa containrar av StorageManagementClient och ContainerClient.
När dessa variabler har tilldelats skapar du en textfil lokalt. När slutpunkten distribueras kommer bedömningsskriptet åt den här textfilen med hjälp av den användartilldelade hanterade identiteten som genereras när slutpunkten skapas.
Bestäm namnet på användaridentitetens namn:
uai_name = "<USER_ASSIGNED_IDENTITY_NAME>"
Hämta nu ett handtag till arbetsytan och hämta dess plats:
from azure.ai.ml import MLClient
from azure.identity import AzureCliCredential
from azure.ai.ml.entities import (
ManagedOnlineDeployment,
ManagedOnlineEndpoint,
Model,
CodeConfiguration,
Environment,
)
credential = AzureCliCredential()
ml_client = MLClient(credential, subscription_id, resource_group, workspace_name)
workspace_location = ml_client.workspaces.get(workspace_name).location
Använd det här värdet för att skapa ett lagringskonto.
Om du vill distribuera en onlineslutpunkt med CLI måste du definiera konfigurationen i en YAML-fil. Mer information om YAML-schemat finns i YAML-referensdokumentet för onlineslutpunkten.
YAML-filerna i följande exempel används för att skapa onlineslutpunkter.
Följande YAML-exempel finns vid slutpunkter/online/managed/managed-identities/1-sai-create-endpoint. Filen,
Definierar namnet som du vill referera till slutpunkten, my-sai-endpoint.
Anger vilken typ av auktorisering som ska användas för att komma åt slutpunkten, auth-mode: key.
Om du vill distribuera en onlineslutpunkt med CLI måste du definiera konfigurationen i en YAML-fil. Mer information om YAML-schemat finns i YAML-referensdokumentet för onlineslutpunkten.
YAML-filerna i följande exempel används för att skapa onlineslutpunkter.
Följande YAML-exempel finns på slutpunkter/online/managed/managed-identities/1-uai-create-endpoint. Filen,
Definierar namnet som du vill referera till slutpunkten, my-uai-endpoint.
Anger vilken typ av auktorisering som ska användas för att komma åt slutpunkten, auth-mode: key.
Anger den identitetstyp som ska användas, type: user_assigned
Om du vill distribuera en onlineslutpunkt med Python SDK (v2) kan objekt användas för att definiera följande konfiguration. Alternativt kan YAML-filer läsas in med hjälp av .load metoden .
Följande Python-slutpunktsobjekt:
Tilldelar det namn med vilket du vill referera till slutpunkten till variabeln endpoint_name.
Anger vilken typ av auktorisering som ska användas för att komma åt slutpunkten auth-mode="key".
Om du vill distribuera en onlineslutpunkt med Python SDK (v2) kan objekt användas för att definiera följande konfiguration. Alternativt kan YAML-filer läsas in med hjälp av .load metoden .
För en användartilldelad identitet definierar du slutpunktskonfigurationen när den användartilldelade hanterade identiteten har skapats.
Det här distributionsobjektet:
Anger att den typ av distribution som du vill skapa är en ManagedOnlineDeployment via -klassen.
Anger att slutpunkten har en associerad distribution med namnet blue.
Konfigurerar information om distributionen, till exempel name och instance_count
Definierar fler objekt infogade och associerar dem med distributionen för Model,CodeConfiguration, och Environment.
Innehåller miljövariabler som krävs för att den användartilldelade hanterade identiteten ska få åtkomst till lagring.
Lägger till en platshållarmiljövariabel för UAI_CLIENT_ID, som läggs till när du har skapat en och innan du distribuerar den här konfigurationen.
deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=endpoint_name,
model=Model(path="../../model-1/model/"),
code_configuration=CodeConfiguration(
code="../../model-1/onlinescoring/", scoring_script="score_managedidentity.py"
),
environment=Environment(
conda_file="../../model-1/environment/conda-managedidentity.yml",
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest",
),
instance_type="Standard_DS3_v2",
instance_count=1,
environment_variables={
"STORAGE_ACCOUNT_NAME": storage_account_name,
"STORAGE_CONTAINER_NAME": storage_container_name,
"FILE_NAME": file_name,
# We will update this after creating an identity
"UAI_CLIENT_ID": "uai_client_id_place_holder",
},
)
Skapa den hanterade identiteten
Om du vill komma åt Azure-resurser skapar du en systemtilldelad eller användartilldelad hanterad identitet för din onlineslutpunkt.
I det här exemplet skapar du ett bloblagringskonto och en blobcontainer och laddar sedan upp den tidigare skapade textfilen till blobcontainern. Du ger onlineslutpunkten och den hanterade identiteten åtkomst till det här lagringskontot och blobcontainern.
Ladda sedan upp en blob till containern med ContainerClient:
with open(file_name, "rb") as f:
container_client.upload_blob(name=file_name, data=f.read())
Skapa en onlineslutpunkt
Följande kod skapar en onlineslutpunkt utan att ange någon distribution.
Varning
Identiteten för en slutpunkt är oföränderlig. När slutpunkten skapas kan du associera den med en systemtilldelad identitet (standard) eller en användartilldelad identitet. Du kan inte ändra identiteten när slutpunkten har skapats.
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/managed-identities/1-uai-create-endpoint.yml --set identity.user_assigned_identities[0].resource_id=$uai_id
Kontrollera statusen för slutpunkten med följande.
Ge åtkomstbehörighet till den hanterade identiteten
Viktigt!
Onlineslutpunkter kräver pull-behörighet för Azure Container Registry, AcrPull-behörighet till containerregistret och behörigheten Storage Blob Data Reader till arbetsytans standarddatalager.
Du kan ge onlineslutpunkten behörighet att komma åt lagringen via dess systemtilldelade hanterade identitet eller ge behörighet till den användartilldelade hanterade identiteten för att få åtkomst till lagringskontot som skapades i föregående avsnitt.
Hämta den systemtilldelade hanterade identiteten som skapades för slutpunkten.
system_identity=`az ml online-endpoint show --name $ENDPOINT_NAME --query "identity.principal_id" -o tsv`
Härifrån kan du ge den systemtilldelade hanterade identiteten behörighet att komma åt din lagring.
az role assignment create --assignee-object-id $system_identity --assignee-principal-type ServicePrincipal --role "Storage Blob Data Reader" --scope $storage_id
Hämta användartilldelat klient-ID för hanterad identitet.
uai_clientid=`az identity list --query "[?name=='$UAI_NAME'].clientId" -o tsv`
uai_principalid=`az identity list --query "[?name=='$UAI_NAME'].principalId" -o tsv`
Hämta det användartilldelade hanterade identitets-ID:t.
uai_id=`az identity list --query "[?name=='$UAI_NAME'].id" -o tsv`
Hämta containerregistret som är associerat med arbetsytan.
container_registry=`az ml workspace show --name $WORKSPACE --query container_registry -o tsv`
Hämta standardlagringen för arbetsytan.
storage_account=`az ml workspace show --name $WORKSPACE --query storage_account -o tsv`
Ge behörighet för lagringskontot till den användartilldelade hanterade identiteten.
az role assignment create --assignee-object-id $uai_principalid --assignee-principal-type ServicePrincipal --role "Storage Blob Data Reader" --scope $storage_id
Ge behörighet för containerregistret till användartilldelad hanterad identitet.
az role assignment create --assignee-object-id $uai_principalid --assignee-principal-type ServicePrincipal --role "AcrPull" --scope $container_registry
Ge behörighet för standardlagring av arbetsytor till användartilldelad hanterad identitet.
az role assignment create --assignee-object-id $uai_principalid --assignee-principal-type ServicePrincipal --role "Storage Blob Data Reader" --scope $storage_account
Börja med att göra en AuthorizationManagementClient lista över rolldefinitioner:
from azure.mgmt.authorization import AuthorizationManagementClient
from azure.mgmt.authorization.v2018_01_01_preview.models import RoleDefinition
import uuid
role_definition_client = AuthorizationManagementClient(
credential=credential,
subscription_id=subscription_id,
api_version="2018-01-01-preview",
)
Tilldela sedan rollen Storage Blob Data Reader till slutpunkten. Rolldefinitionen hämtas med namn och skickas tillsammans med slutpunktens huvudnamns-ID. Rollen tillämpas i omfånget för lagringskontot som skapades ovan och gör att slutpunkten kan läsa filen.
role_name = "Storage Blob Data Reader"
scope = storage_account.id
role_defs = role_definition_client.role_definitions.list(scope=scope)
role_def = next((r for r in role_defs if r.role_name == role_name))
role_assignment_client.role_assignments.create(
scope=scope,
role_assignment_name=str(uuid.uuid4()),
parameters=RoleAssignmentCreateParameters(
role_definition_id=role_def.id, principal_id=system_principal_id
),
)
Börja med att göra en AuthorizationManagementClient lista över rolldefinitioner:
from azure.mgmt.authorization import AuthorizationManagementClient
from azure.mgmt.authorization.v2018_01_01_preview.models import RoleDefinition
import uuid
role_definition_client = AuthorizationManagementClient(
credential=credential,
subscription_id=subscription_id,
api_version="2018-01-01-preview",
)
Hämta sedan huvud-ID och klient-ID för den användartilldelade hanterade identiteten. För att tilldela roller behöver du bara huvud-ID:t. Du använder dock klient-ID:t för att fylla UAI_CLIENT_ID platshållarmiljövariabeln innan du skapar distributionen.
Tilldela sedan rollen Storage Blob Data Reader till slutpunkten. Rolldefinitionen hämtas med namn och skickas tillsammans med huvud-ID:t för slutpunkten. Rollen används i omfånget för lagringskontot som skapades ovan så att slutpunkten kan läsa filen.
role_name = "Storage Blob Data Reader"
scope = storage_account.id
role_defs = role_definition_client.role_definitions.list(scope=scope)
role_def = next((r for r in role_defs if r.role_name == role_name))
role_assignment_client.role_assignments.create(
scope=scope,
role_assignment_name=str(uuid.uuid4()),
parameters=RoleAssignmentCreateParameters(
role_definition_id=role_def.id,
principal_id=uai_principal_id,
principal_type="ServicePrincipal",
),
)
För de kommande två behörigheterna behöver du arbetsytan och containerregisterobjekten:
Tilldela sedan rollen AcrPull till den användartilldelade identiteten. Med den här rollen kan avbildningar hämtas från ett Azure Container Registry. Omfånget tillämpas på nivån för det containerregister som är associerat med arbetsytan.
role_name = "AcrPull"
scope = container_registry
role_defs = role_definition_client.role_definitions.list(scope=scope)
role_def = next((r for r in role_defs if r.role_name == role_name))
role_assignment_client.role_assignments.create(
scope=scope,
role_assignment_name=str(uuid.uuid4()),
parameters=RoleAssignmentCreateParameters(
role_definition_id=role_def.id,
principal_id=uai_principal_id,
principal_type="ServicePrincipal",
),
)
Tilldela slutligen rollen Storage Blob Data Reader till slutpunkten i arbetsytans lagringskontoomfång. Med den här rolltilldelningen kan slutpunkten läsa blobar i arbetsytans lagringskonto samt det nyligen skapade lagringskontot.
Rollen har samma namn och funktioner som den första rollen som tilldelades ovan, men den tillämpas i ett annat omfång och har ett annat ID.
role_name = "Storage Blob Data Reader"
scope = workspace.storage_account
role_defs = role_definition_client.role_definitions.list(scope=scope)
role_def = next((r for r in role_defs if r.role_name == role_name))
role_assignment_client.role_assignments.create(
scope=scope,
role_assignment_name=str(uuid.uuid4()),
parameters=RoleAssignmentCreateParameters(
role_definition_id=role_def.id,
principal_id=uai_principal_id,
principal_type="ServicePrincipal",
),
)
Bedömningsskript för åtkomst till Azure-resurs
Se följande skript för att förstå hur du använder din identitetstoken för att komma åt Azure-resurser, i det här scenariot det lagringskonto som skapades i föregående avsnitt.
import os
import logging
import json
import numpy
import joblib
import requests
from azure.identity import ManagedIdentityCredential
from azure.storage.blob import BlobClient
def access_blob_storage_sdk():
credential = ManagedIdentityCredential(client_id=os.getenv("UAI_CLIENT_ID"))
storage_account = os.getenv("STORAGE_ACCOUNT_NAME")
storage_container = os.getenv("STORAGE_CONTAINER_NAME")
file_name = os.getenv("FILE_NAME")
blob_client = BlobClient(
account_url=f"https://{storage_account}.blob.core.windows.net/",
container_name=storage_container,
blob_name=file_name,
credential=credential,
)
blob_contents = blob_client.download_blob().content_as_text()
logging.info(f"Blob contains: {blob_contents}")
def get_token_rest():
"""
Retrieve an access token via REST.
"""
access_token = None
msi_endpoint = os.environ.get("MSI_ENDPOINT", None)
msi_secret = os.environ.get("MSI_SECRET", None)
# If UAI_CLIENT_ID is provided then assume that endpoint was created with user assigned identity,
# # otherwise system assigned identity deployment.
client_id = os.environ.get("UAI_CLIENT_ID", None)
if client_id is not None:
token_url = (
msi_endpoint + f"?clientid={client_id}&resource=https://storage.azure.com/"
)
else:
token_url = msi_endpoint + f"?resource=https://storage.azure.com/"
logging.info("Trying to get identity token...")
headers = {"secret": msi_secret, "Metadata": "true"}
resp = requests.get(token_url, headers=headers)
resp.raise_for_status()
access_token = resp.json()["access_token"]
logging.info("Retrieved token successfully.")
return access_token
def access_blob_storage_rest():
"""
Access a blob via REST.
"""
logging.info("Trying to access blob storage...")
storage_account = os.environ.get("STORAGE_ACCOUNT_NAME")
storage_container = os.environ.get("STORAGE_CONTAINER_NAME")
file_name = os.environ.get("FILE_NAME")
logging.info(
f"storage_account: {storage_account}, container: {storage_container}, filename: {file_name}"
)
token = get_token_rest()
blob_url = f"https://{storage_account}.blob.core.windows.net/{storage_container}/{file_name}?api-version=2019-04-01"
auth_headers = {
"Authorization": f"Bearer {token}",
"x-ms-blob-type": "BlockBlob",
"x-ms-version": "2019-02-02",
}
resp = requests.get(blob_url, headers=auth_headers)
resp.raise_for_status()
logging.info(f"Blob contains: {resp.text}")
def init():
global model
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# For multiple models, it points to the folder containing all deployed models (./azureml-models)
# Please provide your model's folder name if there is one
model_path = os.path.join(
os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
logging.info("Model loaded")
# Access Azure resource (Blob storage) using system assigned identity token
access_blob_storage_rest()
access_blob_storage_sdk()
logging.info("Init complete")
# note you can pass in multiple rows for scoring
def run(raw_data):
logging.info("Request received")
data = json.loads(raw_data)["data"]
data = numpy.array(data)
result = model.predict(data)
logging.info("Request processed")
return result.tolist()
Den här distributionen kan ta cirka 8–14 minuter beroende på om den underliggande miljön/avbildningen skapas för första gången. Efterföljande distributioner med samma miljö går snabbare.
az ml online-deployment create --endpoint-name $ENDPOINT_NAME --all-traffic --name blue --file endpoints/online/managed/managed-identities/2-sai-deployment.yml --set environment_variables.STORAGE_ACCOUNT_NAME=$STORAGE_ACCOUNT_NAME environment_variables.STORAGE_CONTAINER_NAME=$STORAGE_CONTAINER_NAME environment_variables.FILE_NAME=$FILE_NAME
Kommentar
Argumentets --name värde kan åsidosätta name nyckeln i YAML-filen.
Kontrollera distributionens status.
az ml online-deployment show --endpoint-name $ENDPOINT_NAME --name blue
Information om hur du förfinar ovanstående fråga för att endast returnera specifika data finns i Fråga azure CLI-kommandoutdata.
Kommentar
Init-metoden i bedömningsskriptet läser filen från ditt lagringskonto med hjälp av den systemtilldelade hanterade identitetstoken.
Information om hur du kontrollerar init-metodens utdata finns i distributionsloggen med följande kod.
# Check deployment logs to confirm blob storage file contents read operation success.
az ml online-deployment get-logs --endpoint-name $ENDPOINT_NAME --name blue
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/managed-identities/1-uai-create-endpoint.yml --set identity.user_assigned_identities[0].resource_id=$uai_id
Kommentar
Argumentets --name värde kan åsidosätta name nyckeln i YAML-filen.
När kommandot körs kan du kontrollera distributionens status.
az ml online-endpoint show --name $ENDPOINT_NAME
Information om hur du förfinar ovanstående fråga för att endast returnera specifika data finns i Fråga azure CLI-kommandoutdata.
# Check deployment logs to confirm blob storage file contents read operation success.
az ml online-deployment get-logs --endpoint-name $ENDPOINT_NAME --name blue
Kommentar
Init-metoden i bedömningsskriptet läser filen från ditt lagringskonto med hjälp av den användartilldelade hanterade identitetstoken.
Information om hur du kontrollerar init-metodens utdata finns i distributionsloggen med följande kod.
# Check deployment logs to confirm blob storage file contents read operation success.
az ml online-deployment get-logs --endpoint-name $ENDPOINT_NAME --name blue
När distributionen är klar registreras modellen, miljön och slutpunkten på din Azure-Mašinsko učenje arbetsyta.
Testa slutpunkten
När din onlineslutpunkt har distribuerats testar och bekräftar du dess åtgärd med en begäran. Information om slutsatsdragning varierar från modell till modell. I den här guiden ser JSON-frågeparametrarna ut så här:
Om du inte planerar att fortsätta använda den distribuerade onlineslutpunkten och lagringen tar du bort dem för att minska kostnaderna. När du tar bort slutpunkten tas även alla dess associerade distributioner bort.