AWS API Gateway 使用 CDK 路由到根资源

问题描述 投票:0回答:0

建筑

我的设置是这样的

API GW (REST API) -> VPC LINK -> NLB -> 监听器/目标 -> ECS 服务 -> EC2 容器实例。

我的容器实例已启动并正在运行。 我的服务已启动并正在运行。 我的 NLB 已将容器实例注册为目标。

所有健康检查均通过。

我的集成看起来像

vpc_integration = apigateway.Integration(
            type=apigateway.IntegrationType.HTTP_PROXY,
            integration_http_method=HttpMethods.ANY,
            options=apigateway.IntegrationOptions(
                connection_type=apigateway.ConnectionType.VPC_LINK, vpc_link=link
            ),
        )

我有 API GW 资源

/my_method/{param}

我可以通过 NLB 直接调用我的 api,例如。

curl -X GET http://mynlb.../my_method/param

直接用curl调用时。我得到了正确的响应,并且还可以看到我预期的容器日志输出。

这都是用CDK部署的。

问题 当我在 API Gateway 控制台中进行测试时。我收到 404

Sun Jul 30 16:34:09 UTC 2023 : Endpoint response headers: {date=Sun, 30 Jul 2023 16:34:08 GMT, server=uvicorn, content-length=22, content-type=application/json}
Sun Jul 30 16:34:09 UTC 2023 : Endpoint response body before transformations: {"detail":"Not Found"}
Sun Jul 30 16:34:09 UTC 2023 : Method response body after transformations: {"detail":"Not Found"}

404 来自我的服务器。您可以从服务器类型“uvicorn”中看到这一点。我还可以看到容器日志。

网关似乎正在将请求路由至

/
。我可以看到以下日志
July 30, 2023 at 12:54 (UTC-4:00)  INFO: 192.168.62.160:39839 - "GET / HTTP/1.1" 404 Not Found

为了确保我真正能够一直到达我的服务器,我在我的应用程序上添加了另一个处理程序,网址为

/
。我可以看到请求正在得到正确处理。所以最终看起来 API GW 正在删除路径组件并将所有内容发送到
/

我认为我的问题与代理资源使用有关。我不确定我是否正确设置了资源/方法

似乎与 - AWS API Gateway HTTP 代理模式有关,但尚未得到答复

amazon-web-services aws-api-gateway
© www.soinside.com 2019 - 2024. All rights reserved.