View a markdown version of this page

Appeler un point de terminaison asynchrone - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Appeler un point de terminaison asynchrone

Obtenez des inférences du modèle hébergé sur votre point de terminaison asynchrone avec InvokeEndpointAsync.

Note

Si vous ne l'avez pas déjà fait, téléchargez vos données d'inférence (par exemple, modèle de machine learning, exemples de données) sur Amazon S3.

Vous pouvez fournir la charge utile de la demande de deux manières. Ces options s'excluent mutuellement ; indiquez exactement l'une d'entre elles dans une demande :

  • Charge utile intégrée : pour les charges utiles allant jusqu'à 128 000 octets, transmettez les données directement dans la demande avec le paramètre. Body Cela évite de télécharger la charge utile sur Amazon S3 avant chaque appel.

  • Emplacement Amazon S3 : pour des charges utiles plus importantes, téléchargez vos données d'inférence sur Amazon S3 et transmettez son URI avec le InputLocation paramètre.

Renseignez les champs suivants dans votre demande :

  • PourBody, fournissez la charge utile d'inférence en ligne (jusqu'à 128 000 octets). Utilisez ceci ouInputLocation, mais pas les deux.

  • PourInputLocation, spécifiez l'emplacement Amazon S3 de vos données d'inférence. Utilisez ceci ouBody, mais pas les deux.

  • Pour EndpointName, spécifiez le nom de votre point de terminaison.

  • (Facultatif) Pour InvocationTimeoutSeconds, vous pouvez définir le délai d'attente maximal des demandes. Vous pouvez définir cette valeur sur un maximum de 3 600 secondes (une heure) par demande. Si vous ne spécifiez pas ce champ dans votre demande, la demande expire par défaut après 15 minutes.

L'exemple suivant envoie la charge utile en ligne avec le Body paramètre, ce qui ne nécessite pas de télécharger d'abord l'entrée sur 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 Région AWS in your Compte 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)

Vous pouvez également stocker la charge utile dans Amazon S3 et transmettre son emplacement avec le InputLocation paramètre. Si ce n'est pas déjà fait, téléchargez vos données d'inférence sur Amazon S3 avant d'appeler le point de terminaison.

# 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 Région AWS in your Compte 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)

Vous recevez une réponse sous forme de chaîne JSON avec votre ID de requête et le nom du compartiment Amazon S3 qui aura la réponse à l'appel d'API une fois qu'il aura été traité.