在我上一份工作中,
我在 GCP 上,我们在云运行上使用 fastAPI 推出了 API 服务。 当气流 dag 调用云运行服务时,它会设置 10 分钟超时,这样我就可以一遍又一遍地使用相同的服务。
ECS 任务的问题是我需要为 DAG 中的每个 API 调用调用 X 次任务。因为当调用成功后,服务就关闭了。
我不需要 ECS 服务,因为我不使用我的 API 24/24,但仅用于少数调用。
您有什么想法可以解决这个问题吗?
如果您要从 Cloud Run 的便捷设置迁移到 AWS,我建议您使用 AWS App Runner。这是最接近的匹配 - 缩放到零并像 Cloud Run 一样处理并发请求。
如果您需要坚持使用 ECS,您可以使用 Lambda 作为“管理器”,让您的 ECS 任务在第一个请求后的一段时间窗口(例如 30 分钟)内保持活动状态。这样,多个 DAG 调用可以重用相同的任务,而不是产生新的任务。当窗口到期且没有任何活动时,让它自然关闭。这为您提供了所需的按需行为,而无需不断创建任务的开销。