aws / aws/sagemaker-python-sdk

Sagemaker local client invoke_endpoint returns different response than non local counterpart

Abierto
#3,348 0 comentarios 0 reacciones 1 asignado Reclamado por @nargokul Ver en GitHub
component: local mode type: bug
Lenguaje dominante
Python
Estrellas
2.3k
Forks
1.3k
Merge medio
1 d 22 h
PR fusionados (30 d)
35

Descripción

Sagemaker local client invoke_endpoint method returns a different response than using the boto3 runtime_client, so it makes debugging difficult in local mode, because the same code wouldn't work in production. The missing part is the ResponseMetadata key in the payload
it just returns Body and ContentType
I would want to access ResponseMetadata, InvokedProductionVariant and other related metadata in local mode

**To reproduce**
1. Have a local container running the sagemaker model
2. Invoke the endpoint with sagemaker local client
```python
sagemaker_session = LocalSession()
sagemaker_session.config = {"local": {"local_code": True}}
sm_client = sagemaker_session.sagemaker_runtime_client
response = sm_client.invoke_endpoint(
EndpointName="local-endpoint-name",
ContentType="application/json",
Body=json.dumps(payload),
)
response["ResponseMetadata"]["HTTPStatusCode"] <- Fails
```

**Expected behavior**
the local client should return the same response as the non-local client
local client
```json
{"Body": "foo", "ContentType": "bar"}
```
non-local client
```json
{"Body": "foo", "ContentType": "bar", "ResponseMetadata": {"foo": "bar"}}
```

**System information**
A description of your system. Please provide:
- **SageMaker Python SDK version**: 2.108.0
- **Python version**: 3.7.10
- **CPU or GPU**: CPU
- **Custom Docker image (Y/N)**: Y

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.