我怎样才能 运行 一个 AWS ECS 任务,然后 运行 一个 Lambda 函数就绪后最终停止任务?

How can I run an AWS ECS Task and then run a Lambda function after its ready then finally stop the Task?

我是 AWS 新手。我有一个 Lambda 函数,我想每天 运行 在 4:00 AM GMT。 Lambda 函数依赖于 AWS ECS 容器任务 运行ning。我希望能够触发 运行 它然后 运行 而不是 运行 将 AWS ECS 容器任务总是 运行 ] Lambda 任务准备就绪,最后当 Lambda 函数完成时,我想停止它。

我对此进行了调查,发现我可以 运行 使用 Amazon EventBridge 规则的 Lambda 函数。我知道我可以在每天上午 4:00 时使用 CRON 表达式 0 4 * * ? * 到 运行。但是,我不确定如何首先 运行 ECS 容器任务以及如何在 Lambda 函数完成时停止任务。

其他信息:

Lambda 函数具有 Node.js 环境。

ECS 向 EventBridge (EB) 发出 events。您可以在 EB 中设置一个规则来捕获感兴趣的事件并触发您的 lambda 函数作为事件的目标。

示例 EB 规则可以是:

{
  "source": [
    "aws.ecs"
  ],
  "detail-type": [
    "ECS Task State Change"
  ],
  "detail": {
    "lastStatus": [
      "RUNNING"
    ]
  }
}

可以对规则进行其他自定义。

also how to stop the task when the Lambda function finishes.

您的 lambda 可以使用 AWS SDK for ECS 并停止任务。 EB 事件捕获将包含启动了哪个任务的信息。

您还可以通过步骤函数编排您的 lambda 和 ecs 任务: