[英]How to avoid the configuration error while using AWS API Gateway with VPC Link?
我根据 AWS 文档使用网络负载均衡器 (NLB) 创建了 VPC 链接,并将其附加到 API 网关资源/方法。 但它在访问“调用 URL”时抛出“内部服务器错误”并在测试时显示此错误:“由于配置错误导致执行失败:执行您的请求时出现内部错误”。
我遵循的程序:
1)创建网络负载均衡器:
2) 使用新创建的 NLB 在 API 网关中创建 VPC 链接。
3)新建API:
4) 使用“部署 API”操作和新创建的阶段部署选定的 API。
5) 在“阶段变量”部分配置“vpcLinkId”。
现在,如果我点击“Invoke URL”,web 页面会显示“{"message": "Internal server error"}”。
注意:如果我将相同的 EC2 url 与“集成类型:HTTP”一起使用,则“调用 URL”有效。 同样不适用于 VPC 链接。
错误:
其他值得注意的地方:
如果需要,我很乐意提供更多信息。
编辑 1
根据 JNY (jny) 的输入,我已将 API 网关端点更改为 NLB,并将我的 EC2 实例添加为 NLB 中的目标。 我仍然面临同样的问题。 下面的图片将显示我所做的所有配置。
负载均衡器配置:
负载均衡器目标组设置:
目标组端口设置:
API 网关设置:
相同的结果:
我仍然不确定我在这里犯的错误是什么。
我也收到了 500 内部服务器错误,然后我在 EC2 安全组中添加了入站规则并允许使用 VPC 子网的 CIDR 进行 HTTP,现在我可以使用 NLB 访问 API
您的 NLB 缺少端口 80 的 EC2 实例(在其安全组中)的入站权限。但由于 NLB 没有作为安全组(但确实有永久 IP),您将不得不使用其 IP 并将其直接添加到EC2 实例的安全组。 您可以通过以下方式找到 NLB 的 ip: https ://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups。
你做对了,但也许它会帮助某人:
我的错是在 api 网关中对端点 url 使用 HTTPS。 它必须是 HTTP。
正确的:
http://myLoadBalancer.elb.us-east-1.amazonaws.com
文本字段太短,无法显示整个 url,所以我没有看到。
在为 NLB、EC2、ECS 等使用相同的端口后问题得到解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.