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

VPC私有子网Lambda用Boto3连接SQS报端点错误如何解决

问题根因

你遇到的连接错误和Boto3使用resource还是client模式无关,核心是Boto3默认对eu-west-2区域的SQS服务优先请求旧版遗留端点https://eu-west-2.queue.amazonaws.com/,但你配置的SQS VPC接口端点仅响应新版区域端点https://sqs.eu-west-2.amazonaws.com的请求,端点不匹配导致流量无法通过VPC端点连通SQS服务。

解决方案

你可以任选以下一种方式修复,推荐优先使用无代码侵入的环境变量配置方式:
注意:两种方式二选一即可,不需要同时配置。

方式1:配置Boto3环境变量(无需修改代码)

直接在Lambda函数的环境变量中添加如下配置项:

  • 变量名:AWS_SQS_USING_LEGACY_ENDPOINT
  • 变量值:False
    该配置是Boto3原生支持的全局开关,设置为False后会自动禁用旧版遗留端点,默认使用新版区域SQS端点发起请求,适配你配置的VPC端点规则。

方式2:初始化Boto3对象时手动指定端点

如果需要更灵活的端点控制,可以在初始化SQS的client或resource对象时,显式传入endpoint_url参数指定新版端点地址:

# 客户端模式
sqs = boto3.client('sqs', endpoint_url='https://sqs.eu-west-2.amazonaws.com')

# 资源模式
sqs = boto3.resource('sqs', endpoint_url='https://sqs.eu-west-2.amazonaws.com')

# 后续业务调用逻辑不需要改动
queue = sqs.get_queue_by_name(QueueName=QueueID)
配置校验

修改后如果仍然无法连通,检查以下VPC端点相关配置:

  • SQS VPC端点关联的安全组,需要放通Lambda所属安全组的443端口入站规则
  • SQS VPC端点的访问策略,需要允许Lambda执行角色调用对应SQS队列的相关操作权限
  • Lambda所在私有子网的路由表已正确关联该SQS VPC端点,不存在将SQS相关流量路由到公网的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:51:15