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 de comandos em contêineres nas instâncias.
Descrição da operação
Esta é uma operação assíncrona. Após o envio da solicitação, 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.
Antes de começar
A instância de destino deve estar no estado de execução (
Running). Você pode chamar DescribeInstances para consultar o status da instância.- A instância de destino deve ter o Agente do Cloud Assistant instalado. Você pode instalá-lo chamando InstallCloudAssistant e consultar o status da instalação chamando DescribeCloudAssistantStatus.
Nota
As instâncias ECS criadas a partir de imagens públicas após 1º de dezembro de 2017 têm o Agente do Cloud Assistant pré-instalado por padrão.
Para executar comandos do PowerShell, certifique-se de que o módulo do PowerShell esteja configurado no sistema operacional Windows da instância ECS de destino.
Precauções
-
Em uma única região, você pode reter de 500 a 50.000 comandos do Cloud Assistant. Você também pode solicitar um aumento de cota. Para mais informações, consulte Gerenciamento de cotas.
-
O Agente do Cloud Assistant deve estar nas seguintes versões ou superior para suportar novos recursos para tarefas agendadas (execução em intervalos fixos, execução única em um horário especificado e especificação de um ano ou fuso horário para execução agendada baseada em Cron). Se o código de erro
ClientNeedUpgradefor retornado, consulte Atualizar ou desativar atualizações para 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 baseada em Cron com um fuso horário especificado, o horário de execução agendada é baseado no fuso horário especificado. Quando você não especifica um fuso horário, o horário de execução agendada é baseado no fuso horário do sistema da instância ECS, e o horário de execução é determinado pelo horário do sistema da instância. Certifique-se de que o horário ou fuso horário da instância ECS corresponda às suas expectativas. Para mais informações sobre fusos horários, consulte Configurar o fuso horário e o serviço NTP para uma instância Linux ou Configurar o serviço NTP para uma instância Windows.
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 |
*Instância.
|
|
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 DescribeRegions para consultar a lista de regiões mais recente. |
cn-hangzhou |
| ResourceGroupId |
string |
Não |
O ID do grupo de recursos para a execução do comando. Quando este parâmetro é especificado:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
Não |
O nome do comando. Todos os conjuntos de caracteres são suportados. O nome pode ter até 128 caracteres. |
testName |
| Description |
string |
Não |
A descrição do comando. Todos os conjuntos de caracteres são suportados. A descrição pode ter até 512 caracteres. |
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 trabalho do comando na instância ECS. O valor pode ter até 200 caracteres. Valores padrão:
|
/home/user |
| Timeout |
integer |
Não |
O período de tempo limite para a execução do comando. Unidade: segundos. Quando um comando não pode ser executado devido a problemas de processo, módulos ausentes ou Agente do Cloud Assistant ausente, ocorre um tempo limite. Quando ocorre 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:
Valores padrão:
Precauções:
|
Once |
| Timed |
boolean |
Não |
[Deprecated] Este parâmetro foi descontinuado. Especificar este parâmetro não tem efeito. |
true |
| Frequency |
string |
Não |
A programação para executar o comando. Três métodos de agendamento são suportados: execução em intervalos fixos (com base em uma expressão Rate), execução única em um horário especificado e execução agendada baseada em relógio (com base em uma expressão Cron).
|
0 */20 * * * ? |
| Parameters |
object |
Não |
Os pares chave-valor de parâmetros personalizados a serem transmitidos quando o comando contém parâmetros personalizados. Por exemplo, se o conteúdo do comando for O número de parâmetros personalizados varia de 0 a 10. Observe os seguintes itens:
Valor padrão: vazio, o que desativa os parâmetros personalizados. |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
Não |
Especifica se deve reter o comando após a execução. Valores válidos:
Valor padrão: false. |
false |
| ContentEncoding |
string |
Não |
O método de codificação do conteúdo do comando (
Valor padrão: PlainText. Se um valor inválido for especificado, ele será tratado como PlainText. |
Base64 |
| Username |
string |
Não |
O nome de usuário para executar o comando na instância ECS. O valor pode ter até 255 caracteres.
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 em uma instância Windows. O nome pode ter até 255 caracteres. Se você deseja executar um comando como um usuário não padrão (System) em uma instância Windows, deve especificar tanto Nota
Você não precisa especificar este parâmetro se 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 qualquer uma das instâncias especificadas não atender às condições para executar o comando, você deve selecionar novamente as instâncias. Você também pode solicitar um aumento de cota no Quota Center (nome da cota: Número máximo de instâncias que podem executar comandos). |
i-bp185dy2o3o6neg**** |
|
string |
Não |
O ID da instância ECS. |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
Não |
As tags. Comprimento da matriz: 0 a 20. |
|
|
object |
Não |
A tag. |
||
| Key |
string |
Não |
A chave da tag a ser usada quando você executa o comando. Se este valor for especificado, não pode ser uma string vazia. Quando você usa uma única tag para filtrar recursos, a contagem de recursos sob essa tag não pode exceder 1.000. Quando você usa várias tags para filtrar recursos, a contagem de recursos anexados a todas as tags especificadas não pode exceder 1.000. Se a contagem de recursos exceder 1.000, use a operação ListTagResources para consultar recursos. A chave da tag pode ter até 64 caracteres e não pode começar com |
TestKey |
| Value |
string |
Não |
O valor da tag da execução do comando. O valor pode ser uma string vazia. O valor da tag pode ter até 128 caracteres e não pode conter |
TestValue |
| ContainerId |
string |
Não |
O ID do contêiner. Apenas strings hexadecimais de 64 bits são suportadas. Você pode usar o prefixo Precauções:
Nota
Apenas scripts Shell são suportados em contêineres Linux. Você não pode usar um formato como |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
Não |
O nome do contêiner. Precauções:
Nota
Apenas scripts Shell são suportados em contêineres Linux. Você não pode usar um formato como |
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 token, mas certifique-se de que o token seja exclusivo entre diferentes solicitações. ClientToken pode conter apenas caracteres ASCII e não pode exceder 64 caracteres. 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 |
As tags usadas para filtrar instâncias. Comprimento da matriz: 0 a 20. Você pode executar comandos em lotes em instâncias que possuem as mesmas tags sem especificar InstanceId. |
|
|
object |
Não |
A tag usada para filtrar instâncias. Você pode executar comandos em lotes em instâncias que possuem as mesmas tags 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 para interromper a tarefa (interrupção manual ou interrupção por tempo limite). Valores válidos:
|
ProcessTree |
| Launcher |
string |
Não |
O programa de inicialização para a execução do script. O valor 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. | A 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. Você pode especificar até 20 tags para esta operação. |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | O parâmetro de 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 todas as chaves sejam únicas. |
| 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 idempotente 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 especificado 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 não podem ser duplicados. 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 do comando estiver desativado. |
| 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á 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 seu comando é muito longo. Simplifique o conteúdo do seu comando. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | O nome do comando excede o comprimento máximo. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | O comprimento da descrição do comando excede o limite superior. |
| 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 nome do seu parâmetro personalizado excede o limite de comprimento. |
| 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. | O número de execuções de comando na região atual atingiu a cota diária. |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | O número de parâmetros excede o 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 comprimento do parâmetro WindowsPasswordName especificado excede o limite 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. | 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 não correspondem à solicitação com o mesmo ClientToken. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | A 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. | As operações não são permitidas enquanto o 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. | O parâmetro de comando contém caracteres inválidos. |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | Você não tem permissão para criar funções vinculadas ao serviço. |
| 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. | 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 produto está disponível nesta 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 valores de CommandId disponíveis. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | O grupo de recursos não foi encontrado nos registros. |
| 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.