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

部署在私有子网的Lambda访问AppSync API报错"Unable to find..."的原因

解决Lambda通过AppSync VPC端点访问时报错"Unable to find the private GraphQL API for this domain."

排查方向及修复步骤

1. 确认AppSync API的私有访问配置

  • 登录AppSync控制台,进入目标API的「设置」页面
  • 检查「VPC端点」区域:必须勾选启用私有DNS,且已关联正确的AppSync类型VPC端点(服务名称格式为com.amazonaws.<region>.appsync-api)
  • 如果API原本是公开模式,需切换为私有,或确保VPC端点的安全组允许Lambda所在子网的流量接入

2. 校验VPC端点配置

  • 确认VPC端点部署在Lambda所在的私有子网内,且子网路由表包含指向该端点的前缀列表(通常启用私有DNS后会自动处理,无需手动配置路由,但如果禁用了私有DNS,需手动添加)
  • 检查VPC端点的安全组规则:入站允许Lambda安全组的443端口流量,出站允许到AppSync服务的443端口流量

3. 检查Lambda的VPC设置

  • 确认Lambda已部署到目标私有子网,且子网路由表能访问VPC端点(私有子网无需NAT网关即可直接访问VPC端点,只要路由表正确)
  • 确保Lambda的安全组允许出站到443端口(HTTPS请求需要)

4. 排查DNS解析问题

这个报错大概率是DNS没有解析到私有端点,可按以下步骤检查:

  • 确认Lambda所在VPC已启用「DNS支持」和「DNS主机名」(VPC控制台 -> 目标VPC -> 编辑DNS设置)
  • 在Lambda中添加临时代码测试DNS解析:
    import socket
    def lambda_handler(event, context):
        print(socket.gethostbyname("<your-appsync-domain>"))
    
    执行后查看日志,确认返回的是VPC端点的IP,而非公网IP
  • 如果使用自定义域名,需确保Route53私有托管区的记录集将自定义域名指向AppSync私有端点的IP或VPC端点别名

5. 自定义域名关联检查

如果使用了自定义域名访问AppSync:

  • 确认自定义域名已绑定到私有API,而非公开API
  • 检查自定义域名的SSL证书是否在同一AWS区域,且完成了验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:37:13