Cria e executa um comando do Cloud Assistant em uma ou mais instâncias ECS. Esta operação suporta scripts Shell, PowerShell e Bat, e fornece recursos como execução agendada, parâmetros personalizados e execução dentro de contêineres nas instâncias.
Descrição da operação
Esta operação é assíncrona. Após o envio da solicitação, você pode chamar a operação DescribeInvocations ou DescribeInvocationResults e usar o ID do comando ou o ID da invocação retornado para consultar os resultados da execução.
Antes de começar
As instâncias de destino devem estar no estado Running. Você pode chamar a operação DescribeInstances para consultar o status da instância.
- O Cloud Assistant Agent está instalado nas instâncias de destino. Você pode chamar a operação InstallCloudAssistant para instalar o agente e chamar a operação DescribeCloudAssistantStatus para consultar o status da instalação.
Nota
Para instâncias ECS criadas a partir de imagens públicas após 1º de dezembro de 2017, o Cloud Assistant Agent é pré-instalado por padrão.
Para executar comandos PowerShell, certifique-se de que o módulo PowerShell esteja configurado no sistema operacional Windows das instâncias ECS de destino. Cloud Assistant Agent
Precauções
-
Em uma única região, você pode reter de 500 a 50.000 comandos do Cloud Assistant. Você pode solicitar um aumento de cota. Para mais informações, consulte Gerenciamento de cotas.
-
O Cloud Assistant Agent deve ser das seguintes versões ou posterior para suportar os novos recursos de tarefas agendadas (execução em intervalos fixos, execução única em um horário especificado e especificação do ano ou fuso horário para execução agendada baseada em expressão Cron). Se o código de erro ClientNeedUpgrade for retornado, consulte Atualizar ou desativar a atualização do Cloud Assistant Agent para atualizar o cliente 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, o horário de execução agendada é baseado no fuso horário especificado. Se você não especificar um fuso horário, o horário de execução agendada será baseado no fuso horário do sistema da instância ECS, e o horário de execução estará sujeito ao horário do sistema da instância. Certifique-se de que o horário ou fuso horário da instância ECS seja consistente com o horário esperado. Para 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.
Recomendações
- Configurações de tempo limite: Você pode especificar o parâmetro Timeout para definir o período máximo de tempo limite para a execução do comando na instância ECS. Se a execução do comando atingir o tempo limite, o Cloud Assistant Agent interrompe o processo à força.
Após o tempo limite de uma execução única, o status de execução (InvokeRecordStatus) muda para Failed.
O período de tempo limite para execução agendada se aplica a cada registro de execução. Um tempo limite na execução anterior não afeta a próxima execução. Após o tempo limite de uma execução, o status de execução (InvokeRecordStatus) muda para Failed.
Falhas de execução: Um comando pode falhar ao ser executado devido a status anormal da instância de destino, exceções de rede ou exceções do Cloud Assistant Agent. Nesse caso, nenhuma informação de execução é gerada. Para mais informações, consulte Falhas comuns e soluções para falhas de execução.
Parâmetros personalizados: Se você definir EnableParameter como true, o recurso de parâmetro personalizado será ativado. Ao definir CommandContent, você pode usar o formato {{parameter}} para definir parâmetros personalizados e passar os pares chave-valor do parâmetro personalizado ao executar o comando.
Experimente agora
Testar
Autorização RAM
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 a lista de regiões mais recente. |
cn-hangzhou |
| ResourceGroupId |
string |
Não |
O ID do grupo de recursos ao qual a execução do comando pertence. Ao especificar este parâmetro:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
Não |
O nome do comando. Suporta todos os conjuntos de caracteres e pode ter até 128 caracteres de comprimento. |
testName |
| Description |
string |
Não |
A descrição do comando. Suporta todos os conjuntos de caracteres e pode ter até 512 caracteres de comprimento. |
testDescription |
| Type |
string |
Sim |
O tipo de comando. Valores válidos:
|
RunShellScript |
| CommandContent |
string |
Sim |
O conteúdo do comando. O conteúdo do comando pode ser texto simples ou codificado em Base64. Observe os seguintes itens:
|
ZWNobyAxMjM= |
| WorkingDir |
string |
Não |
O diretório de execução do comando na instância ECS. Pode ter até 200 caracteres de comprimento. Valor padrão:
|
/home/user |
| Timeout |
integer |
Não |
O período de tempo limite para a execução do comando. Unidade: segundos. Se o comando não puder ser executado devido a problemas de processo, módulos ausentes ou Cloud Assistant Agent ausente, ocorrerá um tempo limite. Após um tempo limite, o processo do comando é encerrado à força. Valor padrão: 60. |
3600 |
| EnableParameter |
boolean |
Não |
Especifica se o comando contém parâmetros personalizados. Valor padrão: false. |
false |
| RepeatMode |
string |
Não |
O modo de execução do comando. Valores válidos:
Valor padrão:
Precauções:
|
Once |
| Timed |
boolean |
Não |
[Deprecated] Este parâmetro foi descontinuado e não tem efeito mesmo se for especificado. |
true |
| Frequency |
string |
Não |
O horário de execução do comando agendado. Três modos de execução agendada são suportados: execução em intervalos fixos (com base em expressões Rate), execução única em um horário especificado e execução agendada baseada em relógio (com base em expressões Cron).
|
0 */20 * * * ? |
| Parameters |
object |
Não |
Os pares chave-valor de parâmetros personalizados passados quando o comando é executado, se o comando contiver parâmetros personalizados. Por exemplo, se o conteúdo do comando for echo {{name}}, você pode passar o par chave-valor {"name":"Jack"} usando o parâmetro Parameter. O parâmetro personalizado substitui automaticamente o valor da variável name, resultando em um novo comando. O comando real executado é echo Jack. O número de parâmetros personalizados varia de 0 a 10. Observe os seguintes itens:
Valor padrão: vazio. Isso significa que o parâmetro não está definido e os parâmetros personalizados estão desativados. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
Não |
Especifica se deve reter o comando após sua execução. Valores válidos:
Valor padrão: false. |
false |
| ContentEncoding |
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: PlainText. Se um valor inválido for especificado, ele será processado como PlainText. |
Base64 |
| Username |
string |
Não |
O nome de usuário do usuário que executa o comando na instância ECS. Pode ter até 255 caracteres de comprimento.
Você também 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 mais informações, consulte Configurar um usuário comum para executar comandos do Cloud Assistant. |
test |
| WindowsPasswordName |
string |
Não |
O nome da senha do usuário que executa o comando na instância Windows. Pode ter até 255 caracteres de comprimento. Se você quiser executar o comando como um usuário não padrão (System) em uma instância Windows, deverá especificar tanto Username quanto este parâmetro. Para reduzir o risco de vazamento de senha, você deve hospedar a senha em texto simples no repositório de parâmetros do gerenciamento de operações e passar apenas o nome da senha aqui. Para mais informações, consulte Parâmetros criptografados e Configurações para usuários comuns executarem comandos do Cloud Assistant. Nota
Você não precisa passar este parâmetro ao executar o comando como o usuário root em uma instância Linux ou o usuário System em uma instância Windows. |
axtSecretPassword |
| InstanceId |
array |
Não |
A matriz de IDs de instâncias ECS. Comprimento da matriz: 1 a 100. Se você especificar várias instâncias e uma das instâncias não atender às condições de execução, deverá selecionar novamente as instâncias. Você também pode solicitar um aumento de cota no Quota Center. O nome da cota é o número máximo de instâncias suportadas para execução de comando. |
i-bp185dy2o3o6neg**** |
|
string |
Não |
O ID da instância ECS. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
Não |
A matriz de tags. Comprimento da matriz: 0 a 20. |
|
|
object |
Não |
A tag. |
||
| Key |
string |
Não |
A chave da tag para execução do comando. Se você especificar este parâmetro, ele não poderá ser uma string vazia. Se você usar uma única tag para filtrar recursos, a contagem de recursos sob a tag não poderá exceder 1.000. Se você usar várias tags para filtrar recursos, a contagem de recursos anexados a todas as tags especificadas não poderá exceder 1.000. Se a contagem de recursos exceder 1.000, você deverá usar a operação ListTagResources para consultar os recursos. Pode ter até 64 caracteres de comprimento e não pode começar com aliyun ou acs:. Não pode conter http:// ou https://. |
TestKey |
| Value |
string |
Não |
O valor da tag para execução do comando. Este valor pode ser uma string vazia. Pode ter até 128 caracteres de comprimento e não pode conter http:// ou https://. |
TestValue |
| ContainerId |
string |
Não |
O ID do contêiner. Apenas strings hexadecimais de 64 bits são suportadas. O prefixo docker://, containerd:// ou cri-o:// é permitido para especificar explicitamente o tempo de execução do contêiner. Precauções:
Nota
Apenas scripts Shell podem ser executados em contêineres Linux. Você não pode usar um comando como #!/usr/bin/python no início do script para especificar o interpretador para o conteúdo do script. Para mais informações, consulte Usar o Cloud Assistant para executar comandos em contêineres. |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
Não |
O nome do contêiner. Precauções:
Nota
Apenas scripts Shell podem ser executados em contêineres Linux. Você não pode usar um comando como #!/usr/bin/python no início do script para especificar o interpretador para o conteúdo do script. Para mais informações, consulte Usar o Cloud Assistant para executar comandos em contêineres. |
test-container |
| ClientToken |
string |
Não |
O token de cliente usado para garantir a idempotência da solicitação. Você pode usar o cliente para gerar o valor, mas deve garantir que ele seja exclusivo entre diferentes solicitações. O valor ClientToken pode conter apenas caracteres ASCII e não pode exceder 64 caracteres de comprimento. Para mais informações, consulte Como garantir a idempotência. |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
Não |
A configuração de entrega do OSS para a saída da execução do comando.
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
Não |
A matriz de tags usadas para filtrar instâncias. Comprimento da matriz: 0 a 20. Você pode executar comandos em lotes em instâncias com a mesma tag sem especificar InstanceId. |
|
|
object |
Não |
A tag usada para filtrar instâncias. Você pode executar comandos em lotes em instâncias com a mesma tag sem especificar InstanceId. |
||
| Key |
string |
Não |
A chave da tag usada para filtrar instâncias. Precauções:
|
TestKey |
| Value |
string |
Não |
O valor da tag usado para filtrar instâncias. Precauções:
|
TestValue |
| TerminationMode |
string |
Não |
O modo usado quando a tarefa é interrompida (interrompida manualmente ou interrompida devido ao tempo limite de execução). Valores válidos:
|
ProcessTree |
| Launcher |
string |
Não |
O programa de inicialização para execução do script. Não pode exceder 1 KB de comprimento. |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
|||
| CommandId |
string |
O ID do comando. |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
O ID da invocação. |
t-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
O ID da solicitação. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
Exemplos
Resposta de sucesso
JSON formato
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
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. | Esta operação de API não é suportada na região especificada. Verifique se o valor do parâmetro RegionId está correto. |
| 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. | O ID da instância está vazio. |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | O número de tags excede o limite máximo. Esta operação suporta no máximo 20 tags. |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | O valor da tag especificado é inválido. |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | Existem chaves duplicadas nas tags. Certifique-se de que as chaves sejam exclusivas. |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | O parâmetro de chave de tag especificado é inválido. |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | Especifique uma chave de tag. |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | O ID do contêiner especificado é inválido. |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | O nome do contêiner especificado é inválido. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | O parâmetro de idempotência especificado é invá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. | O valor do parâmetro CommandContent não pode ser decodificado em Base64. Verifique se o valor do parâmetro está correto. |
| 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. | Os nomes dos parâmetros devem ser exclusivos. Verifique os nomes e tente novamente. |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | Os parâmetros personalizados transmitidos não correspondem aos parâmetros personalizados definidos quando o comando foi criado. |
| 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. | Não transmita parâmetros personalizados quando o recurso de parâmetros personalizados estiver desativado para o comando. |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | O parâmetro WorkingDir especificado é invá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. | O bucket do OSS especificado no parâmetro OssOutputDelivery está localizado em uma região diferente. |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | O parâmetro OssOutputDelivery especificado é inválido. |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | O prefixo especificado no parâmetro OssOutputDelivery é inválido. |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | Ocorreu um erro ao enviar a solicitação. Tente novamente mais 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. | O conteúdo do comando é muito longo. Reduza o conteúdo do comando. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | O comprimento do nome do comando excede o limite superior. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | O comprimento da descrição do comando excede o limite máximo. |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | O número de comandos do Cloud Assistant na região atual excedeu o limite. |
| 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. | O comprimento do nome do parâmetro personalizado excede o limite. |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | O número de instâncias de destino excede o limite superior. |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | A cota diária de execuções de comandos na região atual foi atingida. |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | O número de parâmetros excede o limite máximo permitido. |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | O comprimento da chave do parâmetro especificado excede o comprimento máximo permitido. |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | O comprimento do nome de usuário excede o limite superior. |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | O parâmetro WindowsPasswordName especificado excede o limite máximo de comprimento. |
| 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. | O parâmetro especificado por {{oos:?}} no conteúdo do comando não foi encontrado. |
| 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. | A operação não é permitida. |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | Os parâmetros da solicitação são inconsistentes com os da solicitação que usa o mesmo ClientToken. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | Uma solicitação idempotente anterior ainda está sendo processada. Tente novamente mais tarde. |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | Esta operação não é permitida enquanto um grupo de recursos está sendo criado ou excluído. |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | O nome do comando contém caracteres inválidos. |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | A descrição do comando contém caracteres inválidos. |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | O caminho de execução do comando contém caracteres inválidos. |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | O comprimento do parâmetro Launcher excede o limite de 1 KB. |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | Os parâmetros de comando contêm um conjunto de caracteres inválido. |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | Você não tem as permissões necessárias para criar uma função vinculada ao serviço. |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 403 | RequestDenied.WAFIntercepted | Request denied by WAF security protection. | A solicitação foi bloqueada pela proteção de segurança do WAF. |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | O modo de execução de comando especificado não existe. |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | O RegionId especificado não existe. Verifique se o serviço está disponível na região. |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | A instância especificada não existe. |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | O parâmetro CommandId especificado é inválido. Verifique se o valor do parâmetro está correto. Você pode chamar DescribeCommands para consultar todos os IDs de comando disponíveis. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | O grupo de recursos especificado não existe. |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | O parâmetro TerminationMode especificado não existe. |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. | O bucket especificado no parâmetro OssOutputDelivery não existe. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.