AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Run Command 发送返回状态通知的命令

以下过程演示了如何使用 AWS Command Line Interface (AWS CLI) 或 AWS Systems Manager 控制台发送配置为返回状态通知的 Run Command。

发送返回通知的 Run Command(控制台)

使用以下过程使用 Systems Manager 控制台通过配置为返回状态通知的 Run Command 发送命令。

发送返回通知的命令(控制台)

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择运行命令

  4. Command document (命令文档) 列表中,选择一个 Systems Manager 文档。

  5. Targets (目标) 部分中,指定标签、手动选择实例或者指定资源组以确定要在其中运行该操作的实例。

    注意

    如果选择手动选择实例,而列表中不包含您预期看到的实例,请参阅我的实例在哪里?中的故障排除提示。

  6. 命令参数部分中,为必需的参数指定值。

  7. 对于其他参数

    • 对于注释,请键入有关该命令的信息。

    • 对于超时 (秒),请指定在整个命令执行失败之前系统等待的秒数。

  8. (可选)对于速率控制

    • 对于并发,请指定要同时运行该命令的实例数或百分比。

      注意

      如果通过指定应用于托管实例的标记或通过指定 AWS 资源组选择了目标,并且您不确定针对的是多少实例,则可以通过指定百分比来限制可同时运行此文档的实例的数量。

    • 对于错误阈值,请指定在一定数量或百分比的实例上失败后何时在其他实例上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理命令的实例也可能发送错误。

  9. 输出选项部分中,如果您要将命令输出保存到文件,请选择将命令输出写入 Amazon S3 存储桶。在框中键入存储桶和前缀 (文件夹) 名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限是分配给实例的实例配置文件的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅 为 Systems Manager 创建 IAM 实例配置文件

  10. SNS Notifications 部分中,选择 Enable SNS notifications

  11. IAM role (IAM 角色) 字段中,键入或粘贴您在主题为 AWS Systems Manager 配置 Amazon SNS 通知的任务 3 中创建的 SNS IAM 角色 ARN。

  12. SNS topic (SNS 主题) 字段中,键入或粘贴要使用的 Amazon SNS 主题 ARN。

  13. Notify me on 字段中,选择要接收其通知的事件。

  14. Notify me for 字段中,选择接收发送给多个实例(调用)或命令摘要的命令的每个副本的通知。

  15. 选择运行

  16. 检查来自 Amazon SNS 的电子邮件消息并打开电子邮件。Amazon SNS 需要几分钟才能发送电子邮件。

发送返回通知的 Run Command (CLI)

使用以下过程使用 AWS CLI 通过配置为返回状态通知的 Run Command 发送命令。

发送返回通知的命令 (CLI)

  1. 打开 AWS CLI。

  2. 在以下命令中指定参数来基于托管实例 ID 定位:

    aws ssm send-command --instance-ids "ID-1, ID-2" --document-name "Name" --parameters '{"commands":["input"]}' --service-role "SNSRoleARN" --notification-config '{"NotificationArn":"SNSTopicName","NotificationEvents":["All"],"NotificationType":"Command"}'

    例如:

    aws ssm send-command --instance-ids "i-02573cafcfEXAMPLE, i-0471e04240EXAMPLE" --document-name "AWS-RunPowerShellScript" --parameters '{"commands":["Get-Process"]}' --service-role "arn:aws:iam::111122223333:role/SNS_Role" --notification-config '{"NotificationArn":"arn:aws:sns:us-east-1:111122223333:SNSTopic","NotificationEvents":["All"],"NotificationType":"Command"}'

    替代命令

    在以下命令中指定参数来使用标签定位托管实例:

    aws ssm send-command --targets "Key=tag:TagName,Values=TagKey" --document-name "Name" --parameters '{"commands":["input"]}' --service-role "SNSRoleARN" --notification-config '{"NotificationArn":"SNSTopicName","NotificationEvents":["All"],"NotificationType":"Command"}'

    例如:

    aws ssm send-command --targets "Key=tag:Environment,Values=Dev" --document-name "AWS-RunPowerShellScript" --parameters '{"commands":["Get-Process"]}' --service-role "arn:aws:iam::111122223333:role/SNS_Role" --notification-config '{"NotificationArn":"arn:aws:sns:us-east-1:111122223333:SNSTopic","NotificationEvents":["All"],"NotificationType":"Command"}'
  3. Enter.

  4. 检查来自 Amazon SNS 的电子邮件消息并打开电子邮件。Amazon SNS 需要几分钟才能发送电子邮件。

有关从命令行配置 Run Command 的更多信息,请参阅 Amazon EC2 Systems Manager API ReferenceSystems Manager AWS CLI 参考