如何解决AWS ECS Task单一实例
在我的体系结构中,当我在S3存储桶上收到新文件时,lambda函数会触发ECS任务。 当我同时收到多个文件时,会发生问题:lambda将触发作用于同一共享资源的同一ECS任务的多个实例。
我想确保仅1个实例正在运行特定的ECS任务,该怎么办? 有特定的设置可以确保吗?
我尝试在运行ECS任务的新实例之前查询ECS集群,但是(使用AWS Python SDK)当任务处于PROVISIONING状态时,我没有收到任何信息,SDK仅在任务处于执行状态时才返回数据在PENDING或RUNNING中。
谢谢
解决方法
我认为您无法控制它,因为您的S3事件将触发新任务。检查任务是否已在运行将更加困难,如果接收到很多文件,您可能会错过执行。
您应该以不同的方式实现想要的目标。如果您只希望执行一个任务处理,而无需从S3事件中触发ECS任务。如果实现队列,它可能会更好。您的S3事件应将信息(可能通过Lambda?)添加到SQS队列中。
从那里,您可以让ECS服务执行SQS long polling并一次处理一条消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。