全部產品
Search
文件中心

Elastic Compute Service:InvokeCommand - 執行雲助手命令

更新時間:Apr 28, 2026

指定CommandId、InstanceId、ResourceGroupId等參數,為一台或多台ECS執行個體觸發一條雲助手命令。

介面說明

介面說明

  • 對目標 ECS 執行個體有如下限制。選擇了多台 ECS 執行個體後,若其中某台執行個體不滿足執行條件,您需要重新調用介面。

    • 狀態必須為運行中(Running),您可以調用 DescribeInstances 查詢。

    • 已預先安裝雲助手 Agent

    • 執行類型為 PowerShell 的命令時,執行個體必須已經配置了 PowerShell 模組。

  • 單次執行:只執行一次命令。

  • 定時執行:

    • 根據參數 Frequency 指定的時間頻率定時執行,上次的執行結果不會對下一次執行產生任何影響。

    • 當您基於 Cron 運算式執行定時任務且指定了時區,時鐘定時執行時間設定基準為您指定的時區;當您沒有指定時區時,時鐘定時執行時間設定基準為 ECS 執行個體內的系統時區,且執行時間以執行個體的系統時間為準。請確保 ECS 執行個體的時間或者時區與您預期的時間一致。更多關於時區的詳情,請參見行政時間同步服務

    雲助手 Agent 版本不低於以下對應的版本才能支援定時任務的新特性(固定時間間隔執行、僅在指定時間執行一次、基於 Cron 運算式定時執行時指定年份或時區)。如果結果返回 ClientNeedUpgrade 錯誤碼,請參見升級或禁止升級雲助手 Agent,將用戶端更新至最新版本。

    • Linux:2.2.3.282。

    • Windows:2.1.3.282。

  • 命令可能會因為目標執行個體的狀態異常、網路異常或雲助手 Agent 異常而出現無法執行的情況,無法執行時不會產生執行資訊。更多資訊,請參見執行失敗常見錯誤及修複建議

  • 當您建立命令時啟用了自訂參數功能,需要在執行命令時傳入自訂參數(Parameters)。

  • 建議您先調用 DescribeCloudAssistantStatus 查詢執行個體的雲助手狀態,當 CloudAssistantStatus 為 true 時再執行命令,尤其對於新購執行個體。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

ecs:InvokeCommand

update

*Command

acs:ecs:{#regionId}:{#accountId}:command/{#commandId}

*Instance

acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId}

  • ecs:CommandRunAs

請求參數

名稱

類型

必填

描述

樣本值

RegionId

string

地區 ID。您可以調用 DescribeRegions 查看最新的阿里雲地區列表。

cn-hangzhou

ResourceGroupId

string

命令執行的資源群組 ID,當指定該參數時:

  • 當 InstanceId 對應的 ECS 執行個體屬於非預設資源群組時,該 ECS 執行個體必須屬於該資源群組。

  • 支援通過指定該參數篩選出對應的命令執行結果(通過調用 DescribeInvocationsDescribeInvocationResults )。

rg-bp67acfmxazb4p****

RegionId

string

地區 ID。您可以調用 DescribeRegions 查看最新的阿里雲地區列表。

cn-hangzhou

CommandId

string

命令 ID。您可以通過介面 DescribeCommands 查詢所有可用的 CommandId。

說明

對於公用命令,可以通過命令名稱執行。更多資訊,請參見查看和執行雲助手公用命令

c-e996287206324975b5fbe1d****

RepeatMode

string

設定命令執行的方式。取值範圍:

  • Once:立即執行命令。

  • Period:定時執行命令。當該參數取值為Period時,必須同時指定Frequency參數。

  • NextRebootOnly:當執行個體下一次啟動時,自動執行命令。

  • EveryReboot:執行個體每一次啟動都將自動執行命令。

  • DryRun:只預檢此次請求,命令執行不會實際生效,檢查項包括請求參數、執行個體執行環境、雲助手 Agent 運行狀態等。

預設值:

  • 當不指定Frequency參數時,預設值為Once

  • 當指定Frequency參數時,無論是否已設定了該參數值,都將按照Period處理。

注意事項:

  • 您可以調用 StopInvocation 停止待執行的命令或定時執行的命令。

  • 當該參數取值Period或者EveryReboot時,您可以調用 DescribeInvocationResults ,然後指定IncludeHistory=true查看命令定時執行的記錄。

Once

Timed

boolean

說明

該參數已廢棄,傳入該參數不會生效。

