示例计划 - AWS 上的实例调度器

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例计划

AWS 上的实例调度器允许您自动启动和停止亚马逊弹性计算云 (Amazon EC2) 和亚马逊关系数据库服务 (Amazon RDS) 实例。以下部分提供了一些可以适应许多常见用例的计划示例。

标准工作时间 9-5 小时

此时间表显示了如何在伦敦的工作日上午 9 点至下午 5 点运行实例。

时间段

此时段将在工作日(周一至周五)上午 9 点启动实例,下午 5 点停止实例。

字段 类型

begintime

String

09:00

endtime

String

16:59

name

String

weekdays-9-5

weekdays

StringSet

mon-fri

计划

计划名称提供了必须应用于实例的标签值以及将要使用的时区。

字段 类型

name

String

london-working-hours

periods

StringSet

weekdays-9-5

timezone

String

Europe/London

实例标签

要将此计划应用于实例,您必须为实例添加Schedule=london-working-hours标签。如果您在 AWS CloudFormation 实例计划程序标签名称参数中更改默认标签名称,则标签将有所不同。例如,如果您输入Sked作为标签名称,则您的标签将是Sked=london-working-hours。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的为资源添加标签

调度程序 CLI

要使用实例计划程序 CLI 配置上述计划,请使用以下命令:

scheduler-cli create-period --stack <stackname> --name weekdays-9-5 --weekdays mon-fri --begintime 9:00 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name london-working-hours --periods weekdays-9-5 --timezone Europe/London

Europe/London

自定义资源

以下 CloudFormation 模板将使用计划自定义资源创建上述时间表

要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceTokenARN,方法是选择之前部署的实例调度器中心堆栈,然后选择输出。

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  LondonWorkingWeek:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: london-working-hours
      Description: run instances from 9am to 5pm in London on weekdays
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: Europe/London
      Periods:
     - Description: 9am to 5pm on weekdays
        BeginTime: '09:00'
        EndTime: '16:59'
        WeekDays: mon-fri

下午 5 点之后停止实例

实例可以在一天中的任何时间自由启动,此时间表将确保每天美国东部时间下午 5 点自动向其发送停止命令。

时间段

此时段将在每天下午 5 点停止实例。

字段 类型

endtime

String

16:59

name

String

stop-at-5

计划

计划名称提供了必须应用于实例的标签值以及将要使用的时区。

Field Value

name

String

stop-at-5-new-york

periods

StringSet

stop-at-5

timezone

String

America/New York

实例标签

要将此计划应用于实例,您必须为实例添加Schedule=stop-at-5-new-york标签。如果您更改了 AWS CloudFormation 实例计划程序标签名称参数中的默认标签名称,则您的标签将有所不同。例如,如果您输入Sked作为标签名称,则您的标签将是Sked=stop-at-5-new-york。有关更多信息,请参阅 Amazon 弹性计算云用户指南中的为资源添加标签

调度程序 CLI

要使用实例计划程序 CLI 配置上述计划,请使用以下命令:

scheduler-cli create-period --stack <stackname> --name stop-at-5 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name stop-at-5-new-york --periods stop-at-5 --timezone America/New_York

自定义资源

以下 CloudFormation 模板将使用计划自定义资源创建上述时间表

要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceTokenARN,方法是单击之前部署的实例调度器中心堆栈并选择输出。

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopAfter5:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: stop-at-5-new-york
      Description: stop instances at 5pm ET every day
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: stop at 5pm
        EndTime: '16:59'

在周末停止实例

此时间表显示了如何从美国东部时间星期一上午 9 点到美国东部时间星期五下午 5 点运行实例。由于星期一和星期五不是一整天,因此该时间表包括三个时段可供选择:星期一、星期二至星期四和星期五。

时间段

第一个周期从星期一上午 9 点开始标记实例,并在午夜停止。此时间段包括以下字段和值。

字段 类型

begintime

String

09:00

endtime

