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

VPC私有子网内Lambda无法连接Sagemaker的排查求助

问题解答

核心问题

你的请求超时是因为私有子网的路由表没有将SageMaker服务流量引导到VPC端点,且代码中未指定VPC端点的访问地址,导致请求默认尝试走公网,而私有子网无NAT时无法访问公网。

针对你的问题逐一解答

  1. 是否需要在路由表中添加Sagemaker VPC端点的路由?
    需要。你需要在私有子网关联的路由表中添加一条路由条目:
  • 目标前缀:com.amazonaws.<你的区域>.sagemaker.runtime(推理场景主要使用该前缀,若涉及其他SageMaker操作可对应添加服务前缀)
  • 目标:选择你的SageMaker VPC端点
    这条路由会把所有发往SageMaker服务的请求引导到VPC端点,而非走公网。
  1. 是否需要为VPC端点的ENI分配公网IP?
    不需要。VPC端点的核心作用就是让VPC内部资源无需公网即可访问AWS服务,它的ENI仅需私有IP就能完成VPC内部通信,分配公网IP既无必要,还会增加安全暴露风险。

  2. 是否需要添加指向VPC端点ENI的路由?
    不需要。直接指向ENI的路由缺乏弹性——AWS可能在维护时更换VPC端点的ENI,导致路由失效。正确做法是添加服务前缀指向VPC端点的路由,由AWS自动管理ENI关联,保证通信稳定。

Lambda代码中的endpoint_url配置

必须指定。在Python代码调用SageMaker推理时,需要通过endpoint_url参数明确指向你的SageMaker VPC端点域名,示例如下:

import boto3

sagemaker_runtime = boto3.client(
    'sagemaker-runtime',
    region_name='<你的区域>',
    endpoint_url='https://runtime.sagemaker.<你的区域>.vpce.amazonaws.com'  # 替换为你的VPC端点域名
)

# 调用推理
response = sagemaker_runtime.invoke_endpoint(
    EndpointName='<你的模型端点名称>',
    ContentType='application/json',
    Body=b'{"input": "..."}'
)

如果不指定endpoint_url,AWS SDK会默认使用公网的SageMaker服务地址,此时即使路由表配置正确,请求也会走公网导致超时。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 06:02:34