true

Frequency

string

定時執行命令的執行時間。目前支援三種定時執行方式:固定時間間隔執行(基於 Rate 運算式)、僅在指定時間執行一次、基於時鐘定時執行(基於 Cron 運算式)。

  • 固定時間間隔執行:基於 Rate 運算式,按照設定的時間間隔執行命令。時間間隔支援按秒(s) 、分鐘(m) 、小時(h)和天(d)來選擇,適用於在固定時間間隔執行任務的情境。格式為rate(<執行間隔數值><執行間隔單位>),例如 5 分鐘執行一次,格式為rate(5m)。使用固定時間間隔執行有以下限制:

    • 設定的時間間隔不大於 7 天、不小於 60 秒,且需大於定時任務的逾時時間。

    • 執行間隔只基於固定頻率,與任務實際執行需要的時間無關。例如設定每 5 分鐘執行一次命令,任務需要 2 分鐘執行完成,則在任務完成 3 分鐘後繼續執行下一輪。

    • 建立任務時不會立即執行。例如設定每 5 分鐘執行一次命令,建立任務時不會立即執行一次命令,而是在任務建立完成後的 5 分鐘後開始執行。

  • 僅在指定時間執行一次:按照設定的時區和執行時間點執行一次命令。格式為at(yyyy-MM-dd HH:mm:ss <時區>),即at(年-月-日 時:分:秒 <時區>)。如果不指定時區,預設為 UTC 時區。時區支援以下三種形式:

    • 時區全稱: 例如Asia/Shanghai(中國/上海時間)、America/Los_Angeles(美國/洛杉磯時間)等。

    • 時區相對于格林威治時間的位移量: 例如GMT+8:00(東八區)、GMT-7:00(西七區)等。使用 GMT 格式時,小時位不支援添加前置字元為零。

    • 時區縮寫: 僅支援 UTC(國際標準時間間)。

    如果指定在中國/上海時間 2022 年 06 月 06 日 13 時 15 分 30 秒執行一次,格式為:at(2022-06-06 13:15:30 Asia/Shanghai);如果指定在西七區 2022 年 06 月 06 日 13 時 15 分 30 秒執行一次,格式為:at(2022-06-06 13:15:30 GMT-7:00)

  • 基於時鐘定時執行(基於 Cron 運算式):基於 Cron 運算式,按照設定的定時任務執行命令。格式為<秒> <分鐘> <小時> <日期> <月份> <星期> <年份(可選)> <時區>,即<Cron 運算式> <時區>。在指定的時區下,根據 Cron 運算式推算定時任務執行時間並執行。若不指定時區,預設為執行定時任務執行個體的系統內部時區。關於 Cron 運算式的更多資訊,請參見 Cron 運算式。時區支援以下三種形式:

    • 時區全稱: 例如Asia/Shanghai(中國/上海時間)、America/Los_Angeles(美國/洛杉磯時間)等。

    • 時區相對于格林威治時間的位移量: 例如GMT+8:00(東八區)、GMT-7:00(西七區)等。使用 GMT 格式時,小時位不支援添加前置字元為零。

    • 時區縮寫: 僅支援 UTC(國際標準時間間)。 例如,在中國/上海時間,2022 年每天上午 10:15 執行一次命令,格式為0 15 10 ? * * 2022 Asia/Shanghai;在東八區時間,2022 年每天上午 10:00 到 11:30 每隔半小時執行,格式為0 0/30 10-11 * * ? 2022 GMT+8:00;在 UTC 時間,從 2022 年開始,每隔兩年的 10 月每天下午 14:00 到下午 14:55 時間段內每隔 5 分鐘執行,格式為0 0/5 14 * 10 ? 2022/2 UTC

    說明

    設定的最小時間間隔需大於或等於定時任務的逾時時間,且不小於 10 秒。

0 */20 * * * ?

Parameters

object

啟用自訂參數功能時,執行命令時傳入的自訂參數的索引值對。自訂參數的個數範圍為 0~10。

  • Map 的鍵不允許為空白字串,最多支援 64 個字元。

  • Map 的值允許為空白字串。

  • 自訂參數與原始命令內容在 Base 64 編碼後,綜合長度不能超過 18 KB。

  • 設定的自訂參數名集合必須為建立命令時定義的參數集的子集。對於未傳入的參數,您可以使用Null 字元串代替。

您可以取消設定該參數從而禁用自訂參數。

{"name":"Jack", "accessKey":"LTAI************"}

