首页 文章

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

提问于
浏览
0

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

当我尝试通过资源编辑器中的“测试”功能使用API时,这很好用 . 我可以使用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'."
  }

如果我从“集成请求”中删除“使用HTTP代理集成”复选框,我可以使它工作,但为什么它不能作为代理?

1 回答

  • 1

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

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

    在集成请求中,显式添加名为“Host”的标头,并为其指定集成 endpoints DNS名称的值 . 这将使用您指定的Host头替换从传入客户端请求转发的Host头 . 这应该允许您的后端 endpoints 正常运行 .

相关问题