InvalidInstanceId:调用SendCommand操作时发生错误(InvalidInstanceId)

新手上路,请多包涵

下面是我从 python 运行以在 aws ec2 实例中执行命令的代码

import boto3
ec2 = boto3.client('ssm',region_name='us-east-1',aws_access_key_id='xxxxxxxxxxxxxxx',aws_secret_access_key='xxxxxxxxx')
a = ec2.send_command(InstanceIds=ids, DocumentName='AWS-RunShellScript', Comment='abcdabcd', Parameters={"commands":["ifconfig"]})

但它给出了以下错误

InvalidInstanceId: An error occurred (InvalidInstanceId) when calling the SendCommand operation:

原文由 Teja 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 912
2 个回答

以下情况可能会导致出现此错误消息:

  • 实例 ID 无效(在您已验证的评论中它不是)
  • 实例位于不同的区域(在您已验证的评论中它不是)
  • 实例当前未处于 运行 状态
  • 实例没有安装和运行 AWS SSM 代理
  • 实例没有向 ssm 注册的正确 iam 权限

您需要登录到 AWS EC2/SSM 控制台并确保您尝试管理的实例显示在 SYSTEMS MANAGER SHARED RESOURCES - Managed Instances 列表中,并且它们显示 Ping 状态Online 。如果不是,您需要在尝试向相关实例发送命令之前修复它。

您应该使用以下两个策略之一来确保您的 aws ec2 实例 可以向 ssm 注册

  • AmazonSSMManagedInstanceCore
  • AmazonSSMFullAccess

原文由 Mark B 发布,翻译遵循 CC BY-SA 4.0 许可协议

确保您的实例具有 SSM 设置。对于 Linux,您需要使用 Amazon Linux AMI 或手动安装。

跑步:

 aws ssm describe-instance-information --output text

从您的实例中查看 SSM 代理版本。因此,请确保您的实例在该列表中。

另请参阅: SSM 向 EC2 实例发送命令失败

原文由 kenorb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题