【问题标题】:How can I turn on/off my AWS EC2 Scheduler with Lambda/DynamoDB twice a day?如何每天两次使用 Lambda/DynamoDB 打开/关闭 AWS EC2 调度程序?
【发布时间】:2020-10-01 09:42:51
【问题描述】:

我想为我的 EC2 设置一个时间表,使其每天在两个特定时间开启两次 - 上午 12:00 和下午 12:00 - 并在 30 分钟后关闭(下午 12:30 和上午 00:30)。

我创建了一个 EC2 调度程序/表(标记名:Schedule),然后在配置文件中设置了两个调度(refresh-1 和 refresh-2),其中包括两个时段/小时。

当我将“键”和“值”字段添加到 EC2 中的“管理任务”页面时,我收到一条错误消息,提示我只能指定唯一的标签键。

这是否意味着我需要两个单独的 EC2 调度程序/表才能在两个不同的时间打开/关闭我的 EC2?例如:

  • 一个 EC2 调度程序/表,键:调度和值:refresh-1
  • 另一个 EC2 调度程序/表,键:Schedule-2 和值:refresh-2

尝试仅利用一个 EC2 调度程序/表的最简单解决方案是什么?

注意:我想使用 Lambda/DynamoDB,而不是其他解决方案。

谢谢!

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda amazon-dynamodb scheduler


    【解决方案1】:

    您看到的错误是因为您不能有两个具有相同密钥的 EC2 标签。因此,每个 EC2 实例上可能只有一个 Schedule 标签。

    After reviewing the EC2 Instance Scheduler documentation,您应该创建两个期间而不是创建两个时间表。一个时段为上午 12:00 至 12:30,另一个时段为下午 12:00 至下午 12:30。然后创建一个引用这两个时期的时间表。

    使用 CLI 会是这样的:

    $ scheduler-cli create-period --name noon30 --begintime 12:00 --endtime 12:30 --stack Scheduler
    
    $ scheduler-cli create-period --name midnight30 --begintime 00:00 --endtime 00:30 --stack Scheduler
    
    $ scheduler-cli create-schedule --name my-refresh --periods
    noon30,midnight30 --timezone Europe/London --stack Scheduler
    

    【讨论】:

    • 非常感谢。这让我意识到我可以通过简单地添加一个新字符串来为时间表添加一个额外的时间段。因此,我创建了两个时段,然后将两个时段都添加到“时段”部分下的日程表中。这就是我包含的内容:{"refresh-am","re​​fresh-pm"}
    【解决方案2】:

    您可能对我创建的Simple EC2 Stopinator in Lambda - DEV Community 感兴趣,而不是使用 AWS Instance Scheduler。它使用单个 Lambda 函数和一个 IAM 角色,仅此而已。

    它可以指定实例应该终止的持续时间(适用于沙盒测试),它可以安排实例停止。

    修改设置开始时间也应该相当容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多