aws / aws/sagemaker-python-sdk

Sagemaker local client invoke_endpoint returns different response than non local counterpart

オープン
#3,348 コメント 0 件 リアクション 0 件 担当者 1 名 @nargokul が担当を希望しています GitHub で見る
component: local mode type: bug
主要言語
Python
スター
2.3k
フォーク
1.3k
平均マージ
1日 22時間
マージ済み PR(30日)
35

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。