新建一條Shell、PowerShell或者Bat腳本類型的云助手命令。
接口說明
- 您可以創建以下類型的命令:
- Windows 實例適用的 Bat 腳本(RunBatScript)。
- Windows 實例適用的 PowerShell 腳本(RunPowerShellScript)。
- Linux 實例適用的 Shell 腳本(RunShellScript)。
- 您可以通過指定參數 Timeout 為命令設置在 ECS 實例中執行時最大的超時時間,命令執行超時后,云助手 Agent會強制終止命令進程,即取消命令的 PID。
- 對于單次執行,超時后,該命令針對指定的 ECS 實例的執行狀態( InvokeRecordStatus )變為執行失敗(Failed)。
- 對于定時執行:
- 定時執行的超時時間對每一次執行記錄均有效。
- 某次執行超時后,該次執行記錄的狀態( InvokeRecordStatus )變為執行失敗(Failed)。
- 上次執行超時與否不影響下一次執行。
- 在一個地域下,您最多可以保有 500~50,000 條云助手命令,您也可以申請提升配額,關于如何查詢及提升配額,請參見配額管理。
- 您可以通過指定參數 WorkingDir 為命令指定執行路徑。對于 Linux 實例,默認在管理員 root 用戶的 home 目錄下,具體為
/root
目錄。對于 Windows 實例,默認在云助手 Agent 進程所在目錄,例如:C:\Windows\System32
。 - 您可以通過指定參數 EnableParameter=true 啟用自定義參數功能。在設置 CommandContent 時可以通過{{parameter}}的形式表示自定義參數,并在運行命令( InvokeCommand )時,傳入自定義參數鍵值對。例如,您在創建命令時,創建了
echo {{name}}
命令,在 InvokeCommand 時,通過 Parameters 參數傳入鍵值對<name, Jack>
。則自定義參數將自動替換命令,您會得到一條新的命令,并在實例中執行echo Jack
。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
ecs:CreateCommand | create | *Command acs:ecs:{#regionId}:{#accountId}:command/* |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
RegionId | string | 是 | 地域 ID。您可以調用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
Name | string | 是 | 命令名稱,支持全字符集。長度不得超過 128 個字符。 | testName |
Description | string | 否 | 命令描述,支持全字符集。長度不得超過 512 個字符。 | testDescription |
Type | string | 是 | 命令的類型。取值范圍:
| RunShellScript |
CommandContent | string | 是 | 命令 Base64 編碼后的內容。
| ZWNobyAxMjM= |
WorkingDir | string | 否 | 您創建的命令在 ECS 實例中運行的目錄。長度不得超過 200 個字符。 默認值:
說明
設置為其他目錄時,請確保實例中存在該目錄。
| /home/user |
Timeout | long | 否 | 您創建的命令在 ECS 實例中執行時最大的超時時間,單位為秒。當因為某種原因無法運行您創建的命令時,會出現超時現象。超時后,會強制終止命令進程,即取消命令的 PID。 默認值:60。 | 60 |
EnableParameter | boolean | 否 | 創建的命令是否使用自定義參數。 默認值:false。 | false |
ContentEncoding | string | 否 | 命令內容(CommandContent)的編碼方式。取值范圍:
默認值:Base64。 說明
錯填該取值會當作 Base64 處理。
| PlainText |
ResourceGroupId | string | 否 | 命令所屬的資源組 ID。 | rg-123****** |
Launcher | string | 否 | 腳本執行的引導程序。長度不能超過 1 KB。 | python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
Tag | array<object> | 否 | 標簽列表。 | |
object | 否 | 標簽列表。 | ||
Key | string | 否 | 命令的標簽鍵。N 的取值范圍為 1~20。一旦傳入該值,則不允許為空字符串。 使用一個標簽過濾資源,查詢到該標簽下的資源數量不能超過 1000 個。使用多個標簽過濾資源,查詢到同時綁定了多個標簽的資源數量不能超過 1000 個。如果資源數量超過 1000 個,您需要使用 ListTagResources 接口進行查詢。 最多支持 64 個字符,不能以 | TestKey |
Value | string | 否 | 命令的標簽值。N 的取值范圍為 1~20。該值可以為空字符串。 最多支持 128 個字符,不能包含 | TestValue |
返回參數
示例
正常返回示例
JSON
格式
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
HTTP status code | 錯誤碼 | 錯誤信息 | 描述 |
---|---|---|---|
400 | RegionId.ApiNotSupported | The api is not supported in this region. | 指定地域下不支持調用 API。請檢查 RegionId 參數取值是否正確。 |
400 | CmdParam.EmptyKey | You must specify the parameter names. | 請檢查您的參數是否完整,是否有參數名未填寫的情況。 |
400 | CmdParam.InvalidParamName | Invalid parameter name. The name can contain only lowercase letters (a to z), uppercase letters (A to Z), numbers (0 to 9), hyphens (-), and underscores (_). | 自定義參數的參數名無效,只允許 a-zA-Z0-9-_ 的組合。 |
400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | 命令內容無法通過Base64解碼。 |
400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | 指定的參數WorkingDir不合法。 |
403 | CmdContent.ExceedLimit | The length of the command content exceeds the upper limit. | 命令內容長度超過上限。 |
403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | 命令名稱長度超過上限。 |
403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | 命令描述長度超過上限。 |
403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | 當前地域下的云助手命令數量已超出限制。 |
403 | CmdParamCount.ExceedLimit | The maximum number of custom parameters is exceeded. | 參數數量超出最大可設置數量。 |
403 | CmdParamName.ExceedLimit | The maximum length of a parameter name is exceeded. | 您的自定義參數的參數名長度超過限制。 |
403 | Operation.Forbidden | The operation is not permitted. | 該操作是不被允許的。 |
403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | 資源組正在創建或刪除時不允許操作。 |
403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | 命令名稱包含非法字符。 |
403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | 命令描述包含非法字符。 |
403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | 命令執行路徑包含非法字符。 |
403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | 參數Launcher的長度超過了 1 KB個字符的限制。 |
404 | InvalidCmdType.NotFound | The specified command type does not exist. | 指定的命令類型不存在。 |
404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | 提供的RegionId不存在 |
404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | 資源組并不在記錄中。 |
500 | InternalError.Dispatch | An error occurred when you dispatched the request. | 發送請求時發生錯誤,請稍后重試。 |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-12-05 | OpenAPI 描述信息更新、OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2024-10-21 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2024-05-11 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2023-10-24 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |
2023-05-12 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |
2022-02-25 | OpenAPI 錯誤碼發生變更 | 查看變更詳情 |