View a markdown version of this page

Richiama un endpoint asincrono - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Richiama un endpoint asincrono

Ottieni inferenze dal modello ospitato sul tuo endpoint asincrono con InvokeEndpointAsync.

Nota

Se non l'hai già fatto, carica i tuoi dati di inferenza (ad esempio, modello di machine learning, dati di esempio) su Amazon S3.

Puoi fornire il payload della richiesta in due modi. Queste opzioni si escludono a vicenda; forniscine esattamente una in una richiesta:

  • Payload in linea: per payload fino a 128.000 byte, passate i dati direttamente nella richiesta con il parametro. Body Questo evita di caricare il payload su Amazon S3 prima di ogni chiamata.

  • Posizione Amazon S3: per payload di grandi dimensioni, carica i dati di inferenza su Amazon S3 e passa il relativo URI con il parametro. InputLocation

Specifica i seguenti campi nella richiesta:

  • PerBody, fornisci il payload di inferenza in linea (fino a 128.000 byte). Usa questo o InputLocation, ma non entrambi.

  • PerInputLocation, specifica la posizione Amazon S3 dei tuoi dati di inferenza. Usa questo o Body, ma non entrambi.

  • Per EndpointName, specifica il nome dell'endpoint.

  • (Facoltativo) Per InvocationTimeoutSeconds, puoi impostare il timeout massimo per le richieste. Puoi impostare questo valore su un massimo di 3600 secondi (un'ora) per richiesta. Se non specifichi questo campo nella richiesta, per impostazione predefinita la richiesta scade a 15 minuti.

L'esempio seguente invia il payload in linea con il Body parametro, che non richiede il primo caricamento dell'input su Amazon S3.

# Create a low-level client representing Amazon SageMaker Runtime sagemaker_runtime = boto3.client("sagemaker-runtime", region_name=<aws_region>) # Specify the inference payload inline (up to 128,000 bytes) payload = b'{"inputs": "your inference data here"}' # The name of the endpoint. The name must be unique within an Regione AWS in your Account AWS. endpoint_name='<endpoint-name>' # After you deploy a model into production using SageMaker AI hosting # services, your client applications use this API to get inferences # from the model hosted at the specified endpoint. response = sagemaker_runtime.invoke_endpoint_async( EndpointName=endpoint_name, Body=payload, ContentType="application/json", InvocationTimeoutSeconds=3600)

In alternativa, puoi memorizzare il payload in Amazon S3 e trasmetterne la posizione con il parametro. InputLocation Se non lo hai già fatto, carica i dati di inferenza su Amazon S3 prima di richiamare l'endpoint.

# Create a low-level client representing Amazon SageMaker Runtime sagemaker_runtime = boto3.client("sagemaker-runtime", region_name=<aws_region>) # Specify the location of the input. Here, a single SVM sample input_location = "s3://bucket-name/test_point_0.libsvm" # The name of the endpoint. The name must be unique within an Regione AWS in your Account AWS. endpoint_name='<endpoint-name>' # After you deploy a model into production using SageMaker AI hosting # services, your client applications use this API to get inferences # from the model hosted at the specified endpoint. response = sagemaker_runtime.invoke_endpoint_async( EndpointName=endpoint_name, InputLocation=input_location, InvocationTimeoutSeconds=3600)

Riceverai una risposta come stringa JSON con l'ID della richiesta e il nome del bucket Amazon S3 che riceverà la risposta alla chiamata API dopo l'elaborazione.