Username

string

在 ECS 執行個體中執行命令的使用者名稱稱。長度不得超過 255 個字元。

  • Linux 系統的 ECS 執行個體,預設以 root 使用者執行命令。

  • Windows 系統的 ECS 執行個體,預設以 System 使用者執行命令。

您也可以指定執行個體中已存在的其他使用者執行命令,以普通使用者執行雲助手命令更加安全。更多資訊,請參見設定普通使用者執行雲助手命令

test

WindowsPasswordName

string

在 Windows 執行個體中執行命令的使用者的密碼名稱。長度不得超過 255 個字元。

當您希望以非預設使用者(System)在 Windows 執行個體中執行命令時,需要同時傳入Username和該參數。為降低密碼泄露的風險,需要將密碼明文託管在系統營運管理的參數倉庫中,此處僅傳入密碼的名稱。更多資訊,請參見加密參數以及設定普通使用者執行雲助手命令

說明

當您使用 Linux 執行個體的 root 使用者或 Windows 執行個體的 System 使用者執行命令時,不需要傳遞該參數。

axtSecretPassword

InstanceId

array

需要執行命令的執行個體列表,最多能指定 100 台執行個體 ID。N 的取值範圍為 1~100。

您也可以在配額中心申請提升配額(配額名稱為命令執行支援執行個體上限數)。

i-bp185dy2o3o6n****

string

需要執行命令的執行個體 ID。

i-bp185dy2o3o6n****

ContainerId

string

容器 ID。僅支援 64 位元 16 進位字串。支援使用docker://containerd://或者cri-o://首碼來表示指定的容器運行時。

注意事項:

  • 如果指定了該參數,雲助手將在執行個體的指定容器內執行指令碼。

  • 如果指定了該參數,僅支援在雲助手 Agent 版本不低於 2.2.3.344 的 Linux 執行個體內運行。

  • 如果指定了該參數,本介面中已指定的Username參數和 CreateCommand 中指定的WorkingDir參數將不會生效。僅支援通過容器預設使用者在容器的預設工作目錄下執行命令。更多資訊,請參見使用雲助手在容器內執行命令

  • 如果指定了該參數,在 Linux 容器中只支援執行 Shell 指令碼,不支援在指令碼開頭使用類似#!/usr/bin/python命令的形式指定指令碼內容的解譯器。更多資訊,請參見使用雲助手在容器內執行命令

ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea****

ContainerName

string

容器名稱。

注意事項:

  • 如果指定了該參數,雲助手將在執行個體的指定容器內執行指令碼。

  • 如果指定了該參數,僅支援在雲助手 Agent 版本不低於 2.2.3.344 的 Linux 執行個體內運行。

  • 如果指定了該參數,本介面中已指定的Username參數和 CreateCommand 中指定的WorkingDir參數將不會生效。僅支援通過容器預設使用者在容器的預設工作目錄下執行命令。更多資訊,請參見使用雲助手在容器內執行命令

  • 如果指定了該參數,在 Linux 容器中只支援執行 Shell 指令碼,不支援在指令碼開頭使用類似#!/usr/bin/python命令的形式指定指令碼內容的解譯器。更多資訊,請參見使用雲助手在容器內執行命令

test-container

Timeout

integer

執行命令的逾時時間,單位:秒。

  • 該值不能小於 10 秒。

  • 當因為進程原因、缺失模組、缺失雲助手 Agent 等原因無法運行命令時,會出現逾時現象。逾時後,會強制終止命令進程。

  • 若不設定該值,會採用建立命令時指定的逾時時間。

  • 該值只會作為該次命令執行的逾時時間,不會改變命令本身的逾時時間。

60

Tag

array<object>

標籤列表。

object

標籤列表。

Value

string

命令執行的標籤值。N 的取值範圍為 1~20。該值可以為空白字串。

最多支援 128 個字元,不能包含http://https://

TestValue

Key

string

命令執行的標籤鍵。N 的取值範圍為 1~20。一旦傳入該值,則不允許為空白字串。

使用一個標籤過濾資源,查詢到該標籤下的資源數量不能超過 1000 個。使用多個標籤過濾資源,查詢到同時綁定了多個標籤的資源數量不能超過 1000 個。如果資源數量超過 1000 個,您需要使用 ListTagResources 介面進行查詢。

最多支援 64 個字元,不能以aliyunacs:開頭,不能包含http://https://

TestKey

ClientToken

string

