Amazon web services 如何设置API网关与专用NLB对话?
我一直在使用ALB,直到我意识到我无法将专用ALB连接到API网关。。。所以我现在正在尝试NLB 到目前为止我有Amazon web services 如何设置API网关与专用NLB对话?,amazon-web-services,elastic-load-balancer,nlb,Amazon Web Services,Elastic Load Balancer,Nlb,我一直在使用ALB,直到我意识到我无法将专用ALB连接到API网关。。。所以我现在正在尝试NLB 到目前为止我有 私人NLB 连接到NLB的API网关VPC链接 但我不确定如何正确配置API网关。我做到了: 创建了一个测试路径GET/test 使用VPC链接、代理和非代理类型 但是我不确定我应该为端点URL放什么。现在我做了一些类似的事情:http://dummydomain.com/api其中dummydomain.com是一个虚拟域,/api是我的状态检查URL,应该可以工作 这是我
- 私人NLB
- 连接到NLB的API网关VPC链接
- 创建了一个测试路径
GET/test
- 使用VPC链接、代理和非代理类型
- 但是我不确定我应该为端点URL放什么。现在我做了一些类似的事情:
其中http://dummydomain.com/api
是一个虚拟域,dummydomain.com
是我的状态检查URL,应该可以工作/api
{
"message": "Internal server error"
}
日志:
Execution log for request 2d5e2e51-b04c-11e8-b9fe-97b354c20146
Tue Sep 04 14:09:45 UTC 2018 : Starting execution for request: 2d5e2e51-b04c-11e8-b9fe-97b354c20146
Tue Sep 04 14:09:45 UTC 2018 : HTTP Method: GET, Resource Path: /test
Tue Sep 04 14:09:45 UTC 2018 : Method request path: {}
Tue Sep 04 14:09:45 UTC 2018 : Method request query string: {}
Tue Sep 04 14:09:45 UTC 2018 : Method request headers: {}
Tue Sep 04 14:09:45 UTC 2018 : Method request body before transformations:
Tue Sep 04 14:09:45 UTC 2018 : Endpoint request URI: http://dummydomain.com/api
Tue Sep 04 14:09:45 UTC 2018 : Endpoint request headers: {x-amzn-apigateway-api-id=4p76zcriuk, User-Agent=AmazonAPIGateway_4p76zcriuk, Host=dummydomain.com}
Tue Sep 04 14:09:45 UTC 2018 : Endpoint request body after transformations:
Tue Sep 04 14:09:45 UTC 2018 : Sending request to http://dummydomain.com/api
Tue Sep 04 14:09:56 UTC 2018 : Execution failed due to configuration error: There was an internal error while executing your request
Tue Sep 04 14:09:56 UTC 2018 : Method completed with status: 500
我很好奇的事情。。。目标群体
- 协议:TCP
- 港口:80
- 目标类型:IP
- 健康检查通行证
但是想知道端口80部分是否有问题吗?NLB是否将端口80流量转换为端口3000 端点URL有点像黑客。它强制您提供一个域(您可以使用任何域)。当您提出请求时,该域似乎被剥离并替换为您的专有网络链接 例如 您还可以将
{proxy}
与API网关代理资源一起用作端点URL的一部分
例如,http://dummydomain.com/api/{proxy}
使用顶级代理资源将导致:
{api gateway endpoint}/todo/1 -> http://{NLB DNS}:80/api/todo/1
您可以将NLB端口配置为端点URL的一部分
例如
这允许您在NLB上包含指向不同目标组的多个侦听器
要进行故障排除,请在同一VPC上旋转一个EC2实例来测试(内部)NLB,并从那里卷曲端点URL(替换为NLB DNS)我感到困惑。每当我使用API网关时,AWS本身已经在一个随机URL中公开了它。然后,如果您有一个域,您可以为它设置自定义域名,并创建api。API网关配置选项的右侧。为什么要将ALB/NLB添加到此任务中?API网关本质上已经由内部AWS LBs.@Lovato提供了高可用性。例如,您如何在ecs内调用您的API?直接调用它,因为DNS通常是解决的。然后,如果需要,我只使用令牌或APIKEY,就像任何外部呼叫一样。你也能回答这个问题吗?
{api gateway endpoint}/todo/1 -> http://{NLB DNS}:80/api/todo/1
http://dummydomain.com:10001/api -> http://{NLB DNS}:10001/api