gpt4 book ai didi

amazon-web-services - AWS API Gateway 简单 http 代理端点地址无效

转载 作者:行者123 更新时间:2023-12-05 02:13:42 27 4
gpt4 key购买 nike

我正在尝试使用 AWS API 网关配置简单的 http 代理,遵循此页面中的示例: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-http.html我遇到的问题是,如果我的端点 URL 是另一个 AWS API 网关,它似乎可以工作,但我无法让它为任何其他 URL 工作。

我正在创建一个具有资源路径/{proxy+} 并启用 API 网关 CORS 的代理资源,然后创建任何方法作为 HTTP 代理和内容处理直通(就像上述示例中的 petshop 示例一样)。如果我将端点设置为另一个 AWS API 网关,它会起作用。

但是,如果我将端点设置为非 AWS URL,我会返回 500 响应,并且我会在我的 API 网关 Cloudwatch 日志中看到:

Execution failed due to configuration error: Invalid endpoint address

我的端点在我的公司内部网络上,但作为测试,我也尝试代理到 Internet 地址,但失败并出现相同的错误。 (我应该注意,在这两种情况下,我都试图代理到 https 地址,而不仅仅是 http。) enter image description here enter image description here

为了排除网络路由或防火墙问题,我登录了同一地区的 AWS EC2 实例并测试了通过 curl 访问端点 URL,结果成功。

有没有人成功地将 API 网关简单 https 代理用于其他 AWS API 网关以外的任何东西?

最佳答案

我假设从 EC2 实例进行的测试将验证不存在路由、防火墙或 DNS 问题。这是一个错误的假设,因为事实证明,API 网关不一定位于同一网络中,也不一定与同一区域的 EC2 具有相同的访问权限。感谢@Michael - sqlbot 的帮助,我能够确定这实际上是一个网络访问问题,但由于 API 网关不在正确的网络中,我的 DevOps 团队无法解决这个问题。

相反,解决方案是我必须编写一个小的 lambda 函数(前面是一个 API 网关资源,集成了 lambda 代理),类似于我在我们的应用程序中为 RESTful API 编写其他 lambda 的方式。通过 lambda,我可以更灵活地访问内部资源,包括配置 VPC 的能力,因此我能够在 lambda 中使用标准 HTTP 客户端 API 来代理对后端资源的调用。

关于amazon-web-services - AWS API Gateway 简单 http 代理端点地址无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com