保證請求等冪性。從您的用戶端產生一個參數值,確保不同請求間該參數值唯一。ClientToken 只支援 ASCII 字元,且不能超過 64 個字元。更多詳情,請參見如何保證等冪性

123e4567-e89b-12d3-a456-42665544****

ResourceTag

array<object>

用於篩選執行個體的標籤列表。可以在不指定 InstanceId 的情況下,向具有相同標籤的執行個體批量執行命令。

object

用於篩選執行個體的標籤。可以在不指定 InstanceId 的情況下,向具有相同標籤的執行個體批量執行命令。

Value

string

用於篩選執行個體的標籤值。

注意事項:

  • N 的取值範圍為 1~10。

  • 該值可以為空白字串。

  • 最多支援 128 個字元,不能包含 http://或 https://。

TestValue

Key

string

用於篩選執行個體的標籤鍵。

注意事項:

  • 與參數 InstanceId 衝突,不能同時指定。

  • N 的取值範圍為 1~10。一旦傳入該值,則不允許為空白字串。

  • 標籤下的執行個體數量不能超過 InstanceId.N 的數量限制;如果執行個體數量超出限制,建議通過添加批次標籤等方式控制執行個體數量,例如 batch: b1。

  • 最多支援 64 個字元,不能以 aliyun 或 acs:開頭,不能包含 http://或 https://。

TestKey

TerminationMode

string

停止任務(手動停止或執行逾時打斷)時的模式。可能值:

  • Process:停止當前指令碼進程。

  • ProcessTree:停止當前進程樹(指令碼進程以及它建立的所有子進程的集合)。

ProcessTree

Launcher

string

指令碼執行的引導程式。長度不能超過 1 KB。

python3 -u {{ACS::ScriptFileName|Ext(".py")}}

WorkingDir

string

命令在 ECS 執行個體中啟動並執行目錄。長度不得超過 200 個字元。

  • 若不設定該值,會採用建立命令時指定的運行目錄。

  • 該值只會作為該次命令執行的運行目錄,不會改變命令本身的運行目錄。

/home/user

OssOutputDelivery

string

命令執行 Output OSS 投遞配置。

  • 格式:oss://${BucketName}/${Prefix},${BucketName}為待投遞到的 OSS Bucket 名稱,${Prefix}為待投遞到的目錄首碼。

oss://testBucket/testPrefix

返回參數

名稱

類型

描述

樣本值

object

InvokeId

string

命令執行 ID。

t-7d2a745b412b4601b2d47f6a768d****

RequestId

string

請求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

樣本

正常返回樣本

JSON格式

