You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda调用SageMaker端点超时问题求助

问题描述

创建AWS Lambda函数调用SageMaker端点返回模型预测,已为Lambda关联的IAM角色附加SageMaker调用端点的策略,但Lambda调用时出现任务超时错误(超时时间90秒)。在Notebook实例中运行相同逻辑可正常获取预测,Lambda中无输出。

相关代码:

import os
import boto3
import json
import csv
# grab environment variables
ENDPOINT_NAME = os.environ['ENDPOINT_NAME']
runtime= boto3.client('runtime.sagemaker')


def lambda_handler(event,context):
    #print("Received event: " + json.dumps(event, indent=2))
    
    data = json.loads(json.dumps(event))
    payload = data['data']
    #print("payload:"+payload)
    #print("ENDPOINT NAME :"+ENDPOINT_NAME)
    response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
                                       ContentType='text/csv',
                                       Body=payload)
    print(response)
    result = json.loads(response['Body'].read().decode())
    
    return result

错误信息:

{
  "errorMessage": "2023-03-04T00:49:45.554Z 38fee791-8b05-49e2-ab69-3035af43e499 Task timed out after 90.09 seconds"
}

解决方案

1. 调整Lambda超时时间配置

Lambda默认超时为3秒,当前90秒仍超时说明SageMaker端点的预测耗时超过该阈值:

  • 进入Lambda控制台,在目标函数的配置 > 常规配置中修改超时时间,最大值可设置为15分钟。
  • 若预测耗时确实过长,建议改用SageMaker异步端点调用,避免Lambda长期阻塞等待。

2. 优化SageMaker端点性能

  • 检查端点实例规格:若使用小规格实例(如t2.medium),可升级至高性能实例(如ml.c5.xlarge)提升处理速度。
  • 查看SageMaker控制台的端点监控指标(ModelLatency、InvocationLatency),确认端点自身的响应耗时是否超过Lambda超时限制。
  • 若存在冷启动延迟,可启用端点的持续实例运行,或通过定时发送预热请求避免冷启动。

3. 排查Lambda网络配置

  • 若SageMaker端点部署在私有VPC中:
    • 确保Lambda所在安全组允许出站访问SageMaker端点的安全组,以及访问S3(若模型数据存放在S3)和AWS服务端点的权限。
    • 确认Lambda配置了正确的VPC子网和安全组,或配置VPC端点允许Lambda访问SageMaker服务。
  • 若端点为公开访问,检查Lambda是否能正常解析SageMaker端点域名,可添加简单的网络连通性测试代码验证。

4. 精简代码逻辑

  • 移除冗余代码:data = json.loads(json.dumps(event))无意义,直接使用payload = event['data']即可,减少序列化开销。
  • 添加客户端超时参数:创建boto3客户端时设置连接和读取超时,提前捕获超时异常:
    runtime = boto3.client('runtime.sagemaker', config=boto3.client.Config(
        connect_timeout=30,
        read_timeout=30
    ))
    
  • 开启日志输出:取消代码中注释的print语句,查看Lambda的CloudWatch日志,确认请求是否成功发送到SageMaker,排查隐藏错误。

5. 验证IAM权限细节

  • 确认Lambda的IAM角色策略包含sagemaker:InvokeEndpoint动作,且资源范围覆盖目标端点ARN(可临时用*测试权限范围)。
  • 注意:SageMaker端点自身的执行角色需具备访问模型依赖资源(如S3)的权限,与Lambda角色权限无关。

内容的提问来源于stack exchange,提问作者Tejaswi Boni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:20:17