aws:runCommand - 在托管实例上运行命令 - AWS Systems Manager

aws:runCommand - 在托管实例上运行命令

运行指定的命令。

注意

自动化仅支持 AWS Systems Manager Run Command 操作的一个输出。一个运行手册可以包括多个 Run Command 操作,但一次仅支持对一个操作输出。

输入

此操作支持大多数 send command 参数。有关更多信息,请参阅 SendCommand

YAML
- name: checkMembership action: 'aws:runCommand' inputs: DocumentName: AWS-RunPowerShellScript InstanceIds: - '{{InstanceIds}}' Parameters: commands: - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
JSON
{ "name": "checkMembership", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds": [ "{{InstanceIds}}" ], "Parameters": { "commands": [ "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain" ] } } }
DocumentName

如果命令类型文档属于您或 AWS,请指定文档的名称。如果您使用的是另一个 AWS 账户与您共享的文档,指定文档的 Amazon Resource Name (ARN)。有关如何使用共享文档的更多信息,请参阅 使用共享 SSM 文档

类型:字符串

必需:是

InstanceIds

要在其中运行命令的实例 ID。您可以指定最多 50 个 ID。

您还可以使用虚拟参数 {{RESOURCE_ID}} 代替实例 ID,以便在目标组中的所有实例上运行命令。有关伪参数的更多信息,请参阅注册维护时段任务时使用伪参数

另一种替代方法是使用 Targets 参数向一组实例发送命令。Targets 参数接受 Amazon Elastic Compute Cloud (Amazon EC2) 标签。有关如何使用 Targets 参数的更多信息,请参阅 大规模运行命令

类型:StringList

必需:否(如果未指定实例 ID 或使用 {{RESOURCE_ID}} 虚拟参数,则必须指定 Targets 参数。)

目标

一组搜索条件,使用您指定的键/值组合来设置实例目标。如果未在调用中提供一个或多个实例 ID,则 Targets 为必需。有关如何使用 Targets 参数的更多信息,请参阅 大规模运行命令

类型:MapList(列表中 map 的架构必须与对象匹配。) 有关更多信息,请参阅 AWS Systems ManagerAPI 参考中的目标

必需:否(如果未指定 Targets,则必须指定实例 ID 或使用 {{RESOURCE_ID}} 虚拟参数。)

以下为示例。

YAML
- name: checkMembership action: aws:runCommand inputs: DocumentName: AWS-RunPowerShellScript Targets: - Key: tag:Stage Values: - Gamma - Beta - Key: tag-key Values: - Suite Parameters: commands: - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
JSON
{ "name": "checkMembership", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "Targets": [ { "Key": "tag:Stage", "Values": [ "Gamma", "Beta" ] }, { "Key": "tag:Application", "Values": [ "Suite" ] } ], "Parameters": { "commands": [ "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain" ] } } }
参数

文档中指定的必需参数和可选参数。

类型:映射

必需:否

CloudWatchOutputConfig

用于将命令输出发送到 Amazon CloudWatch Logs 的配置选项。有关将命令输出发送到 CloudWatch Logs 的更多信息,请参阅 为 Run Command 配置 Amazon CloudWatch Logs

类型:StringMap(map 的架构必须与对象匹配。有关更多信息,请参阅 AWS Systems ManagerAPI 参考 中的 CloudWatchOutputConfig)。

必需:否

以下为示例。

YAML
- name: checkMembership action: aws:runCommand inputs: DocumentName: AWS-RunPowerShellScript InstanceIds: - "{{InstanceIds}}" Parameters: commands: - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain" CloudWatchOutputConfig: CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService CloudWatchOutputEnabled: true
JSON
{ "name": "checkMembership", "action": "aws:runCommand", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds": [ "{{InstanceIds}}" ], "Parameters": { "commands": [ "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain" ] }, "CloudWatchOutputConfig" : { "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService", "CloudWatchOutputEnabled": true } } }
注释

有关此命令的用户定义的信息。

类型:字符串

必需:否

DocumentHash

文档的哈希。

类型:字符串

必需:否

DocumentHashType

哈希的类型。

类型:字符串

有效值:Sha256 | Sha1

必需:否

NotificationConfig

用于发送通知的配置。

必需:否

OutputS3BucketName

命令输出响应的 S3 存储桶的名称。

类型:字符串

必需:否

OutputS3KeyPrefix

前缀。

类型:字符串

必需:否

ServiceRoleArn

AWS Identity and Access Management (IAM) 角色的 ARN。

类型:字符串

必需:否

TimeoutSeconds

等待命令传递到实例上的 AWS Systems Manager SSM Agent 的时间(单位:秒)。如果在达到指定的值之前,命令未被实例上的 SSM Agent 接收,则命令的状态将更改为 Delivery Timed Out

类型:整数

必需:否

有效值:30-2592000

输出
CommandId

命令的 ID。

Status

命令的状态。

ResponseCode

命令的响应代码。如果运行的文档有多个步骤,则不会为此输出返回值。

输出

命令的输出。如果您使用命令定位一个标记或多个实例,则不会返回任何输出值。您可以使用 GetCommandInvocationListCommandInvocations API 操作来检索单个实例的输出。