AWS API Gateway - 测试工作,部署的API错误。为什么呢?

时间:2016-10-12 12:00:55

标签: aws-api-gateway

我尝试将AWS Api Gateway设置为我实际部署的API的反向代理。 我的理解是,我通过创建一个"代理"资源然后指定我的http端点URL - 如此处所述 Create and Test an API with HTTP Proxy Integration through a Proxy Resource

当我尝试通过"测试"资源编辑器中的功能。我可以使用GET方法调用任何公开的资源,并查看成功的响应。

但是,当我部署API网关API时,我无法再使用"调用URL"它给了我 - 我只是得到:

  {
    "Message": "No HTTP resource was found that matches the request URI 'http://<myuniqueid>.execute-api.eu-west-1.amazonaws.com/api/Sector/100'.",
    "MessageDetail": "No type was found that matches the controller named 'Sector'."
  }

如果我删除&#34;使用HTTP代理集成&#34;来自&#34;集成请求&#34;的复选框我可以让它工作,但为什么它不能作为代理?

1 个答案:

答案 0 :(得分:1)

我怀疑这是由HTTP代理集成的已知问题引起的。当您使用HTTP代理集成时,API Gateway会将所有标头传递到集成端点,包括HOST标头。许多现有的http端点需要使用与其DNS名称匹配的HOST头,在这种情况下,通过API网关的HOST头可能会混淆端点。

更新:我们确定了解决此问题的方法。

在您的集成请求中,显式添加名为&#34; Host&#34;并为其提供集成端点DNS名称的值。这将使用您指定的Host头替换从传入客户端请求转发的Host头。这应该允许您的后端端点正常运行。