AWS Instance Scheduler修改时区与办公时间后实例无法启停求助
AWS Instance Scheduler 修改时区/办公时间后无法启停的解决方案
排查与修复步骤
验证DynamoDB调度配置
登录DynamoDB控制台,打开scheduler-config表,检查目标调度规则的字段:timezone必须是IANA标准格式(如Asia/Shanghai),禁止使用GMT+8这类非标准格式schedule需符合Instance Scheduler格式(如mon-fri:09:00-18:00),检查日期范围(mon-sun)、时间格式(24小时制)是否无拼写错误
核对CloudWatch Event触发时区
进入CloudWatch Events控制台,找到Instance Scheduler的触发规则,确认其配置的时区与DynamoDB中timezone完全一致。默认触发规则可能用UTC,修改调度时区后需同步更新,否则时间计算会偏差。检查Lambda执行日志
找到命名含InstanceScheduler的Lambda函数,查看CloudWatch日志:- 搜索
timezone、schedule关键词,确认函数是否正确解析配置 - 排查权限报错(如无法读取DynamoDB、无法操作EC2),日志会明确提示缺失的权限
- 搜索
确认EC2实例标签
目标EC2必须带Schedule标签,值与DynamoDB中调度规则名称匹配;若有Enabled标签,值需为true(设为false会跳过调度)强制刷新配置
手动触发Lambda函数执行:进入Lambda控制台,选中目标函数,点击「测试」用默认事件执行,强制函数重新读取最新配置,避免缓存导致的配置未生效。修正IAM权限
确保InstanceSchedulerRole角色具备以下权限:ec2:StartInstances、ec2:StopInstancesdynamodb:GetItem、dynamodb:Scan(针对scheduler-config表)
若权限缺失,更新角色的权限策略。
特殊场景处理
- 跨区域调度:若调度其他区域的EC2,需确认Instance Scheduler部署在对应区域,或角色配置了跨区域EC2操作权限。
- 夏令时影响:部分时区有夏令时切换,可考虑改用UTC作为调度时区,避免时间偏移问题。
内容的提问来源于stack exchange,提问作者sai harinadh
相关产品推荐
相关产品推荐

