Crea y ejecuta un comando de Cloud Assistant en una o más instancias de ECS. Esta operación admite scripts de Shell, PowerShell y Bat, y proporciona funciones como la ejecución programada, parámetros personalizados y la ejecución de comandos en contenedores en las instancias.
Descripción de la operación
Esta es una operación asíncrona. Después de enviar la solicitud, puede llamar a DescribeInvocations o DescribeInvocationResults con el ID del comando o el ID de la invocación devuelto para consultar los resultados de la ejecución.
Antes de comenzar
La instancia de destino debe estar en estado de ejecución (
Running). Puede llamar a DescribeInstances para consultar el estado de la instancia.- La instancia de destino debe tener instalado el Agente de Cloud Assistant. Puede instalarlo llamando a InstallCloudAssistant y consultar el estado de la instalación llamando a DescribeCloudAssistantStatus.
Nota
Las instancias de ECS creadas a partir de imágenes públicas después del 1 de diciembre de 2017 tienen el Agente de Cloud Assistant preinstalado de forma predeterminada.
Para ejecutar comandos de PowerShell, asegúrese de que el módulo de PowerShell esté configurado en el sistema operativo Windows de la instancia de ECS de destino.
Precauciones
-
En una sola región, puede conservar de 500 a 50,000 comandos de Cloud Assistant. También puede solicitar un aumento de cuota. Para obtener más información, consulte Gestión de cuotas.
-
El Agente de Cloud Assistant debe estar en las siguientes versiones o en versiones superiores para admitir las nuevas funciones para tareas programadas (ejecución a intervalos fijos, ejecución única a una hora especificada y especificación de un año o zona horaria para la ejecución programada basada en Cron). Si se devuelve el código de error
ClientNeedUpgrade, consulte Actualizar o deshabilitar las actualizaciones del Agente de Cloud Assistant para actualizar el agente a la versión más reciente.- Linux: 2.2.3.282 - Windows: 2.1.3.282 -
Cuando ejecuta una tarea programada basada en Cron con una zona horaria especificada, la hora de ejecución programada se basa en la zona horaria especificada. Cuando no especifica una zona horaria, la hora de ejecución programada se basa en la zona horaria del sistema de la instancia de ECS, y la hora de ejecución la determina la hora del sistema de la instancia. Asegúrese de que la hora o la zona horaria de la instancia de ECS coincida con sus expectativas. Para obtener más información sobre las zonas horarias, consulte Configurar la zona horaria y el servicio NTP para una instancia de Linux o Configurar el servicio NTP para una instancia de Windows.
Pruébelo ahora
Test
Autorización de RAM
|
Action |
Nivel de acceso |
Tipo de recurso |
Clave de condición |
Acción dependiente |
|
ecs:RunCommand |
update |
*Instance.
|
|
Ninguna |
Parámetros de la solicitud
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
| RegionId |
string |
Sí |
El ID de la región. Puede llamar a DescribeRegions para consultar la lista de regiones más reciente. |
cn-hangzhou |
| ResourceGroupId |
string |
No |
El ID del grupo de recursos para la ejecución del comando. Cuando se especifica este parámetro:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
No |
El nombre del comando. Se admiten todos los juegos de caracteres. El nombre puede tener hasta 128 caracteres de longitud. |
testName |
| Description |
string |
No |
La descripción del comando. Se admiten todos los juegos de caracteres. La descripción puede tener hasta 512 caracteres de longitud. |
testDescription |
| Type |
string |
Sí |
El tipo de comando. Valores válidos:
|
RunShellScript |
| CommandContent |
string |
Sí |
El contenido del comando. El contenido del comando puede estar en texto sin formato o codificado en Base64. Tenga en cuenta los siguientes puntos:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
No |
El directorio de trabajo del comando en la instancia de ECS. El valor puede tener hasta 200 caracteres de longitud. Valores predeterminados:
|
/home/user |
| Timeout |
integer |
No |
El tiempo de espera para la ejecución del comando. Unidad: segundos. Cuando un comando no se puede ejecutar debido a problemas de proceso, módulos faltantes o falta del Agente de Cloud Assistant, se produce un tiempo de espera. Cuando se produce un tiempo de espera, el proceso del comando se termina de forma forzosa. Valor predeterminado: 60. |
3600 |
| EnableParameter |
boolean |
No |
Especifica si el comando contiene parámetros personalizados. Valor predeterminado: false. |
false |
| RepeatMode |
string |
No |
El modo de ejecución del comando. Valores válidos:
Valores predeterminados:
Precauciones:
|
Once |
| Timed |
boolean |
No |
[Deprecated] Este parámetro está en desuso. Especificar este parámetro no tiene ningún efecto. |
true |
| Frequency |
string |
No |
La programación para ejecutar el comando. Se admiten tres métodos de programación: ejecución a intervalos fijos (basada en una expresión Rate), ejecución única a una hora especificada y ejecución programada basada en reloj (basada en una expresión Cron).
|
0 */20 * * * ? |
| Parameters |
object |
No |
Los pares clave-valor de parámetros personalizados que se pasan cuando el comando contiene parámetros personalizados. Por ejemplo, si el contenido del comando es El número de parámetros personalizados varía de 0 a 10. Tenga en cuenta los siguientes puntos:
Valor predeterminado: vacío, lo que deshabilita los parámetros personalizados. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
No |
Especifica si se debe conservar el comando después de la ejecución. Valores válidos:
Valor predeterminado: false. |
false |
| ContentEncoding |
string |
No |
El método de codificación del contenido del comando (
Valor predeterminado: PlainText. Si se especifica un valor no válido, se trata como PlainText. |
Base64 |
| Username |
string |
No |
El nombre de usuario para ejecutar el comando en la instancia de ECS. El valor puede tener hasta 255 caracteres de longitud.
También puede especificar otro usuario existente en la instancia para ejecutar el comando. Ejecutar comandos de Cloud Assistant como un usuario normal es más seguro. Para obtener más información, consulte Configurar un usuario normal para ejecutar comandos de Cloud Assistant. |
test |
| WindowsPasswordName |
string |
No |
El nombre de la contraseña del usuario que ejecuta el comando en una instancia de Windows. El nombre puede tener hasta 255 caracteres de longitud. Si desea ejecutar un comando como un usuario no predeterminado (System) en una instancia de Windows, debe especificar tanto Nota
No necesita especificar este parámetro si ejecuta el comando como el usuario root en una instancia de Linux o el usuario System en una instancia de Windows. |
axtSecretPassword |
| InstanceId |
array |
No |
La matriz de ID de instancias de ECS. Longitud de la matriz: de 1 a 100. Si alguna de las instancias especificadas no cumple con las condiciones para ejecutar el comando, debe volver a seleccionar las instancias. También puede solicitar un aumento de cuota en Quota Center (nombre de la cuota: Número máximo de instancias que pueden ejecutar comandos). |
i-bp185dy2o3o6neg**** |
|
string |
No |
El ID de la instancia de ECS. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
No |
Las etiquetas. Longitud de la matriz: de 0 a 20. |
|
|
object |
No |
La etiqueta. |
||
| Key |
string |
No |
La clave de etiqueta que se usa al ejecutar el comando. Si se especifica este valor, no puede ser una cadena vacía. Cuando usa una sola etiqueta para filtrar recursos, el recuento de recursos bajo esa etiqueta no puede superar los 1000. Cuando usa varias etiquetas para filtrar recursos, el recuento de recursos que están vinculados a todas las etiquetas especificadas no puede superar los 1000. Si el recuento de recursos supera los 1000, use la operación ListTagResources para consultar los recursos. La clave de etiqueta puede tener hasta 64 caracteres de longitud y no puede comenzar con |
TestKey |
| Value |
string |
No |
El valor de etiqueta de la ejecución del comando. El valor puede ser una cadena vacía. El valor de etiqueta puede tener hasta 128 caracteres de longitud y no puede contener |
TestValue |
| ContainerId |
string |
No |
El ID del contenedor. Solo se admiten cadenas hexadecimales de 64 bits. Puede usar el prefijo Precauciones:
Nota
Solo se admiten scripts de Shell en contenedores de Linux. No puede usar un formato como |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
No |
El nombre del contenedor. Precauciones:
Nota
Solo se admiten scripts de Shell en contenedores de Linux. No puede usar un formato como |
test-container |
| ClientToken |
string |
No |
El token de cliente que se usa para garantizar la idempotencia de la solicitud. Puede usar el cliente para generar el token, pero asegúrese de que el token sea único entre diferentes solicitudes. ClientToken solo puede contener caracteres ASCII y no puede superar los 64 caracteres de longitud. Para obtener más información, consulte Cómo garantizar la idempotencia. |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
No |
La configuración de entrega de OSS para la salida de la ejecución del comando.
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
No |
Las etiquetas que se usan para filtrar instancias. Longitud de la matriz: de 0 a 20. Puede ejecutar comandos en lotes en instancias que tienen las mismas etiquetas sin especificar InstanceId. |
|
|
object |
No |
La etiqueta que se usa para filtrar instancias. Puede ejecutar comandos en lotes en instancias que tienen las mismas etiquetas sin especificar InstanceId. |
||
| Key |
string |
No |
La clave de etiqueta que se usa para filtrar instancias. Precauciones:
|
TestKey |
| Value |
string |
No |
El valor de etiqueta que se usa para filtrar instancias. Precauciones:
|
TestValue |
| TerminationMode |
string |
No |
El modo para detener la tarea (detención manual o interrupción por tiempo de espera). Valores válidos:
|
ProcessTree |
| Launcher |
string |
No |
El programa de arranque para la ejecución del script. El valor no puede superar 1 KB de longitud. |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
Elementos de la respuesta
|
Elemento |
Tipo |
Descripción |
Ejemplo |
|
object |
|||
| CommandId |
string |
El ID del comando. |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
El ID de la invocación. |
t-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
El ID de la solicitud. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
Ejemplos
Respuesta exitosa
JSON Formato
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
Códigos de error
|
Código de estado HTTP |
Código de error |
Mensaje de error |
Descripción |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | La operación de API no es compatible en la región especificada. Compruebe si el valor del parámetro RegionId es correcto. |
| 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. | El ID de la instancia está vacío. |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | El número de etiquetas excede el límite máximo. Puede especificar hasta 20 etiquetas para esta operación. |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | El parámetro de valor de etiqueta especificado no es válido. |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | Existen claves duplicadas en las etiquetas. Asegúrese de que todas las claves sean únicas. |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | El parámetro de clave de etiqueta especificado no es válido. |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | Especifique una clave de etiqueta. |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | El ID del contenedor especificado no es válido. |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | El nombre del contenedor especificado no es válido. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | El parámetro idempotente especificado no es válido. |
| 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. | El valor del parámetro CommandContent especificado no se puede decodificar en Base64. Compruebe si el valor del parámetro es correcto. |
| 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. | Los nombres de los parámetros no pueden estar duplicados. Verifique los nombres e inténtelo de nuevo. |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | Los parámetros personalizados proporcionados no coinciden con los parámetros personalizados definidos al crear el comando. |
| 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. | No proporcione parámetros personalizados cuando la función de parámetros personalizados del comando esté deshabilitada. |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | El parámetro WorkingDir especificado no es válido. |
| 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. | El bucket de OSS especificado en el parámetro OssOutputDelivery se encuentra en una región diferente. |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | El parámetro OssOutputDelivery especificado no es válido. |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | El prefijo especificado en el parámetro OssOutputDelivery no es válido. |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | Ocurrió un error al enviar la solicitud. Inténtelo de nuevo más tarde. |
| 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. | El contenido del comando es demasiado largo. Simplifique el contenido del comando. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | El nombre del comando excede la longitud máxima. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | La longitud de la descripción del comando excede el límite superior. |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | El número de comandos de Cloud Assistant en la región actual ha excedido el límite. |
| 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. | El nombre del parámetro personalizado excede el límite de longitud. |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | El número de instancias de destino excede el límite superior. |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | El número de ejecuciones de comandos en la región actual ha alcanzado la cuota diaria. |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | El número de parámetros excede el máximo permitido. |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | La longitud de la clave del parámetro especificado supera la longitud máxima permitida. |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | La longitud del nombre de usuario excede el límite superior. |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | La longitud del parámetro WindowsPasswordName especificado excede el límite superior. |
| 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. | No se encontró el parámetro especificado por {{oos:?}} en el contenido del comando. |
| 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. | La operación no está permitida. |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | Los parámetros de la solicitud no coinciden con la solicitud que tiene el mismo ClientToken. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | La solicitud idempotente anterior aún se está procesando. Inténtelo de nuevo más tarde. |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | No se permiten operaciones mientras se crea o elimina el grupo de recursos. |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | El nombre del comando contiene caracteres no válidos. |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | La descripción del comando contiene caracteres no válidos. |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | La ruta de ejecución del comando contiene caracteres no válidos. |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | La longitud del parámetro Launcher supera el límite de 1 KB. |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | El parámetro de comando contiene caracteres no válidos. |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | No tiene el permiso para crear roles vinculados al servicio. |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | El modo de ejecución de comando especificado no existe. |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | El RegionId especificado no existe. Verifique si el producto está disponible en esta región. |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | La instancia especificada no existe. |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | El parámetro CommandId especificado no es válido. Compruebe si el valor del parámetro es correcto. Puede llamar a DescribeCommands para consultar todos los valores de CommandId disponibles. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | No se encuentra el grupo de recursos en los registros. |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | El parámetro TerminationMode especificado no existe. |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. | El bucket especificado en el parámetro OssOutputDelivery no existe. |
Consulte Códigos de error para ver la lista completa.
Notas de la versión
Consulte Notas de la versión para ver la lista completa.