服务器发送的事件(sse)能否与AWS Cloudfront一起工作



有没有一种方法可以让sse(服务器发送的事件(使用Cloudfront工作?

我知道他们几年前就宣布支持websockets,但我找不到任何关于通过Cloudfront使用sse通信的参考或案例。

我做了一个测试,客户端响应以504网关超时结束,大约一分钟后

是的,您可以将SSE(服务器发送的事件(与CloudFront一起使用。

有许多不同的方法可以在CloudFront后面实现您的API。因此,在某些情况下,可能存在局限性。但是,让我描述一种标准而直接的方法,您可以设置经过测试的应用程序,以便与SSE一起工作。

假设您有一个EC2实例(至少一个(位于ALB(应用程序负载均衡器(后面。即使您不需要多个EC2实例,也可能需要ALB才能使用HTTPS。尽管您需要将TLS/SSL证书导入到您的CloudFront分发中,但您还需要通过HTTPS访问您的API(由CloudFront本身访问((不要忘记它可能位于另一个大陆(。

在CloudFront中,您可以创建一个具有Origin的Distribution,该Origin基本上将https://yourapp.com/api映射到该ALB。请注意,CloudFront还允许您将流量转发到不同的(子(域,如果您的API/ALB就在那里(我也成功测试了该设置(。

Websockets与AWS API网关配合使用。您也可以使用AppSync(GraphQL(订阅。CloudFront自己无法发送任何内容。

AWS资源与事件桥(基本上是触发事件的异步方式(及其无状态链接,因此这是不可能的。唯一的方法是,你必须将你的应用程序部署在某种网络容器中,使用它你可以实现你的预期行为。另一种方法是,您可以使用AWS API网关的websocket打开连接(全双工(,并来回交易您想要的任何数据。

最新更新