aws:runCommand – 在受管執行個體上執行命令 - AWS Systems Manager

aws:runCommand – 在受管執行個體上執行命令

執行指定的命令。

注意

自動化僅支援一個 AWS Systems Manager Run Command 動作的輸出。Runbook 可以包含多個 Run 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

必要:否 (如果您未指定 InstanceIds 或使用 {{RESOURCE_ID}} 虛擬參數,則必須指定 Targets 參數。)

目標

一系列的搜尋條件,使用您指定的鍵值組合將執行個體設為目標。若您沒有在呼叫中提供一或多個執行個體 ID,則 Targets 為必要項目。如需使用 Targets 參數的詳細資訊,請參閱 大規模執行命令

類型:MapList (清單中的對應結構描述必須符合物件。) 如需詳細資訊,請參閱《AWS Systems Manager API 參考》中的 Target

必要:否 (如果您未指定 Targets,則必須指定 InstanceIds 或使用 {{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 (映射的結構描述必須與物件相符。如需詳細資訊,請參閱《AWS Systems Manager API 參考》中的 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

命令的回應代碼。如果執行的文件有 1 個以上步驟,則不會傳回此輸出的值。

輸出

命令的輸出。如果您使用命令將標籤或多個執行個體設為目標,則不會傳回輸出值。您可以使用 GetCommandInvocationListCommandInvocations API 操作來擷取個別執行個體的輸出。