我已经根据AWS文档使用网络负载平衡器(NLB)创建了VPC链接,并将其附加到API网关资源/方法中。但是在访问“调用URL”时抛出“内部服务器错误”,并在测试时显示此错误:“由于配置错误,执行失败:执行请求时出现内部错误”。
我遵循的步骤:
1)创建了网络负载均衡器:
2)使用新创建的NLB在API网关中创建VPC链接。
3)创建了新的API:
4)使用“部署API”操作和新创建的阶段来部署所选的API。
5)在“阶段变量”部分中配置了“ vpcLinkId”。
现在,如果我单击“调用URL”,则网页显示“ {”消息”:“内部服务器错误”}”。
注意:如果我将相同的EC2网址与“集成类型:HTTP”一起使用,则“调用URL”有效。同样不适用于VPC链接。
错误:
其他值得注意的地方:
如果需要,我很乐意提供其他信息。
编辑1
基于JNY(jny)的输入,我已将API网关端点更改为NLB,并将我的EC2实例添加为NLB中的Target。我仍然面临着同样的问题。下图将显示我已完成的所有配置。
负载均衡器配置:
负载均衡器目标组设置:
目标组端口设置:
API网关设置:
相同的结果
我仍然不确定我在这里犯了什么错误。
答案 0 :(得分:0)
我也遇到500 Internal server error,然后我在EC2安全组中添加了入站规则,并允许HTTP与VPC子网的CIDR一起使用,现在我可以使用NLB访问API
答案 1 :(得分:0)
您的 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。