Creates and executes a Cloud Assistant command on one or more ECS instances. This operation supports Shell, PowerShell, and Bat scripts, and provides features such as scheduled execution, custom parameters, and execution within containers on the instances.
Operation description
This operation is asynchronous. After the request is sent, you can call the DescribeInvocations or DescribeInvocationResults operation and use the returned command ID or invocation ID to query the execution results.
Before you begin
The target instances must be in the Running state. You can call the DescribeInstances operation to query the instance status.
- The Cloud Assistant Agent is installed on the target instances. You can call the InstallCloudAssistant operation to install the agent and call the DescribeCloudAssistantStatus operation to query the installation status.
Note
For ECS instances created from public images after December 1, 2017, the Cloud Assistant Agent is pre-installed by default.
To execute PowerShell commands, make sure that the PowerShell module is configured on the Windows operating system of the target ECS instances. Cloud Assistant Agent
Precautions
-
In a single region, you can retain 500 to 50,000 Cloud Assistant commands. You can apply for a quota increase. For more information, see Quota management.
-
The Cloud Assistant Agent must be of the following versions or later to support the new features of scheduled tasks (execution at fixed intervals, one-time execution at a specified time, and specifying the year or time zone for Cron expression-based scheduled execution). If the ClientNeedUpgrade error code is returned, see Upgrade or disable the upgrade of the Cloud Assistant Agent to update the client to the latest version.
- Linux: 2.2.3.282. - Windows: 2.1.3.282. -
When you execute a scheduled task based on a Cron expression and specify a time zone, the scheduled execution time is based on the specified time zone. If you do not specify a time zone, the scheduled execution time is based on the system time zone of the ECS instance, and the execution time is subject to the system time of the instance. Make sure that the time or time zone of the ECS instance is consistent with your expected time. For more information about time zones, see Set the time zone and NTP service for a Linux instance or Set the NTP service for a Windows instance.
Recommendations
- Timeout settings: You can specify the Timeout parameter to set the maximum timeout period for command execution on the ECS instance. If the command execution times out, the Cloud Assistant Agent forcibly stops the process.
After a one-time execution times out, the execution status (InvokeRecordStatus) changes to Failed.
The timeout period for scheduled execution applies to each execution record. A timeout in the previous execution does not affect the next execution. After an execution times out, the execution status (InvokeRecordStatus) changes to Failed.
Execution failures: A command may fail to be executed due to abnormal target instance status, network exceptions, or Cloud Assistant Agent exceptions. In this case, no execution information is generated. For more information, see Common faults and solutions for execution failures.
Custom parameters: If you set EnableParameter to true, the custom parameter feature is enabled. When you set CommandContent, you can use the
{{parameter}}format to define custom parameters and pass the custom parameter key-value pairs when you run the command.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
ecs:RunCommand |
update |
*All Resource
|
|
None |
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| RegionId |
string |
Yes |
The region ID. You can call the DescribeRegions operation to query the most recent region list. |
cn-hangzhou |
| ResourceGroupId |
string |
No |
The ID of the resource group to which the command execution belongs. When you specify this parameter:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
No |
The command name. It supports all character sets and can be up to 128 characters in length. |
testName |
| Description |
string |
No |
The command description. It supports all character sets and can be up to 512 characters in length. |
testDescription |
| Type |
string |
Yes |
The command type. Valid values:
|
RunShellScript |
| CommandContent |
string |
Yes |
The command content. The command content can be plaintext or Base64-encoded. Take note of the following items:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
No |
The running directory of the command on the ECS instance. It can be up to 200 characters in length. Default value:
|
/home/user |
| Timeout |
integer |
No |
The timeout period for command execution. Unit: seconds. If the command cannot be run due to process issues, missing modules, or a missing Cloud Assistant Agent, a timeout occurs. After a timeout, the command process is forcibly terminated. Default value: 60. |
3600 |
| EnableParameter |
boolean |
No |
Specifies whether the command contains custom parameters. Default value: false. |
false |
| RepeatMode |
string |
No |
The execution mode of the command. Valid values:
Default value:
Precautions:
|
Once |
| Timed |
boolean |
No |
[Deprecated] This parameter is deprecated and does not take effect even if it is specified. |
true |
| Frequency |
string |
No |
The execution time of the scheduled command. Three scheduled execution modes are supported: execution at fixed intervals (based on Rate expressions), one-time execution at a specified time, and clock-based scheduled execution (based on Cron expressions).
|
0 */20 * * * ? |
| Parameters |
object |
No |
The key-value pairs of custom parameters passed when the command is executed, if the command contains custom parameters. For example, if the command content is The number of custom parameters ranges from 0 to 10. Take note of the following items:
Default value: empty. This means the parameter is not set and custom parameters are disabled. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
No |
Specifies whether to retain the command after it is executed. Valid values:
Default value: false. |
false |
| ContentEncoding |
string |
No |
The encoding mode of the command content (CommandContent). Valid values (case-insensitive):
Default value: PlainText. If an invalid value is specified, it is processed as PlainText. |
Base64 |
| Username |
string |
No |
The username of the user who executes the command on the ECS instance. It can be up to 255 characters in length.
You can also specify another existing user on the instance to execute the command. Executing Cloud Assistant commands as a regular user is more secure. For more information, see Configure a regular user to execute Cloud Assistant commands. |
test |
| WindowsPasswordName |
string |
No |
The password name of the user who executes the command on the Windows instance. It can be up to 255 characters in length. If you want to execute the command as a non-default user (System) on a Windows instance, you must specify both Username and this parameter. To reduce the risk of password leakage, you must host the plaintext password in the parameter repository of operations management and pass only the password name here. For more information, see Encrypted parameters and Settings for regular users to execute Cloud Assistant commands. Note
You do not need to pass this parameter when you execute the command as the root user on a Linux instance or the System user on a Windows instance. |
axtSecretPassword |
| InstanceId |
array |
No |
The array of ECS instance IDs. Array length: 1 to 100. If you specify multiple instances and one of the instances does not meet the execution conditions, you must reselect the instances. You can also apply for a quota increase in Quota Center. The quota name is the maximum number of instances supported for command execution. |
i-bp185dy2o3o6neg**** |
|
string |
No |
The ECS instance ID. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
No |
The array of tags. Array length: 0 to 20. |
|
|
object |
No |
The tag. |
||
| Key |
string |
No |
The tag key for command execution. If you specify this parameter, it cannot be an empty string. If you use a single tag to filter resources, the resource count under the tag cannot exceed 1,000. If you use multiple tags to filter resources, the resource count of resources attached to all the specified tags cannot exceed 1,000. If the resource count exceeds 1,000, you must use the ListTagResources operation to query the resources. It can be up to 64 characters in length and cannot start with aliyun or acs:. It cannot contain http:// or https://. |
TestKey |
| Value |
string |
No |
The tag value for command execution. This value can be an empty string. It can be up to 128 characters in length and cannot contain http:// or https://. |
TestValue |
| ContainerId |
string |
No |
The container ID. Only 64-bit hexadecimal strings are supported. The Precautions:
Note
Only Shell scripts can be executed in Linux containers. You cannot use a command like |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
No |
The container name. Precautions:
Note
Only Shell scripts can be executed in Linux containers. You cannot use a command like |
test-container |
| ClientToken |
string |
No |
The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests. The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence. |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
No |
The OSS delivery configuration for the command execution output.
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
No |
The array of tags used to filter instances. Array length: 0 to 20. You can execute commands in batches on instances with the same tag without specifying InstanceId. |
|
|
object |
No |
The tag used to filter instances. You can execute commands in batches on instances with the same tag without specifying InstanceId. |
||
| Key |
string |
No |
The tag key used to filter instances. Precautions:
|
TestKey |
| Value |
string |
No |
The tag value used to filter instances. Precautions:
|
TestValue |
| TerminationMode |
string |
No |
The mode used when the task is stopped (manually stopped or interrupted due to execution timeout). Valid values:
|
ProcessTree |
| Launcher |
string |
No |
The bootstrap program for script execution. It cannot exceed 1 KB in length. |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
|||
| CommandId |
string |
The command ID. |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
The invocation ID. |
t-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
The request ID. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
Examples
Success response
JSON format
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | The API operation cannot be called in the specified region. Check whether the specified RegionId parameter is valid. |
| 400 | ResourceBusy.SlrCreation | The ServiceLinkedRole is still being created or has not taken effect yet. Please try again later. | |
| 400 | MissingParam.InstanceId | The parameter instanceId is missing or empty. | The instance ID is empty. |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | The number of tags exceeds the maximum limit. You can specify a maximum of 20 tags for this operation. |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | The specified tag value is invalid. |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | The specified tag key already exists. Tag keys must be unique. |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | The specified Tag.N.Key parameter is invalid. |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | The tag key is not specified. |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | The specified container ID is invalid. |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | The specified container name is invalid. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | The specified idempotency parameter is invalid. |
| 400 | CmdParam.EmptyKey | Command parameters can not be empty. | |
| 400 | CmdParam.InvalidParamName | A command parameter name is invalid. | |
| 400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | The value of the CommandContent parameter cannot be Base64-decoded. Check whether the parameter value is correct. |
| 400 | InvalidInstance.NotMatch | The specified instance type does not match the command. | |
| 400 | MissingParam.Frequency | The frequency must be specified when you create a timed task. | |
| 400 | InvalidParam.Frequency | The specified frequency is invalid. | |
| 400 | ParameterKey.Duplicate | The parameter may not contain duplicate keys. | Parameter names must be unique. Check the parameter names and try again. |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | The custom parameters passed do not match the custom parameters defined when the command was created. |
| 400 | WindowsPasswordName.Missed | WindowsPasswordName must be specified when you create a Windows task. | |
| 400 | Parameter.Disabled | Parameters should not be passed when CreateCommand.EnableParameter is false. | Do not pass custom parameters when the custom parameter feature is disabled for the command. |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | The specified WorkingDir parameter is invalid. |
| 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. | |
| 400 | InvalidOssOutputDelivery.BucketInOtherRegion | The OSS bucket specified in the parameter OssOutputDelivery is in another region. | The OSS bucket specified in the parameter OssOutputDelivery is in another region. |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | The specified parameter OssOutputDelivery is not valid. |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | An error occurred while the request is being sent. Try again later. |
| 403 | InvalidParameterCharacter | The specified parameter %s contains illegal characters. | |
| 403 | InvalidOssOutputDelivery.BucketAccessDenied | The error message returned by the OSS API is: %s | |
| 403 | CmdContent.ExceedLimit | The length of the command content exceeds the upper limit. | The length of command content exceeds the upper limit. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | The length of the command name exceeds the upper limit. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | 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. | The maximum number of Cloud Assistant commands in the current region has been exceeded. |
| 403 | CmdParamCount.ExceedLimit | You've reached the limit on the count of command parameters. | |
| 403 | CmdParamName.ExceedLimit | The length of the command parameter name exceeds the limit. | The length of the custom parameter name exceeds the limit. |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | The number of specified instance IDs exceeds the upper limit. |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | The maximum daily number of commands that can be run in the specified region has been reached. |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | The number of parameters exceeds the maximum allowed limit. |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | The length of the specified parameter key exceeds the maximum allowed length. |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | The length of the username exceeds the upper limit. |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | The specified WindowsPasswordName parameter exceeds the maximum length limit. |
| 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. | The parameter specified by {{oos:?}} in the command content was not found. |
| 403 | ParameterStore.NoPermission | You have no access to Parameter Store. | |
| 403 | OperationDenied.BidOwnResource | Bid user can not own resource. | |
| 403 | Operation.Forbidden | The operation is not permitted. | The operation is not supported. |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | The request parameters do not match those of the request with the same ClientToken. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | A previous idempotent request is being processed. Try again later. |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | Operation not allowed while resource group is being created or deleted. |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | The command Name contains illegal characters. |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | The command Description contains illegal characters. |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | The command WorkingDir contains illegal characters. |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | The length of the argument Launcher exceeds the limit of 1 KB characters. |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | The command parameter contains an illegal character set. |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | You do not have permission to create ServiceLinkedRole for output delivery. |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 403 | RequestDenied.WAFIntercepted | Request denied by WAF security protection. | The request is blocked by WAF security protection. |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | The specified command execution mode does not exist. |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | Region information error |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | The specified instance does not exist. |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | The specified CommandId parameter is invalid. Check the parameter value. You can call the DescribeCommands operation to query all available command IDs. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | The specified resource group does not exist. |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | The specified parameter TerminationMode does not exist. |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. | The OSS bucket specified in the parameter OssOutputDelivery does not exist. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.