本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例计划
AWS 上的实例调度器允许您自动启动和停止亚马逊弹性计算云 (Amazon EC2) 和亚马逊关系数据库服务 (Amazon RDS) 实例。以下部分提供了一些可以适应许多常见用例的计划示例。
标准工作时间 9-5 小时
此时间表显示了如何在伦敦的工作日上午 9 点至下午 5 点运行实例。
时间段
此时段将在工作日(周一至周五)上午 9 点启动实例,下午 5 点停止实例。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计划
计划名称提供了必须应用于实例的标签值以及将要使用的时区。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实例标签
要将此计划应用于实例,您必须为实例添加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 点停止实例。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
计划
计划名称提供了必须应用于实例的标签值以及将要使用的时区。
| Field | Value | |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实例标签
要将此计划应用于实例,您必须为实例添加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 点开始标记实例,并在午夜停止。此时间段包括以下字段和值。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
第二阶段从周二到周四全天运行带标签的实例。此时间段包括以下字段和值。
| Field | Value | |
|---|---|---|
|
|
|
|
|
|
|
|
第三个时段将在周五下午 5 点停止带标签的实例。此时间段包括以下字段和值。
| Field | Value | |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计划
该计划将三个时段合并到标记实例的时间表中。该计划包括以下字段和值。
| Field | Value | |
|---|---|---|
|
|
|
周一至上午9点至周五至下午5点 |
|
|
|
周一开始-上午9点,,星期五-stop-下午5点 tue-thu-full-day |
|
|
|
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 函数。 |
|
调度器配置助手 |
|
将全局配置设置存储在亚马逊 DynamoDB 中。 |
|
调度器调用权限 |
|
允许亚马逊 CloudWatch 事件调用实例计划程序的 AWS Lambda 函数。 |
|
调度程序日志 |
|
CloudWatch 实例调度程序的日志组。 |
|
日程安排器政策 |
|
允许计划程序执行启动和停止操作、更改 Amazon EC2 实例属性、设置标签和访问计划程序资源的策略。 |
|
调度器规则 |
|
调用计划程序的 Lambda 函数的亚马逊 EventBridge 事件规则。 |
|
配置指标事件规则 |
|
定期调用配置描述匿名指标函数的 Amazon EventBridge 事件规则。禁用匿名指标时禁用。 |
|
状态表 |
|
存储实例上次所需状态的 DynamoDB 表。 |
|
Config 表 |
|
存储全局配置、计划和周期数据的 DynamoDB 表。 |
|
实例调度程序 SNS 主题 |
|
向订阅的电子邮件地址发送警告和错误消息。 |