{
  "InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 ResourceBusy.SlrCreation The ServiceLinkedRole is still being created or has not taken effect yet. Please try again later.
400 RegionId.ApiNotSupported The api is not supported in this region. 指定地區下不支援調用 API。請檢查 RegionId 參數取值是否正確。
400 InvalidParameter.WorkingDir The specified parameter WorkingDir is not valid. 指定的參數WorkingDir不合法。
400 MissingParam.InstanceId The parameter instanceId is missing or empty. 執行個體ID為空白。
400 InvalidContainerId.Malformed The specified parameter ContainerId is not valid. 指定的容器ID不合法。
400 InvalidContainerName.Malformed The specified parameter ContainerName is not valid. 指定的容器名稱不合法。
400 InvalidClientToken.Malformed The specified parameter clientToken is not valid. 指定的等冪參數不合法。
400 InvalidInstance.NotMatch The specified instance type does not match the command.
400 MissingParam.Frequency The frequency must be specified when you create a timed task.
400 InvalidParam.Frequency The specified frequency is invalid.
400 Parameter.MissingValue The parameter value of this command is required.
400 Parameter.Disabled Parameters cannot be passed in when the command customization function is disabled.
400 InvalidParameter.Parameters The specified parameter Parameters is not valid. 指定的參數Parameters不合法。
400 NumberExceed.ResourceTags The maximum number of ResourceTags is exceeded.
400 MissingParameter.ResourceTagKey You must specify ResourceTag.N.Key.
400 InvalidResourceTagKey.Malformed The specified ResourceTag key is not valid.
400 InvalidResourceTagValue.Malformed The specified ResourceTag value is not valid.
400 Duplicate.ResourceTagKey The ResourceTag contains duplicate keys.
400 InvalidResourceTag.InstanceNotFound InstanceIds are not found by the specified ResourceTag.
400 InvalidResourceTag.ConflictWithInstanceIds The specified param ResourceTag conflicts with InstanceId.
400 InvalidOssOutputDelivery.BucketInOtherRegion The OSS bucket specified in the parameter OssOutputDelivery is in another region. 參數OssOutputDelivery 中指定的 OSS bucket在其他地區。
400 InvalidParameter.OssOutputDelivery The specified parameter OssOutputDelivery is not valid. 指定的參數OssOutputDelivery不合法。
400 InvalidOssOutputDelivery.KeyPrefixMalformed The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. 參數OssOutputDelivery中指定的prefix不合法。
500 InternalError.Dispatch An error occurred when you dispatched the request. 發送請求時發生錯誤,請稍後重試。
403 InvalidOssOutputDelivery.BucketAccessDenied The error message returned by the OSS API is: %s
403 InstanceIds.ExceedLimit The number of instance IDs exceeds the upper limit. 目標執行個體數量超過上限。
403 Invocation.ExceedQuota The invocation quota in the current region has been reached for today. 在當前地區命令執行次數已到達今天的額度。
403 ParameterCount.ExceedLimit The maximum number of parameters is exceeded. 參數數量超出最大可設定數量。
403 ParameterKey.ExceedLimit The maximum length of a parameter name is exceeded. 指定的參數Key長度超過可設定的最大長度。
403 CmdContent.ExceedLimit The maximum length of a command is exceeded. 您的命令內容過長,請精簡您的命令內容。
403 ParameterKey.Duplicate Parameter names cannot be duplicated. 參數名稱不能重複,請確認後重試。
403 Parameter.NotMatched The passed-in parameters do not match the parameters defined when you created the command. 傳入的自訂參數與建立命令時定義的自訂參數不匹配。
403 ParameterType.NotSupported The type of parameter value is not supported.
403 Username.ExceedLimit The length of the username exceeds the upper limit. 使用者名稱長度超過上限。
403 WindowsPasswordName.ExceedLimit The length of the WindowsPasswordName exceeds the upper limit. 指定的WindowsPasswordName參數長度超過上限。
403 WindowsPasswordName.Missed WindowsPasswordName must be specified when you create a Windows task. 請求參數“命令類型(WindowsPasswordName)”的值未提供。
403 ParameterStore.NotSupported Parameter Store is not supported in this region.
403 TemporaryAccessKey.Error The temporary accessKey is invalid.
403 ParameterStore.InvalidParameters The parameter is invalid in Parameter Store. 未找到命令內容中的{{oos:?}}所指定的參數。
403 ParameterStore.NoPermission You have no access to Parameter Store.
403 Operation.Forbidden The operation is not permitted. 該操作是不被允許的。
403 IdempotentParameterMismatch The specified parameter has changed while using an already used clientToken. 指定的客戶令牌已經被使用。
403 IdempotentProcessing The previous idempotent request(s) is still processing. 先前的等冪請求仍在處理中,請稍後重試。
403 InvalidLauncher.LengthLimitExceeded The length of the parameter Launcher exceeds the limit of 1 KB characters. 參數Launcher的長度超過了 1 KB個字元的限制。
403 InvalidParameterCharset.Parameters The parameter Parameters contains illegal charset. 命令參數包含非法字元集。
403 CreateServiceLinkedRole.NoPermission You do not have permission to create ServiceLinkedRole for output delivery. 您沒有為output投遞功能建立服務關聯角色的許可權。
403 InvalidTimeout.ExceedLimit The specified parameter Timeout exceeds the upper limit.
404 InvalidRepeatMode.NotFound The specified repeat mode does not exist. 指定的命令執行方式不存在。
404 InvalidRegionId.NotFound The RegionId provided does not exist in our records. 地區資訊錯誤
404 InvalidInstance.NotFound The specified instance does not exist. 指定的執行個體不存在。
404 InvalidCmdId.NotFound The specified command ID does not exist. 指定的 CommandId 參數有誤,請檢查參數值是否正確。您可以通過介面 DescribeCommands 查詢所有可用的 CommandId。
404 InvalidResourceGroup.NotFound The ResourceGroup provided does not exist in our records. 資源群組並不在記錄中。
404 InvalidTerminationMode.NotFound The specified parameter TerminationMode does not exist. 指定的參數TerminationMode不存在。
404 InvalidOssOutputDelivery.BucketNotFound The OSS bucket specified in the parameter OssOutputDelivery does not exist. 參數OssOutputDelivery中指定的bucket不存在。

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情