我正在尝试使用API网关从http://foo.com
到http://foo.internal:38121
设置基本的反向代理(因此我无需参与部署NGINX群集)。
我不能只使用CloudFront - >没有API网关的http://foo.internal:38121
,因为我需要在每次部署时将http://foo.internal:38121
更改为其他内容...并且更改CloudFront原点会触发无法维持的~40分钟更新。此外,我不能使用固定端口(因此CloudFront w /固定来源和DNS更改per-deploy也不是一个选项)......某些东西需要能够立即映射foo.com:80
到foo.internal:???
。
我正在尝试使用API网关:
/
/{proxy+}
ANY
然而,端点产生了这个:
> curl https://XYZ.execute-api.eu-west-1.amazonaws.com/prod/
{ "message": "Missing Authentication Token" }
虽然这有效:
> curl https://XYZ.execute-api.eu-west-1.amazonaws.com/prod/hello_world/
Hello!
我可以通过添加辅助ANY
方法来解决此问题:
/
ANY
/{proxy+}
ANY
修复了它:
> curl https://XYZ.execute-api.eu-west-1.amazonaws.com/prod/
Hello!
然而每个部署的重复配置并不理想。
例如:它可能会产生错误。尽管部署是以原子方式进行的,但“暂存”更改却不会。这意味着存在这样的风险,即2个并发CI构建可以更新/
和/.+
以指向新的上游(例如,使用aws apigateway update-integration
x2 - 每个资源一个),但是作为{ {1}}总命令与4x
并发CI构建重叠,方法可能最终指向不同的上游,然后部署。
2x
是否可以在API网关中捕获{proxy+}
? (或者是否有一种更简单/更好的方法来实现这种反向代理方式,即时上行更改,仅使用AWS组件?)
答案 0 :(得分:0)
“然而,每个部署的重复配置并不理想......” 这里没有重复。您可以对两种方法使用相同的lambda。