AWS - 实例上的 SSM 代理:[<>] 无法正常工作

问题描述 投票:0回答:3

我遵循了 this 教程,以便在 ASG 终止实例之前执行 shell 命令。

但是当 SSM 尝试调用脚本时,我不断收到此错误

验证目标实例上的 SSM 代理可用性时,该步骤超时。实例上的 SSM 代理:[i-07b0850b2f3ced30c] 无法正常工作。更多诊断详情请参阅自动化服务故障排除指南。

我错过了什么?这是因为SSM代理正在停止?这与权限有关吗?

这是我正在使用的自动化:

description: 'This document will disjoin instances From an Active Directory, create an AMI of the instance, send a signal to LifeCycleHook to terminate the instance'
schemaVersion: '0.3'
assumeRole: '{{automationAssumeRole}}'
parameters:
  automationAssumeRole:
    default: 'arn:aws:iam::012345678901:role/automationAssumeRole'
    description: (Required) The ARN of the role that allows automation to perform the actions on your behalf.
    type: String
  ASGName:
    default: My_AutoScalingGroup
    type: String
  InstanceId:
    type: String
  LCHName:
    default: my-lifecycle-hook
    type: String
mainSteps:
  - inputs:
      DocumentName: AWS-RunShellScript
      InstanceIds:
        - '{{ InstanceId }}'
      TimeoutSeconds: 3600
      Parameters:
        commands: ifconfig
        executionTimeout: '7200'
    name: DoSomething
    action: 'aws:runCommand'
    onFailure: 'step:TerminateTheInstance'
  - inputs:
      LifecycleHookName: '{{ LCHName }}'
      InstanceId: '{{ InstanceId }}'
      AutoScalingGroupName: '{{ ASGName }}'
      Service: autoscaling
      Api: CompleteLifecycleAction
      LifecycleActionResult: CONTINUE
    name: TerminateTheInstance
    action: 'aws:executeAwsApi'
amazon-web-services amazon-ec2 amazon-cloudwatch autoscaling aws-ssm
3个回答
0
投票

运行文档时实例是否已被管理?应该是.. 此错误表明 ssm 代理在实例上未激活,因此未传递命令。

我不希望 ssm 代理因规模缩小而停止..因为实例由于生命周期挂钩而处于终止:等待状态。


0
投票

我遇到了同样的错误,并通过以下故障排除步骤修复了它。

  1. 检查 IAM 角色权限,实例应附加“AmazonSSMFullAccess”策略。
  2. 实例是否具有在入站规则上附加了 HTTPS(443) 端口的安全组。 SSM 代理使用 HTTPS 端口来处理实例。
  3. 检查实例上是否正在运行 SSM 代理。 如果 SSM 代理未运行,请使用以下系统管理器文档启动 SSM 代理(如果是 Linux 实例,请使用 shell 命令/脚本)。

在Windows实例中启动SSM代理的文档:

{
  "schemaVersion": "2.0",
  "description": "Start SSM agent on instance",
  "mainSteps": [
    {
      "action": "aws:runPowerShellScript",
      "name": "runPowerShellScript",
      "inputs": {
        "runCommand": [
          "Start-Service AmazonSSMAgent"
        ]
      }
    }
  ]
}

希望这些步骤对您有帮助,谢谢。


0
投票

我也遇到过类似的问题,最让我烦恼的是向实例角色添加“AmazonSSMFullAccess”策略。

© www.soinside.com 2019 - 2024. All rights reserved.