在 AWS 上,每天运行 AWS CLI 命令

问题描述 投票:0回答:3

我有一个 AWS CLI 调用(在本例中,启动已配置的 EMR 集群来执行一些步骤,然后关闭),但我不确定如何每天运行它。

我猜想实现此目的的一种方法是运行 cron 作业的 EC2 微型实例,或者启动该命令的微型 ECS 任务,但这一切似乎都有点过头了。看起来在 Lambda 中也有一种方法可以做到这一点,但据我所知,它会很笨拙。

这不一定是一个好的长期解决方案,在我能正确完成之前合适的东西(数据管道)就可以很好地工作。

建议?

amazon-web-services aws-cli amazon-emr
3个回答
1
投票

如果不严格要求使用 AWS CLI,您可以使用 AWS 开发工具包之一以编程方式调用 Lambda。

  • 使用 cron
  • 安排 CloudWatch 规则
  • 配置后,CloudWatch 规则将触发 Lambda 函数
  • 实现使用受支持的开发工具包之一调用 EMR 的 Lambda 函数(例如 AWS JavaScript SDK 中的 EMR 类)
  • 确保您已完成 IAM 配置

完整示例可在使用 CloudWatch Events 安排 AWS Lambda 函数

中找到

克鲁吉?是的,需要配置,但是如果您考虑到启动 EC2 / ECS 所需的工作量(并确保它在发生故障时重新启动),我会说它是平衡的。


0
投票

不确定您正在执行的整个任务,但要避免这样做:

  1. 手动
  2. 避免在 AWS 中再次设置资源(正如您提到的)

我会在像

Continuous Integration (CI)
这样的
jenkins,bamboo,circleci .....
服务器中创建一个简单的作业(列表可以继续)。我假设您可能已经运行了 CI 服务器,为什么不使用它呢?


0
投票

https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/scheduler-command-line.html

我在配置时遇到问题,但我相信这是一个可行的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.