繁体   English   中英

如何运行 AWS ECS 任务,然后运行 Lambda function,然后最终停止任务?

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

我是 AWS 新手。 我有一个 Lambda function 我想在格林威治标准时间每天凌晨 4:00 运行。 Lambda function 依赖于要运行的 AWS ECS 容器任务。 我不想运行 AWS ECS 容器任务以始终运行(因为它对我来说成本很高),我希望能够触发运行它,然后在 Lambda 任务准备好时运行,最后在 Lambda ZC1C425268E68385D1AB1Z5074A 完成时运行,想要阻止它。

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

其他信息:

Lambda function 具有 Node.js 环境。

ECS 向 EventBridge (EB) 发送事件 您可以在 EB 中设置规则以捕获感兴趣的事件并触发您的 lambda function 作为事件的目标。

示例 EB 规则可以是:

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

规则的其他定制是可能的。

还有如何在 Lambda function 完成时停止任务。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM