新建一条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代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
ecs:CreateCommand |
create |
*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 |
integer |
否 |
您创建的命令在 ECS 实例中执行时最大的超时时间,单位为秒。当因为某种原因无法运行您创建的命令时,会出现超时现象。超时后,会强制终止命令进程,即取消命令的 PID。 默认值:60。 |
60 |
| EnableParameter |
boolean |
否 |
创建的命令是否使用自定义参数。 默认值:false。 |
false |
| ContentEncoding |
string |
否 |
命令内容(CommandContent)的编码方式。取值范围:
默认值:Base64。 说明
错填该取值会当作 Base64 处理。 |
PlainText |
| ClientToken |
string |
否 |
保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken 只支持 ASCII 字符,且不能超过 64 个字符。更多信息,请参见如何保证幂等性。 |
123e4567-e89b-12d3-a456-426655440000 |
| 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 |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| CommandId |
string |
命令 ID。 |
c-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
请求 ID。 |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
示例
正常返回示例
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 (_). | |
| 400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | 命令内容无法通过Base64解码。 |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | 指定的参数WorkingDir不合法。 |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | 指定的幂等参数不合法。 |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | 发送请求时发生错误,请稍后重试。 |
| 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个字符的限制。 |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | 指定的客户令牌已经被使用。 |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | 先前的幂等请求仍在处理中,请稍后重试。 |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | 地域信息错误 |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | 资源组并不在记录中。 |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。