调用CreateCommand新建一条云助手命令。
接口说明
- 您可以创建以下类型的命令:
- Windows实例适用的Bat脚本(RunBatScript)。
- Windows实例适用的PowerShell脚本(RunPowerShellScript)。
- Linux实例适用的Shell脚本(RunShellScript)。
- 您可以通过指定参数TimeOut为命令设置在ECS实例中执行时最大的超时时间,命令执行超时后,云助手客户端会强制终止命令进程,即取消命令的PID。
- 对于单次执行,超时后,该命令针对指定的ECS实例的执行状态(InvokeRecordStatus)变为执行失败(Failed)。
- 对于周期执行:
- 周期执行的超时时间对每一次执行记录均有效。
- 某次执行超时后,该次执行记录的状态(InvokeRecordStatus)变为执行失败(Failed)。
- 上次执行超时与否不影响下一次执行。
- 在一个地域下,您最多可以保有100条云助手命令。您也可以提交工单调整保有量配额。
- 您可以通过指定参数WorkingDir为命令指定执行路径。对于Linux实例,默认在管理员root用户的home目录下,具体为
/root
目录。对于Windows实例,默认在云助手客户端进程所在目录,例如,C:\Windows\System32。 - 您可以通过指定参数EnableParameter=true启用自定义参数功能。在设置CommandContent时可以通过{{parameter}}的形式表示自定义参数,并在运行命令(InvokeCommand)时,传入自定义参数键值对。例如,您在创建命令时,创建了
echo {{name}}
命令,在 InvokeCommand时,通过Parameters参数传入键值对<name, Jack>
。则自定义参数将自动替换命令,您会得到一条新的命令,并在实例中执行echo Jack
。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateCommand | 系统规定参数。取值:CreateCommand |
CommandContent | String | 是 | ZWNobyAxMjM= | 命令Base64编码后的内容。
|
Name | String | 是 | testName | 命令名称,支持全字符集。长度不得超过128个字符。 |
RegionId | String | 是 | cn-hangzhou | 地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
Type | String | 是 | RunShellScript | 命令的类型。取值范围:
|
Description | String | 否 | testDescription | 命令描述,支持全字符集。长度不得超过512个字符。 |
WorkingDir | String | 否 | /root/ | 您创建的命令在ECS实例中运行的目录。 默认值:
|
Timeout | Long | 否 | 60 | 您创建的命令在ECS实例中执行时最大的超时时间,单位为秒。当因为某种原因无法运行您创建的命令时,会出现超时现象。超时后,会强制终止命令进程,即取消命令的PID。 默认值:60 |
EnableParameter | Boolean | 否 | false | 创建的命令是否使用自定义参数。 默认值:false |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
CommandId | String | c-7d2a745b412b4601b2d47f6a768d**** | 命令ID。 |
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E | 请求ID。 |
示例
请求示例
https://ecs.aliyuncs.com/?Action=CreateCommand &CommandContent=ZWNobyB7e25hbWV9fSA= &Name=testName &RegionId=cn-hangzhou &Type=RunShellScript &Description=testDescription &WorkingDir=/root/ &Timeout=60 &EnableParameter=true &<公共请求参数>
正常返回示例
XML
格式
<CreateCommandResponse> <RequestId>E69EF3CC-94CD-42E7-8926-F133B86387C0</RequestId> <CommandId>c-7d2a745b412b4601b2d47f6a768d****</CommandId> </CreateCommandResponse>
JSON
格式
{ "RequestId": "E69EF3CC-94CD-42E7-8926-F133B86387C0", "CommandId": "c-7d2a745b412b4601b2d47f6a768d****" }
错误码
HttpCode | 错误码 | 错误信息 | 描述 |
---|---|---|---|
500 | InternalError.Dispatch | An error occurred when you dispatched the request. | 发送请求时发生错误,请稍后重试。 |
403 | InvalidCmdType.NotFound | The specified command type does not exist. | 指定的命令类型不存在。 |
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 | CmdParam.EmptyKey | You must specify the parameter names. | 请检查您的参数是否完整,是否有参数名未填写的情况。 |
403 | 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-_ 的组合。 |
403 | CmdParamName.ExceedLimit | The maximum length of a parameter name is exceeded. | 您的自定义参数的参数名长度超过限制。 |
访问错误中心查看更多错误码。