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

VPC环境下Lambda调用Cognito.sign_up超时问题排查

VPC内Lambda调用Cognito失败排查方案

核心现象:

  • Lambda通过调用Cognito sign_up 接口实现用户注册,挂载在API GET端点后
  • 本地调用端点可正常创建Cognito用户,staging环境部署后调用失败,CloudWatch无对应报错
  • staging环境Lambda部署在VPC内,可正常访问同VPC的MySQL实例
  • Lambda绑定IAM角色已附加CognitoPowerUser托管策略

优先排查VPC网络配置(90%概率为该类问题)

Cognito默认是公网服务,能正常访问同VPC的MySQL仅代表内网路由连通正常,不代表Lambda有公网出口访问能力:

  • 检查Lambda关联的子网路由表:如果挂载的是私有子网,必须配置NAT网关/NAT实例,路由表中0.0.0.0/0的下一跳指向NAT设备,否则Lambda无法发起公网请求,自然连不上Cognito的公网端点
  • 更推荐的方案是配置VPC端点直连Cognito,不需要走公网、不需要NAT网关,通过内网直接打通服务:
    1. 在对应区域创建com.amazonaws.<你的区域码>.cognito-idp类型的VPC端点,关联Lambda所在的子网
    2. 调整端点关联的安全组,允许Lambda所属安全组的443端口入站(端点侧安全组放行Lambda的访问请求)
    3. 配置完成后Lambda会自动通过内网访问Cognito用户池接口,稳定性更高
  • 额外检查子网关联的网络ACL、Lambda自身的出站安全组,确认没有拦截443端口的出站请求、没有拦截Cognito服务的IP段。

其次排查权限与配置问题

  • 检查IAM角色信任策略:确认角色信任实体为lambda.amazonaws.com,避免因信任关系配置错误导致权限未实际生效
  • 若配置了VPC端点,检查端点策略:确认策略没有显式拒绝Lambda角色执行cognito-idp:SignUp相关动作
  • 核对staging环境的环境变量:确认Cognito用户池ID、区域码配置和本地一致,避免因配置错误指向不存在/无权限的资源
  • 补全日志配置:将Lambda超时时间调整到10秒以上(默认3秒容易出现请求未返回就超时、无明确报错的情况),把AWS SDK的日志级别调整为DEBUG,打印请求全链路日志,可直接定位是DNS解析失败、连接超时还是权限拒绝问题
  • 快速验证方法:在Lambda代码中增加测试逻辑,先调用cognito-idp:ListUserPools接口,同时打印cognito-idp.<区域>.amazonaws.com的解析结果,如果解析出公网IP但连接超时,可直接确认是公网出口配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 21:24:56