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

EMR Serverless中使用requests库无法访问公开API的问题

问题排查:EMR Serverless中requests调用公网API超时

以下是针对你遇到的连接超时问题的排查方向和验证步骤:

  • EMR Serverless公网访问权限未开启
    即使未配置自定义VPC,EMR Serverless默认的托管网络环境也需要手动开启公网访问权限才能访问外部API。你可以在提交作业时,通过控制台或CLI的作业配置中开启"Allow public network access"选项,同时确保作业执行角色拥有允许出站访问公网的权限策略。

  • DNS解析失败
    EMR Serverless托管网络的DNS服务可能无法正确解析目标域名vpic.nhtsa.dot.gov。可以在EMR Serverless作业中添加调试命令,比如执行nslookup vpic.nhtsa.dot.gov或dig vpic.nhtsa.dot.gov,检查是否能得到正确的IP地址。如果解析失败,可能需要确认EMR Serverless的网络DNS配置是否正常,或者尝试直接使用目标API的IP地址发起请求(仅临时测试,不推荐长期使用,因为IP可能变动)。

  • 请求超时参数设置不合理
    EMR Serverless的网络链路延迟可能比Lambda或本地环境更高,若代码中未设置明确的超时时间,或超时阈值设置过短,就容易触发超时。尝试在requests请求中添加合理的超时参数,示例代码:

    import requests
    url = "https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json"
    response = requests.get(url, timeout=30)  # 设置30秒超时阈值
    

    调整超时时间后再测试连接情况。

  • SSL证书验证问题
    EMR Serverless环境中可能缺失目标API所需的根CA证书,导致HTTPS握手失败,最终表现为连接超时。可以临时添加verify=False参数跳过证书验证(仅用于测试,生产环境禁止),验证是否能成功请求:

    response = requests.get(url, verify=False)
    

    如果测试成功,说明是证书问题,需要在EMR Serverless环境中配置正确的CA证书。

  • 目标API对EMR Serverless IP段限流/封禁
    少数情况下,目标API可能对AWS EMR Serverless的IP段进行了限流或封禁。可以在EMR Serverless作业中使用curl命令直接发起请求,查看返回的具体错误信息;或者尝试访问其他公网API测试是否能正常连接,以此判断是目标API的限制还是EMR Serverless自身的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:27:09