調用InvokeCommand接口,并可以指定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} |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
RegionId | string | 是 | 地域 ID。您可以調用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
ResourceGroupId | string | 否 | 命令執行的資源組 ID,當指定該參數時:
| rg-bp67acfmxazb4p**** |
CommandId | string | 是 | 命令 ID。您可以通過接口 DescribeCommands 查詢所有可用的 CommandId。 說明
對于公共命令,可以通過命令名稱執行。更多信息,請參見查看和執行云助手公共命令。
| c-e996287206324975b5fbe1d**** |
RepeatMode | string | 否 | 設置命令執行的方式。取值范圍:
默認值:
注意事項:
| Once |
Timed | boolean | 否 | 說明
該參數已廢棄,傳入該參數不會生效。
| true |
Frequency | string | 否 | 定時執行命令的執行時間。目前支持三種定時執行方式:固定時間間隔執行(基于 Rate 表達式)、僅在指定時間執行一次、基于時鐘定時執行(基于 Cron 表達式)。
| 0 */20 * * * ? |
Parameters | object | 否 | 啟用自定義參數功能時,執行命令時傳入的自定義參數的鍵值對。自定義參數的個數范圍為 0~10。
您可以取消設置該參數從而禁用自定義參數。 | {"name":"Jack", "accessKey":"LTAIdyv******aRY"} |
Username | string | 否 | 在 ECS 實例中執行命令的用戶名稱。長度不得超過 255 個字符。
您也可以指定實例中已存在的其他用戶執行命令,以普通用戶執行云助手命令更加安全。更多信息,請參見設置普通用戶執行云助手命令。 | test |
WindowsPasswordName | string | 否 | 在 Windows 實例中執行命令的用戶的密碼名稱。長度不得超過 255 個字符。 當您希望以非默認用戶(System)在 Windows 實例中執行命令時,需要同時傳入 說明
當您使用 Linux 實例的 root 用戶或 Windows 實例的 System 用戶執行命令時,不需要傳遞該參數。
| axtSecretPassword |
InstanceId | array | 否 | 需要執行命令的實例列表,最多能指定 100 臺實例 ID。N 的取值范圍為 1~100。 您也可以在配額中心申請提升配額(配額名稱為命令執行支持實例上限數)。 | |
string | 否 | 需要執行命令的實例 ID。 | i-bp185dy2o3o6n**** | |
ContainerId | string | 否 | 容器 ID。僅支持 64 位 16 進制字符串。支持使用 注意事項:
| ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
ContainerName | string | 否 | 容器名稱。 注意事項:
| test-container |
Timeout | long | 否 | 執行命令的超時時間,單位:秒。
| 60 |
Tag | array<object> | 否 | 標簽列表。 | |
object | 否 | 標簽列表。 | ||
Key | string | 否 | 命令執行的標簽鍵。N 的取值范圍為 1~20。一旦傳入該值,則不允許為空字符串。 使用一個標簽過濾資源,查詢到該標簽下的資源數量不能超過 1000 個。使用多個標簽過濾資源,查詢到同時綁定了多個標簽的資源數量不能超過 1000 個。如果資源數量超過 1000 個,您需要使用 ListTagResources 接口進行查詢。 最多支持 64 個字符,不能以 | TestKey |
Value | string | 否 | 命令執行的標簽值。N 的取值范圍為 1~20。該值可以為空字符串。 最多支持 128 個字符,不能包含 | TestValue |
ClientToken | string | 否 | 保證請求冪等性。從您的客戶端生成一個參數值,確保不同請求間該參數值唯一。ClientToken 只支持 ASCII 字符,且不能超過 64 個字符。更多詳情,請參見如何保證冪等性。 | 123e4567-e89b-12d3-a456-42665544**** |
ResourceTag | array<object> | 否 | 用于篩選實例的標簽列表。可以在不指定 InstanceId 的情況下,向具有相同標簽的實例批量執行命令。 | |
object | 否 | 用于篩選實例的標簽。可以在不指定 InstanceId 的情況下,向具有相同標簽的實例批量執行命令。 | ||
Key | string | 否 | 用于篩選實例的標簽鍵。 注意事項:
| TestKey |
Value | string | 否 | 用于篩選實例的標簽值。 注意事項:
| TestValue |
TerminationMode | string | 否 | 停止任務(手動停止或執行超時打斷)時的模式。可能值:
| ProcessTree |
Launcher | string | 否 | 腳本執行的引導程序。長度不能超過 1 KB。 | python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
返回參數
示例
正常返回示例
JSON
格式
{
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
HTTP status code | 錯誤碼 | 錯誤信息 | 描述 |
---|---|---|---|
400 | RegionId.ApiNotSupported | The api is not supported in this region. | 指定地域下不支持調用 API。請檢查 RegionId 參數取值是否正確。 |
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. | 指定的實例ID不支持執行指定的命令ID。請檢查實例的狀態是否符合云助手命令的執行條件。 |
400 | MissingParam.Frequency | The frequency must be specified when you create a timed task. | 創建定時任務時必須指定頻率。 |
400 | InvalidParam.Frequency | The specified frequency is invalid. | 指定的 Frequency 參數無效。請檢查參數值是否正確。 |
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. | - |
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. | 命令參數包含非法字符集。 |
404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | 指定的命令執行方式不存在。 |
404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | 提供的RegionId不存在 |
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不存在。 |
500 | InternalError.Dispatch | An error occurred when you dispatched the request. | 發送請求時發生錯誤,請稍后重試。 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-12-05 | OpenAPI 描述信息更新、OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-10-28 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-08-01 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2024-05-14 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2024-04-12 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-01-23 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2023-05-12 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2023-04-25 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2022-10-27 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2022-01-06 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2022-01-06 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |