我目前正在使用包含 NestJS、PostgreSQL 和 AWS 的堆栈开发一个应用程序。该应用程序将提供一个聊天环境,利用 OpenAI API 和 WebSocket 进行实时通信。
如何使用 CI/CD 实践有效管理部署在 AWS 上的应用程序中的 WebSocket?
我应该为此目的使用任何推荐的工具或服务吗?
将 WebSocket 从本地环境过渡到 AWS 时是否有具体注意事项或最佳实践?
如果我想在这种情况下利用 AWS API Gateway 和 AWS Lambda,如何才能最好地将它们合并到我的应用程序中?
在此过程中我可能会遇到潜在的挑战吗?可能的解决方案或解决方法是什么?
在这种情况下,使用 WebSocket 创建网关最合理的位置在哪里?
这里的管理是什么意思?保持更新吗?状态管理?如何使用 CI/CD 实践有效管理部署在 AWS 上的应用程序中的 WebSocket?
我应该为此目的使用任何推荐的工具或服务吗?IaC 是最简单的资源管理方式。定义 AWS API、数据库(例如 aurora)以及相关权限和资源的 IaC 模板可以进入 Git 存储库并管理基础设施资源以适当匹配代码版本。
将 WebSocket 从本地环境迁移到 AWS 时是否有具体注意事项或最佳实践?如果您可以将其映射到 swagger 模板,则可以简化转换。或者如果它是通过代码在本地定义的。
如果我想在这种情况下利用 AWS API Gateway 和 AWS Lambda,如何最好地将它们合并到我的应用程序中?API Gateway 将使用 Lambda 来处理每个请求。通过网络套接字响应 out。您也可以查看 appsync。
在此过程中我可能会遇到潜在的挑战吗?可能的解决方案或解决方法是什么?很多。这就是需求陷阱的发现和优化发挥作用的地方。前进的道路有很多,但这一切都取决于工作流程的限制。
在这种情况下,使用 WebSocket 创建网关最合理的位置在哪里?要么在前端(互联网可以访问),要么在内部。但这取决于谁在连接以及连接到什么。
AWS API Gateway 和 Lambda 函数来进行有效的 WebSocket 管理。它非常适合 AWS CodePipeline 和 GitHub 操作。至于其他工具,如果您在 EC2 上运行 NestJS,您可能会对DynamoDB(用于跟踪活动连接)和Elastic Load Balancer感兴趣。
从本地迁移到 AWS 时,您需要更新连接 URL 并设置适当的 IAM 角色和权限。对于AWS API Gateway和AWS Lambda,在API Gateway中创建WebSocket路由。每个路由都会触发特定的 Lambda 函数。
潜在问题:
src/websocket/websocket.gateway.ts
。