故障排除维护时段 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

故障排除维护时段

使用以下信息可帮助您排除维护时段问题。

编辑任务错误:在用于编辑维护时段任务的页面上,IAM 角色列表返回以下错误消息:“我们找不到为此任务指定的 IAM 维护窗口角色。它可能已删除,也可能尚未创建。”

问题 1:您最初指定的 AWS Identity and Access Management (IAM) 维护时段角色在您创建任务后被删除。

可能的修复措施:(1) 选择其他 IAM 维护时段角色(如果您的账户中存在),或者新建一个并为任务选择该角色。(2) 创建或选择Amazon Web Services Systems Manager服务相关角色。有关更多信息,请参阅 我应该使用服务相关角色还是自定义服务角色来运行维护时段任务?

问题 2:如果任务是使用Amazon命令行界面 (AmazonCLI)、Amazon适用于 Windows PowerShell 的工具或AmazonSDK,则可能指定了不存在的 IAM 维护时段角色名称。例如,IAM 维护时段角色可能已在您创建任务之前删除,或者键入的角色名称不正确,如myrole而非my-role

可能的修复措施:(1) 为您要使用的 IAM 维护时段角色选择正确的名称,或者新建一个要为任务指定的角色。(2) 创建或选择 Systems Manager 服务相关角色。有关更多信息,请参阅 我应该使用服务相关角色还是自定义服务角色来运行维护时段任务?

并非所有维护时段目标都已更新

问题: 您注意到,维护时段任务未在维护时段所针对的所有资源上运行。例如,在维护窗口运行结果中,该资源的任务标记为失败或超时。

解决方案: 维护时段任务未在目标资源上运行的最常见原因涉及连接性和可用性。例如:

  • Systems Manager 在维护窗口操作之前或期间丢失与资源的连接。

  • 在维护时段操作期间,资源处于脱机状态或停止状态。

您可以等待下一个计划维护时段的时间来对资源运行任务。您可以在不可用或脱机的资源上手动运行维护时段任务。

任务失败,并显示错误消息:“步骤在验证和解析步骤输入时失败”

问题:在任务中使用的自动化运行簿或 Systems Manager 命令文档要求您指定输入(如InstanceId或者SnapshotId,但没有提供或未正确提供值。

  • 解决方案 1:如果您的任务针对单个资源(如单个实例或单个快照),请在任务的输入参数中输入其 ID。

  • 解决方案 2:如果您的任务是针对多个资源(例如,当您使用 Runbook 时从多个实例创建映像)AWS-CreateImage,您可以在输入参数中使用维护窗口任务支持的伪参数之一来表示命令中的实例 ID。

    以下命令使用将 Systems Manager Automation 任务注册到维护时段:AmazonCLI。这些区域有:--targets值表示维护时段目标 ID。此外,即使--targets参数指定窗口目标 ID,则自动化运行簿的参数需要提供实例 ID。在这种情况下,该命令使用伪参数{{RESOURCE_ID}}作为InstanceId值。

    Amazon CLI 命令:

    Linux & macOS

    以下命令重新启动属于维护窗口目标组的 Elastic Compute Cloud (Amazon EC2) 实例,ID 为 E32EECB2-646C-4F4b-8ED1-205FB 示例。

    aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \ --task-arn "AWS-RestartEC2Instance" \ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \ --task-type AUTOMATION \ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \ --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" \ --description "Automation task to restart EC2 instances"
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^ --task-arn "AWS-RestartEC2Instance" ^ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^ --task-type AUTOMATION ^ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" ^ --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" ^ --description "Automation task to restart EC2 instances"

    有关使用维护时段任务的伪参数的详细信息,请参阅关于伪参数任务注册示例

错误消息:“没有目标的维护窗口任务不支持 MaxConcurrency 值” 和 “没有目标的维护窗口任务不支持 MaxErrors 值”

问题: 注册 Run Command (运行 Command) 类型的任务时,必须至少指定一个目标,以便运行该任务。对于其他任务类型(自动化、Amazon Lambda, 和Amazon Step Functions),具体取决于任务的性质,目标是可选的。选项MaxConcurrency(要同时运行任务的资源数)和MaxErrors(在任务失败之前在目标资源上运行任务的失败次数)不是必需的,也不支持未指定目标的维护窗口任务。如果未指定任务目标,则系统会生成这些错误消息。

解决方案:如果您收到这些错误之一,请在继续注册或更新维护时段任务之前删除并发值和错误阈值。

有关运行未指定目标的任务的更多信息,请参阅。注册没有目标的维护时段任务中的Amazon Web Services Systems Manager用户指南