Cria e executa um comando do Cloud Assistant, como um script Shell, PowerShell ou Bat, em uma ou mais instâncias ECS. Esta operação também suporta execução agendada, parâmetros personalizados e execução em contêineres.
Descrição da operação
Esta é uma API assíncrona. Após uma solicitação bem-sucedida, você pode chamar DescribeInvocations ou DescribeInvocationResults com o ID do comando ou o ID da invocação retornado para consultar os resultados da execução. DescribeInvocationResults.
Notas de uso
-
A instância de destino deve estar no estado
Running. Você pode chamar DescribeInstances para consultar o status da instância. -
O Agente do Cloud Assistant deve estar pré-instalado na instância de destino. Caso contrário, chame InstallCloudAssistant para instalá-lo e, em seguida, chame DescribeCloudAssistantStatus para consultar seu status de instalação.
NotaPor padrão, o Agente do Cloud Assistant é pré-instalado em instâncias ECS criadas a partir de imagens públicas após 1º de dezembro de 2017.
-
Ao executar comandos PowerShell, certifique-se de que o módulo PowerShell esteja configurado no sistema operacional Windows da instância. DescribeInstances InstallCloudAssistant DescribeCloudAssistantStatus.
Precauções
-
Você pode reter de 500 a 50.000 comandos do Cloud Assistant em uma única região. Para solicitar uma cota maior, consulte Gerenciamento de cotas.
-
Para usar novos recursos para tarefas agendadas, como executar tarefas em intervalos fixos, executar uma tarefa apenas uma vez em um horário especificado ou especificar um ano ou fuso horário para tarefas baseadas em expressões cron, o Agente do Cloud Assistant deve ser uma das seguintes versões ou posterior. Se o código de erro
ClientNeedUpgradefor retornado, consulte Atualizar ou parar de atualizar o Agente do Cloud Assistant para atualizar o agente para a versão mais recente.- Linux: 2.2.3.282 - Windows: 2.1.3.282 -
Ao executar uma tarefa agendada com base em uma expressão cron e especificar um fuso horário, a tarefa é executada no fuso horário especificado. Se você não especificar um fuso horário, a tarefa será executada no fuso horário do sistema da instância ECS, e o horário de execução dependerá do relógio do sistema da instância. Certifique-se de que a hora e o fuso horário da sua instância ECS estejam definidos conforme o esperado. Para obter mais informações sobre fusos horários, consulte Definir o fuso horário e o serviço NTP para uma instância Linux ou Definir o serviço NTP para uma instância Windows. Quota Management Upgrade or stop upgrading Cloud Assistant Agent Set the time zone and NTP service for a Linux instance Set the NTP service for a Windows instance.
Recomendações
-
Configurações de tempo limite: Você pode especificar o parâmetro Timeout para definir o tempo limite máximo de execução para um comando em uma instância ECS. Se a execução do comando expirar, o Agente do Cloud Assistant encerrará o processo à força.
-
Se uma execução única expirar, seu status de execução (InvokeRecordStatus) se tornará Failed.
-
Para uma tarefa agendada, o período de tempo limite se aplica a cada execução. Um tempo limite em uma execução não afeta a próxima. Se uma execução expirar, seu status de execução (InvokeRecordStatus) se tornará Failed.
-
-
Falhas de execução: Um comando pode falhar devido a um estado anormal da instância, problemas de rede ou um Agente do Cloud Assistant sem resposta. Nesses casos, nenhuma informação de execução é gerada. Para obter mais informações, consulte Erros comuns e sugestões para corrigir falhas de execução.
-
Parâmetros personalizados: Para usar parâmetros personalizados, defina EnableParameter como
true. Você pode então definir parâmetros em CommandContent usando o formato{{parameter}}e passar seus respectivos pares chave-valor ao executar o comando. InvokeRecordStatus Common errors and suggestions for fixing execution failures.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
ecs:RunCommand |
update |
*Instance
|
|
Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| RegionId |
string |
Sim |
O ID da região. Você pode chamar a operação DescribeRegions para consultar as regiões mais recentes da Alibaba Cloud. DescribeRegions. |
cn-hangzhou |
| ResourceGroupId |
string |
Não |
O ID do grupo de recursos para a execução do comando. Ao especificar este parâmetro, as seguintes regras se aplicam:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
Não |
O ID da região. Você pode chamar a operação DescribeRegions para consultar as regiões mais recentes da Alibaba Cloud. DescribeRegions. |
testName |
| Description |
string |
Não |
O nome do comando. Pode ter até 128 caracteres e suporta todos os conjuntos de caracteres. |
testDescription |
| Type |
string |
Sim |
A descrição do comando. Pode ter até 512 caracteres e suporta todos os conjuntos de caracteres. |
RunShellScript |
| CommandContent |
string |
Sim |
O tipo do comando. Valores válidos:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
Não |
O conteúdo do comando, que pode estar em texto simples ou codificado em Base64. Observe o seguinte:
|
/home/user |
| Timeout |
integer |
Não |
O diretório de trabalho para o comando na instância. O caminho pode ter até 200 caracteres. Valores padrão:
|
3600 |
| EnableParameter |
boolean |
Não |
O tempo limite de execução do comando, em segundos. Um tempo limite encerra o processo do comando à força se o comando falhar ao ser executado devido a exceções, como um conflito de processo, um módulo ausente ou um Agente do Cloud Assistant desativado. Valor padrão: 60. |
false |
| RepeatMode |
string |
Não |
Especifica se devem ser usados parâmetros personalizados no comando. Valor padrão: false. |
Once |
| Timed |
boolean |
Não |
O modo de execução do comando. Valores válidos:
Valor padrão:
Notas:
|
true |
| Frequency |
string |
Não |
Nota
Este parâmetro foi descontinuado e não tem mais nenhum efeito. |
0 */20 * * * ? |
| Parameters |
object |
Não |
A programação para o comando. Você pode especificar uma expressão de taxa, uma expressão at para execução única ou uma expressão cron.
|
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
Não |
Os pares chave-valor para parâmetros personalizados. Por exemplo, se CommandContent for Você pode especificar de 0 a 10 pares chave-valor. Observe o seguinte:
Por padrão, este parâmetro está vazio, o que indica que nenhum parâmetro personalizado é usado. |
false |
| ContentEncoding |
string |
Não |
Especifica se o comando deve ser salvo após ser executado. Valores válidos:
Valor padrão: false. |
Base64 |
| Username |
string |
Não |
O modo de codificação do conteúdo do comando (CommandContent). Valores válidos (não diferencia maiúsculas de minúsculas):
Valor padrão: |
test |
| WindowsPasswordName |
string |
Não |
O nome do usuário que executa o comando na instância ECS. O nome pode ter até 255 caracteres.
Você pode especificar outro usuário existente na instância para executar o comando. Executar comandos do Cloud Assistant como um usuário comum é mais seguro. Para obter mais informações, consulte Executar comandos do Cloud Assistant como um usuário comum. Run Cloud Assistant commands as a standard user. |
axtSecretPassword |
| InstanceId |
array |
Não |
O nome da senha do usuário que executa o comando em uma instância Windows. O nome pode ter até 255 caracteres. Para executar um comando como um usuário não padrão em uma instância Windows, você deve especificar tanto Username quanto WindowsPasswordName. Para reduzir o risco de vazamento de senha, recomendamos armazenar a senha no OOS Parameter Store e fornecer o nome do parâmetro aqui. Para obter mais informações, consulte Parâmetros de criptografia e Executar comandos do Cloud Assistant como um usuário comum. Nota
Você não precisa especificar este parâmetro ao executar um comando como o usuário |
i-bp185dy2o3o6neg**** |
|
string |
Não |
The ID of an ECS instance. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
Não |
Os IDs das instâncias ECS nas quais executar o comando. Você pode especificar de 1 a 100 IDs de instância. Se qualquer instância especificada não atender aos requisitos de execução, toda a operação falhará. Você pode solicitar um aumento de cota no Quota Center. A cota é nomeada Número máximo de instâncias suportadas por execução de comando. |
|
|
object |
Não |
O ID de uma instância ECS. |
||
| Value |
string |
Não |
The tag value for the command execution. The value can be an empty string. The value can be up to 128 characters long and cannot contain |
TestValue |
| Key |
string |
Não |
The tag key for the command execution. The key cannot be an empty string. The key can be up to 64 characters long and cannot start with The value can be up to 64 characters long and cannot start with |
TestKey |
| ContainerId |
string |
Não |
Uma matriz de pares de tags. A matriz pode conter de 0 a 20 tags. |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
Não |
O ID do contêiner. O ID deve ser uma string hexadecimal de 64 bits. Você pode adicionar o prefixo Notas:
Nota
Em contêineres Linux, você pode executar apenas scripts Shell. Você não pode usar comandos como |
test-container |
| ClientToken |
string |
Não |
O nome do contêiner. Notas:
Nota
Em contêineres Linux, você pode executar apenas scripts Shell. Você não pode usar comandos como |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
Não |
Um token gerado pelo cliente que é usado para garantir a idempotência da solicitação. Você deve garantir que o token seja exclusivo entre diferentes solicitações. O parâmetro ClientToken pode conter apenas caracteres ASCII e não pode exceder 64 caracteres. Para obter mais informações, consulte Como garantir a idempotência. How to ensure idempotence. |
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
Não |
A configuração de entrega do OSS para a saída do comando.
|
|
|
object |
Não |
A tag that is used to filter instances. You can run a command on multiple instances that have the same tags without specifying their instance IDs. |
||
| Value |
string |
Não |
The tag value that is used to filter instances. Notes:
|
TestValue |
| Key |
string |
Não |
The tag key that is used to filter instances. Notes:
|
TestKey |
| TerminationMode |
string |
Não |
Tags usadas para filtrar instâncias para execução de comando. Isso permite que você execute o comando em todas as instâncias com tags correspondentes, como uma alternativa à especificação de IDs de instância. A matriz pode conter de 0 a 20 tags. |
ProcessTree |
| Launcher |
string |
Não |
O modo para interromper a tarefa quando ela é interrompida manualmente ou expira. Valores válidos:
|
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
|
Não |
O launcher usado para executar o script. O valor pode ter até 1 KB de comprimento. |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| CommandId |
string |
O ID do comando. |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
O ID da execução do comando. |
t-7d2a745b412b4601b2d47f6a768d**** |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | |
| 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. | |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | |
| 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. | |
| 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. | |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | |
| 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. | |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | |
| 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. | |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | 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. | |
| 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. | |
| 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 | You've reached the limit on the count of command parameters. | |
| 403 | CmdParamName.ExceedLimit | The length of the command parameter name exceeds the limit. | |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper 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. | |
| 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. | |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | |
| 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. | |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | |
| 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. | |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.