對維護時段進行故障診斷 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對維護時段進行故障診斷

使用以下資訊以協助您對維護時段的問題進行故障診斷。

編輯任務錯誤:在編輯維護時段任務的頁面上,IAM角色清單會傳回錯誤訊息:「我們找不到為此任務指定的IAM維護時段角色。它可能已刪除,也可能尚未建立。」

問題 1:您最初指定的 AWS Identity and Access Management (IAM) 維護時段角色會在建立任務後刪除。

可能的修正:1) 如果您的帳戶中存在不同的IAM維護時段角色,請選取不同的維護時段角色,或建立新的維護時段角色,然後針對任務選取該角色。

問題 2:如果任務是使用 AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell或 建立 AWS SDK的,則可能指定了不存在的IAM維護時段角色名稱。例如,IAM維護時段角色可以在您建立任務之前刪除,或者角色名稱可能輸入不正確,例如 myrole 而非 my-role

可能的修正 :選取您要使用的IAM維護時段角色的正確名稱,或建立新的維護時段角色以指定任務。

並非所有維護時段目標都會更新

問題:您注意到維護時段任務並未在維護時段目標的所有資源上執行。例如,在維護時段的執行結果中,該資源的任務會標示為失敗或逾時。

解決方案:維護時段任務未在目標資源上執行的最常見原因涉及連線和可用性。例如:

  • Systems Manager 在維護時段操作之前或期間失去資源的連線。

  • 在維護時段操作期間,資源已離線或停用。

您可以等待下一個排定的維護時段時間,在資源上執行任務。您可以在無法使用或離線的資源上手動執行維護時段任務。

任務失敗,任務調用狀態為:「提供的角色不包含正確的SSM許可。」

問題 :您已為任務指定維護時段服務角色,但任務無法成功執行,且任務調用狀態報告「提供的角色不包含正確的SSM許可」。

  • 解決方案:在 任務 1:使用主控台為您的維護時段服務角色建立自訂政策 中,我們提供您可以連接至自訂維護時段服務角色的基本政策。此政策包含許多任務場景所需的許可。不過,由於您可以執行的任務種類繁多,您可能需要在維護時段角色的政策中提供其他許可。

    例如,某些自動化動作適用於 AWS CloudFormation 堆疊。因此,您可能需要為維護時段服務角色的政策新增其他許可:cloudformation:CreateStackcloudformation:DescribeStacks 以及 cloudformation:DeleteStack

    對於另一個範例,Automation Runbook AWS-CopySnapshot需要建立 Amazon Elastic Block Store (Amazon EBS) 快照的許可。因此,您可能需要新增許可 ec2:CreateSnapshot

    如需 AWS 受管 Automation Runbook 所需角色許可的相關資訊,請參閱 Automation Runbook AWS Systems Manager 參考 中的 Runbook 說明。

    如需有關 AWS 受管SSM文件所需角色許可的資訊,請在文件區段 Systems Manager 主控台中檢閱文件的內容。

    如需有關 Step Functions 任務、Lambda 任務和自訂 Automation Runbook 和SSM文件所需角色許可的資訊,請向這些資源的作者驗證許可要求。

任務失敗並顯示錯誤消息:「正在驗證和解決步驟輸入時,步驟失敗」

問題:您在任務中使用的 Automation Runbook 或 Systems Manager 命令文件需要您指定輸入,例如 InstanceIdSnapshotId,但未提供值或未正確提供值。

  • Solution 1 (解決方案 1):如果您的任務是針對單一資源 (例如單一節點或單一快照),請在任務的輸入參數中輸入其 ID。

  • 解決方案 2:如果您的任務鎖定多個資源,例如在使用 Runbook 時從多個節點建立映像AWS-CreateImage,您可以使用輸入參數中維護時段任務支援的其中一個虛擬參數來代表命令IDs中的節點。

    以下命令使用 AWS CLI向維護時段註冊 Systems Manager Automation 任務。--targets 值表示維護時段目標 ID。此外,即使 --targets 參數會指定時段目標 ID,Automation Runbook 的參數需要提供節點 ID。在這種情況下,命令會使用虛擬參數 {{RESOURCE_ID}} 作為 InstanceId 值。

    AWS CLI 命令:

    Linux & macOS

    下列範例命令會使用 ID e32eecb2-646c-4f4b-8ed1-205fb 重新啟動屬於維護時段目標群組的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體EXAMPLE。

    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類型任務,您必須指定至少一個要執行任務的目標。對於其他任務類型 (自動化和 AWS Step Functions) AWS Lambda,視任務的性質而定,目標為選用。選項 MaxConcurrency (同時執行任務的資源數量) 和 MaxErrors (在任務失敗之前在目標資源上執行任務的失敗次數) 不需要或不支援未指定目標的維護時段任務。如果在沒有指定任務目標時為這些選項的其中之一指定了值,則系統會產生這些錯誤訊息。

解決方案:如果您收到其中一個錯誤,請移除並行和錯誤閾值的值,然後繼續註冊或更新維護時段任務。

如需有關執行未指定目標之任務的詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 註冊不含目標的維護時段任務