View a markdown version of this page

Invocar un punto de conexión asíncrono - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Invocar un punto de conexión asíncrono

Obtenga inferencias del modelo alojado en su punto de conexión asíncrono con InvokeEndpointAsync.

nota

Si aún no lo ha hecho, cargue sus datos de inferencia (como el modelo de machine learning o los datos de muestra) en Amazon S3.

Puedes proporcionar la carga útil de la solicitud de dos maneras. Estas opciones se excluyen mutuamente; proporciona exactamente una de ellas en la solicitud:

  • Carga útil en línea: para cargas útiles de hasta 128 000 bytes, pasa los datos directamente a la solicitud con el parámetro. Body Esto evita cargar la carga útil en Amazon S3 antes de cada invocación.

  • Ubicación de Amazon S3: para cargas útiles más grandes, cargue los datos de inferencia en Amazon S3 y pase su URI con el InputLocation parámetro.

Especifique los siguientes campos en su solicitud:

  • Para elloBody, proporcione la carga útil de inferencia en línea (hasta 128 000 bytes). Utilice esta opción oInputLocation, pero no ambas.

  • ParaInputLocation, especifique la ubicación en Amazon S3 de sus datos de inferencia. Utilice esta opción oBody, pero no ambas.

  • En EndpointName, especifique el nombre del punto de conexión.

  • En InvocationTimeoutSeconds, puede establecer el tiempo de espera máximo para las solicitudes (opcional). Puede establecer este valor en un máximo de 3600 segundos (una hora) por solicitud. Si no especifica este campo en la solicitud, el tiempo de espera de la solicitud será de 15 minutos de forma predeterminada.

El siguiente ejemplo envía la carga útil en línea con el Body parámetro, lo que no requiere cargar primero la entrada en 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 Región de AWS in your Cuenta de 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)

Como alternativa, puede almacenar la carga útil en Amazon S3 y pasar su ubicación con el InputLocation parámetro. Si aún no lo ha hecho, cargue los datos de inferencia en Amazon S3 antes de invocar el punto de conexión.

# 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 Región de AWS in your Cuenta de 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)

Recibirá una respuesta en forma de cadena JSON con su id. de solicitud y el nombre del bucket de Amazon S3 que recibirá la respuesta a la llamada a la API una vez procesada.