调用CreateCommand接口,并指定Name、Type、CommandContent等参数,新建一条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 |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
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****** |
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. | 命令执行路径包含非法字符。 |
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-05-11 | OpenAPI 错误码发生变更 | 查看变更详情 |
2023-10-24 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
2023-05-12 | OpenAPI 错误码发生变更 | 查看变更详情 |
2022-02-25 | OpenAPI 错误码发生变更 | 查看变更详情 |