我当前的ECS基础设施的工作方式如下: ALB -> ECS Fargate --> ECS service -> ECS task。现在,我想用计划的ECS任务替换普通的ECS任务。但是,我找不到一种方法来将调度的ECS任务连接到服务,从而使其可以通过ALB访问。这不可能吗?
提前感谢您的回答。
发布于 2021-11-15 17:32:26
计划任务实际上更多的是为了完成给定任务然后退出而运行的任务。
如果您希望将ECS任务连接到负载平衡器,则应将其作为服务的一部分运行。当任务作为服务运行时,ECS将为您处理将任务连接到负载均衡器。
您在评论中提到,您的最终目标是在每天的特定时间运行一个开发环境。您可以使用ECS服务和scheduled auto-scaling来实现这一点。由于某些原因,此功能无法通过AWS Web控制台使用,但您可以通过AWS CLI或其中一个AWS SDK进行配置。您可以将其配置为在您不希望应用程序运行的时间内扩展到0,并在您希望应用程序运行的时间内扩展到1或更多。
发布于 2021-11-15 12:54:16
计划的ECS任务是使用API启动的一次性任务,与RunTask没有任何关系(因为它不是ECS服务的一部分)。你也许可以做到这一点,但你可能需要自己构建连接,找出任务的详细信息并将其添加到目标组中。我相信您需要做的(如果您希望ECS处理连接)是调度一个Lambda,该Lambda递增服务中所需的任务数量。我也想知道这方面的用例是什么(因为可能还有其他方法来实现它)。计划任务通常是某种批处理作业,而不是需要连接到负载均衡器的web服务。您的方案/最终目标是什么?
更新:我错过了对调度所需数量的任务的非UI支持,所以实际上并不需要Lambda。
https://stackoverflow.com/questions/69974181
复制相似问题