仅请求1个Fargate任务,但创建了多个

0

【以下的问题经过翻译处理】 我创建了一个Lambda(NodeJS),它会在文件上传到S3存储桶时触发。该Lambda使用AWS SDK(v2)中的ecs.runTask方法来创建一个Fargate任务,任务定义包括两个容器来处理上传的文件。该任务在没有定义服务的ECS集群中创建。

我遇到的问题是,虽然我只请求创建一个任务,但总是看到创建了两个任务。它们都运行并产生日志,表示它们已经处理了上传的文件(但我只想处理一次文件)。

Lambda的CloudWatch日志看起来很正常,只返回一个任务的详细信息(其中包括一个创建的任务的taskArn)。

我尝试从TaskDef中删除一个容器并获得相同的行为(即两个任务,每个任务包含1个容器)。我尝试将要创建的任务计数更新为3,然后启动6个任务(Lambda日志显示3个taskARN)。 (重复的任务总是在第一个任务创建的一两秒钟内创建。)如果我使用相同的设置从管理控制台创建任务,它只会按预期创建1个任务。

如果有任何建议,关于可能的问题原因或如何进一步调试的建议,我将不胜感激。

profile picture
EXPERTE
gefragt vor 6 Monaten16 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 很难在不深入调查的情况下回答您的问题 - 您确定lambda只执行一次吗……您的代码中也可能有两次调用(但只记录了一次)。

使用Lambda启动Fargate任务以处理S3中的文件并不是一个好的模式,因为错误处理等方面很困难,我建议使用Step Functions,它可以通过Event Bridge触发,可以同步启动fargate tasks,并具有完整的逻辑与错误处理能力。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen