[英]SageMaker Endpoint: ServiceUnavailable 503 when calling the InvokeEndpoint operation
我已經部署了一個 model 作為 SageMaker 端點,它在一段時間內運行良好,但現在通過 boto3 調用 model 時
import boto3
client = boto3.client('sagemaker-runtime')
response = client.invoke_endpoint(
EndpointName="my-sagemaker-endpoint",
ContentType="text/csv",
Body=payload,
)
我收到以下錯誤
ServiceUnavailable: An error occurred (ServiceUnavailable) when calling the InvokeEndpoint operation (reached max retries: 4): A transient exception occurred while retrieving variant instances. Please try again later.
在SageMaker 文檔中研究此錯誤,它指出以下內容
由於服務器的臨時故障,請求失敗。
我還檢查了 CW 中的實例指標,沒有任何異常。
我不確定為什么會發生此錯誤,任何建議都會有所幫助。
TL; DR 錯誤源於實例無法從 s3 檢索 SageMaker Model 工件。
SageMaker 端點實施/ping
路由,檢查 model 工件是否能夠在實例中加載。 首先從 s3 檢索 model 工件,然后將其加載到實例中。 如果 model 在 s3 上不可用,它會顯示以下錯誤(下圖)
由於 model 工件由於被意外刪除而無法從 s3 檢索,因此無法加載它,從而在調用/ping
路由檢查端點是否健康時引發錯誤No such file or directory
(見下圖)
這反過來使負載均衡器假設實例有問題,阻止您訪問它,因此當您嘗試調用端點時,您會收到503: Service Unavailable Error
我只是通過重新部署到一個新端點來解決這個問題,但這次考慮了以下幾點:
num_instances=2
以保證每個實例都在不同的 AZ,LB 至少與一個健康的實例通信。models/model-name/version
具有s3:PutObject
權限
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.