String

23:59

name

String

mon-start-9am

weekdays

StringSet

mon

第二阶段从周二到周四全天运行带标签的实例。此时间段包括以下字段和值。

Field Value

name

String

tue-thu-full-day

weekdays

StringSet

tue-thu

第三个时段将在周五下午 5 点停止带标签的实例。此时间段包括以下字段和值。

Field Value

begintime

String

00:00

endtime

String

16:59

name

String

fri-stop-5pm

weekdays

StringSet

fri

计划

该计划将三个时段合并到标记实例的时间表中。该计划包括以下字段和值。

Field Value

name

String

周一至上午9点至周五至下午5点

periods

StringSet

周一开始-上午9点,,星期五-stop-下午5点 tue-thu-full-day

timezone

String

America/New_York

实例标签

要将此计划应用于实例,您必须为实例添加Schedule=mon-9am-fri-5pm标签。请注意,如果您更改了 AWS CloudFormation 实例计划程序标签名称参数中的默认标签名称,则您的标签将有所不同。例如,如果您输入 Sked 作为标签名称,则您的标签将是。Sked=mon-9am-fri-5pm有关更多信息,请参阅 Amazon 弹性计算云用户指南中的为资源添加标签

调度程序 CLI

要使用实例计划程序 CLI 配置上述计划,请使用以下命令:

scheduler-cli create-period --stack <stackname> --name
mon-start-9am --weekdays mon --begintime 9:00 --endtime 23:59
scheduler-cli create-period --stack <stackname> --name
tue-thu-full-day --weekdays tue-thu
scheduler-cli create-period --stack <stackname> --namefri-stop-5pm --weekdays fri --begintime 0:00 --endtime 17:00

scheduler-cli create-schedule --stack <stackname> --name
mon-9am-fri-5pm --periods
mon-start-9am,tue-thu-full-day,fri-stop-5pm -timezone
America/New_York

自定义资源

以下 CloudFormation 模板将使用计划自定义资源创建上述时间表

要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceTokenARN,方法是选择之前部署的实例调度器中心堆栈,然后选择输出。

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopOnWeekends:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: mon-9am-fri-5pm
      Description: start instances at 9am on monday and stop them at 5pm on friday
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: 9am monday start
        BeginTime: '09:00'
        EndTime: '23:59'
        WeekDays: mon
      - Description: all day tuesday-thursday
        WeekDays: tue-thu
      - Description: 5pm friday stop
        BeginTime: '00:00'
        EndTime: '16:59'
        WeekDays: fri

解决方案资源

以下资源是作为 AWS 堆栈上实例计划程序的一部分创建的。

资源名称 类型 说明

Main

AWS::Lambda::Function

AWS 上的实例调度器 Lambda 函数。

调度器配置助手

Custom::ServiceSetup

将全局配置设置存储在亚马逊 DynamoDB 中。

调度器调用权限

AWS::Lambda::Permission

允许亚马逊 CloudWatch 事件调用实例计划程序的 AWS Lambda 函数。

调度程序日志

AWS::Logs::LogGroup

CloudWatch 实例调度程序的日志组。

日程安排器政策

AWS::IAM::Policy

允许计划程序执行启动和停止操作、更改 Amazon EC2 实例属性、设置标签和访问计划程序资源的策略。

调度器规则

AWS::Events::Rule

调用计划程序的 Lambda 函数的亚马逊 EventBridge 事件规则。

配置指标事件规则

AWS::Events::Rule

定期调用配置描述匿名指标函数的 Amazon EventBridge 事件规则。禁用匿名指标时禁用。

状态表

AWS::DynamamoDB::Table

存储实例上次所需状态的 DynamoDB 表。

Config 表

AWS::DynamamoDB::Table

存储全局配置、计划和周期数据的 DynamoDB 表。

实例调度程序 SNS 主题

AWS::SNS::Topic

向订阅的电子邮件地址发送警告和错误消息。