如何解决如何运行 AWS ECS 任务,然后在准备就绪后运行 Lambda 函数,然后最终停止任务?
我是 AWS 的新手。我有一个 Lambda 函数,我想每天在格林威治标准时间凌晨 4:00 运行。 Lambda 函数依赖于要运行的 AWS ECS 容器任务。而不是运行 AWS ECS 容器任务总是运行(因为它对我来说成本很高),我希望能够触发运行它,然后在准备好时运行 Lambda 任务,最后当 Lambda 函数完成时,我想阻止它。
我对此进行了调查,发现我可以使用 Amazon EventBridge 规则运行 Lambda 函数。我知道我可以使用 CRON 表达式 0 4 * * ? *
在每天凌晨 4:00 运行它。但是,我不确定如何先运行 ECS Container 任务,以及如何在 Lambda 函数完成后停止任务。
其他信息:
Lambda 函数具有 Node.js 环境。
解决方法
ECS 向 EventBridge (EB) 发出 events。您可以在 EB 中设置规则来捕获感兴趣的事件并触发您的 lambda 函数作为事件的目标。
示例 EB 规则可以是:
{
"source": [
"aws.ecs"
],"detail-type": [
"ECS Task State Change"
],"detail": {
"lastStatus": [
"RUNNING"
]
}
}
规则的其他自定义是可能的。
还有如何在 Lambda 函数完成时停止任务。
您的 lambda 可以使用适用于 ECS 的 AWS 开发工具包并停止任务。 EB 事件捕获将包含启动了哪个任务的信息。
您还可以通过步进函数来编排您的 lambda 和 ecs 任务:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。