这可能会因为基于意见而被关闭,但无论如何……
我在 ECS 中设置了一些计划任务,每天运行一次,但我也希望能够根据用户操作触发它们,例如,管理员单击我们应用程序中的按钮来启动其中一项计划任务需要比正常预定时间早。
如何实现这一目标?我正在考虑一个 API 网关端点,它使用 lba,它使用 aws-cli 中的 runtask 函数。这看起来过于复杂,因为您必须定义整个任务,而我只想“立即运行名为 x 的作业”,但我不确定这是否可能?
您可以创建 EventBridge Schedule 以按计划运行任务,并创建 API 网关端点以从管理面板运行任务。
我正在考虑一个 API 网关端点,它使用 lba,它使用 aws-cli 中的 runtask 函数。
您不需要 Lambda,更不用说 aws-cli。 API 网关允许与几乎所有 AWS 服务创建本机集成。如果您的管理按钮传递任何复杂的参数,您需要创建一个映射模板以将这些参数映射到您的任务参数。
一个可能的问题是时间表和按钮都会立即触发任务。如果并发调用两个任务是一个问题,您可能希望将作业提交到批处理队列,而不是立即触发它。
因为你必须定义整个任务,当我只想“现在运行名为 x 的作业”时
我不确定这两者是如何相反的。要运行名为 X 的作业,您需要首先定义名为 X 的作业。您可以通过创建任务定义来实现此目的,然后运行该任务时,只需将此定义的 ARN 作为参数提供给
RunTask
或 SubmitJob
。