首页 > 解决方案 > 如何为 Route53 -> EC2 -> API 端点反向代理路径设置 HTTP 测试

问题描述

我已经构建了一个 EC2 反向代理 (Nginx),它通过 Internet 与外部 API 端点进行通信。我有一个 Route53 DNS,其 A 记录链接到我的 EC2。有几个端点(Nginx 位置),根据您点击的 url,您被重定向到特定的代理位置,并转发到外部 API 上的正确端点。这一切都很好。

现在我想创建某种类型的作业,它会定期测试这个过程,以确保它正在运行并通知我如果它不是。AWS 有这么多工具,我想我需要使用 Lambda 和 API Gateway。

我想通过 EC2 访问我的 url(Route53 DNS)并接收来自端点服务器的响应。我的网站可以做到这一点,邮递员可以,但我无法弄清楚如何以自动方式完成此操作并根据响应值提醒我。

如何测试我的完整路径(www.example.com/option -> nginxEC2 path('/option') -> www.endpoint.com/option)并根据结果获得通知。

编辑:我需要能够用这个发送一个身体。如果我在没有正文的情况下发送它,服务器返回 404,如果我可以发送正文/有效负载,我会得到响应。

编辑:基本上是在寻找一种方法来访问我的 DNS,它通过 A 记录路由到我的反向代理,到端点。我只需要向域发出 HTTP 请求,然后获取并回复并知道状态码。

Mark B 的解决方案是最接近的,因为他发送给我的免费网站可以选择为此服务付费。再开几天。

标签: amazon-web-servicesapihttpaws-lambda

解决方案


您绝对不需要 API Gateway。这根本不会帮助你测试这个。API Gateway 只会为您提供需要测试的全新 API。

正如您所提到的,您可以为此使用 Lambda。您将编写一个 Lambda 函数来访问您要测试的 URL,检查结果,并在失败时通过 SES 或 SNS 或其他方式向您发送消息。Lambda 函数可以配置为按计划自动运行。

但是,AWS 已经有一项服务可以满足您的需求:Route53 Health Checks

您所描述的称为 HTTP 健康检查或 HTTP 正常运行时间监视器。提供此功能的服务有很多,其中一些是免费的


推荐阅读