

AWS Data Pipeline não está mais disponível para novos clientes. Os clientes existentes do AWS Data Pipeline podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# ShellCommandActivity
<a name="dp-object-shellcommandactivity"></a>

 Executa um comando ou script. Você pode usar `ShellCommandActivity` para executar séries temporais ou tarefas programadas parecidas com Cron. 

Quando o campo `stage` é definido como verdadeiro e usado com um `S3DataNode`, o `ShellCommandActivity` oferece suporte ao conceito de preparação de dados, o que significa que você pode mover dados do Amazon S3 para um local de estágio, como o Amazon EC2 ou seu ambiente local, executar trabalhos nos dados usando scripts e o `ShellCommandActivity`, e movê-los de volta para o Amazon S3. 

Nesse caso, quando o comando shell está conectado a uma entrada `S3DataNode`, os scripts shell operam diretamente nos dados usando `${INPUT1_STAGING_DIR}`, `${INPUT2_STAGING_DIR}` e outros campos, referindo aos campos de entrada `ShellCommandActivity`. 

Da mesma forma, a saída do comando de shell pode ser preparada em um diretório de saída para ser automaticamente enviada ao Amazon S3, referenciada por `${OUTPUT1_STAGING_DIR}`, `${OUTPUT2_STAGING_DIR}` e assim por diante. 

Essas expressões podem passar como argumentos de linha de comando para o comando de shell para que você possa usá-las na lógica de transformação de dados.

`ShellCommandActivity` retorna códigos de erro e strings no estilo do Linux. Se `ShellCommandActivity` resulta em um erro, o `error` retornado é um valor diferente de zero.

## Exemplo
<a name="shellcommandactivity-example"></a>

Veja a seguir um exemplo deste tipo de objeto.

```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "command" : "mkdir new-directory"
}
```

## Sintaxe
<a name="shellcommandactivity-syntax"></a>


****  

| Campos de invocação de objetos | Description | Tipo de slot | 
| --- | --- | --- | 
| agendamento |  Esse objeto é invocado durante a execução de um intervalo `schedule`. Para definir a ordem de execução de dependência desse objeto, especifique uma referência `schedule` a outro objeto.  Para atender a esse requisito, defina explicitamente um `schedule` no objeto, por exemplo, especificando `"schedule": {"ref": "DefaultSchedule"}`.  Na maioria dos casos, é melhor colocar a referência `schedule` no objeto de pipeline padrão para que todos os objetos herdem essa programação. Se o pipeline consiste em uma árvore de programações (programações aninhadas na programação principal), crie um objeto pai que tenha uma referência de programação.  Para distribuir a carga, AWS Data Pipeline cria objetos físicos um pouco antes do previsto, mas os executa dentro do cronograma.  Para obter mais informações sobre o exemplo de configurações opcionais de programação, consulte [https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html).  | Objeto de referência, por exemplo, “agenda”: \$1"ref”:” myScheduleId “\$1 | 

 


****  

| Grupo obrigatório (um dos seguintes é obrigatório) | Description | Tipo de slot | 
| --- | --- | --- | 
| command | O comando a ser executado. Use \$1 para fazer referência aos parâmetros posicionais e scriptArgument para especificar os parâmetros para o comando. Este valor e quaisquer parâmetros associados precisam funcionar no ambiente do qual você está executando o Task Runner. | String | 
| scriptUri | Um caminho de URI do Amazon S3 para um arquivo do qual você fará download e executará como um comando shell. Especifique somente um campo scriptUri ou command. scriptUri não pode usar parâmetros, portanto, em vez disso, use command. | String | 

 


****  

| Grupo obrigatório (um dos seguintes é obrigatório) | Description | Tipo de slot | 
| --- | --- | --- | 
| runsOn | O recurso computacional para executar a atividade ou o comando, por exemplo, uma instância do Amazon EC2; ou um cluster do Amazon EMR. | Objeto de referência, por exemplo, “runsOn”: \$1"ref”:” myResourceId “\$1 | 
| workerGroup | Usado para tarefas de roteamento. Se você fornecer um valor de runsOn e workerGroup existir, será ignorado.workerGroup | String | 

 


****  

| Campos opcionais | Description | Tipo de slot | 
| --- | --- | --- | 
| attemptStatus | O status mais recente da atividade remota. | String | 
| attemptTimeout | O tempo limite para conclusão do trabalho remoto. Se definido, uma atividade remota não concluída dentro do prazo definido poderá ser executada novamente. | Período | 
| dependsOn | Especifica uma dependência em outro objeto executável. | Objeto de referência, por exemplo, “dependsOn”: \$1"ref”:” myActivityId “\$1 | 
| failureAndRerunModo | Descreve o comportamento do nó do consumidor quando as dependências apresentam falhas ou são executadas novamente. | Enumeração | 
| input | O local dos dados de entrada. | Objeto de referência, por exemplo, “input”: \$1"ref”:” myDataNode Id "\$1 | 
| lateAfterTimeout | O tempo decorrido após o início do pipeline no qual o objeto deve ser concluído. Ele é acionado somente quando o tipo de programação não está definido como ondemand. | Período | 
| maxActiveInstances | O número máximo de instâncias ativas simultâneas de um componente. Novas execuções não contam para o número de instâncias ativas. | Inteiro | 
| maximumRetries | A quantidade máxima de novas tentativas após uma falha. | Inteiro | 
| onFail | Uma ação a ser executada quando há falha no objeto atual. | Objeto de referência, por exemplo, “onFail”: \$1"ref”:” myActionId “\$1 | 
| onLateAction | Ações que devem ser acionadas se um objeto ainda não foi programado ou não foi concluído. | Objeto de referência, por exemplo, "onLateAction“: \$1" ref”:” myActionId “\$1 | 
| onSuccess | Uma ação a ser executada quando o objeto atual é executado com êxito. | Objeto de referência, por exemplo, “onSuccess”: \$1"ref”:” myActionId “\$1 | 
| saída | O local dos dados de saída. | Objeto de referência, por exemplo, “output”: \$1"ref”:” myDataNode Id "\$1 | 
| parent | O pai do objeto atual do qual os slots serão herdados. | Objeto de referência, por exemplo, “parent”: \$1"ref”:” myBaseObject Id "\$1 | 
| pipelineLogUri | O URI do Amazon S3, como 's3://BucketName/Key/', para fazer upload de logs para o pipeline. | String | 
| precondition | Opcionalmente define uma precondição. Um nó de dados não fica marcado como "READY" até que todas as precondições tenham sido atendidas. | Objeto de referência, por exemplo, “pré-condição”: \$1"ref”:” myPreconditionId “\$1 | 
| reportProgressTimeout | O tempo limite para chamadas sucessivas para reportProgress por atividades remotas. Se configurada, as atividades remotas sem progresso para o período especificado poderão ser consideradas como interrompidas e serão executadas novamente. | Período | 
| retryDelay | A duração do tempo limite entre duas novas tentativas. | Período | 
| scheduleType |  Permite que você especifique se os objetos na definição do pipeline devem ser programados no início ou no final do intervalo.  Os valores possíveis são: `cron`, `ondemand` e `timeseries`. Se definido como `timeseries`, as instâncias são programadas no final de cada intervalo.  Se definido como `Cron`, as instâncias são programadas no início de cada intervalo.  Se definido como `ondemand`, você pode executar um pipeline uma vez por ativação. Isso significa que você não precisa clonar nem recriar o pipeline para executá-lo novamente. Se você usar uma programação `ondemand`, deverá especificá-la no objeto padrão como o único `scheduleType` para objetos no pipeline. Para usar pipelines `ondemand`, chame a operação `ActivatePipeline` para cada execução subsequente.   | Enumeração | 
| scriptArgument | Um conjunto de strings em formato JSON para ser passado ao comando especificado pelo comando. Por exemplo, se o comando for echo \$11 \$12, especifique scriptArgument como "param1", "param2". Para vários argumentos e parâmetros, passe o scriptArgument da seguinte forma: "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2". O scriptArgument só pode ser usado com command. Usá-lo com scriptUri causa um erro. | String | 
| stage | Determina se a preparação está ou não ativada e permite que os comandos shell tenham acesso às variáveis de dados preparados, como \$1\$1INPUT1\$1STAGING\$1DIR\$1 e  \$1\$1OUTPUT1\$1STAGING\$1DIR\$1. | Booleano | 
| stderr | O caminho do que recebe mensagens de erro do sistema redirecionadas do comando. Se você usar o campo runsOn, ele precisará ser um caminho do Amazon S3 devido à natureza transitória do recurso que está executando sua atividade. No entanto, se você especificar o campo workerGroup, poderá usar um caminho de arquivo local. | String | 
| stdout | O caminho do Amazon S3 que recebe saídas redirecionadas do comando. Se você usar o campo runsOn, ele precisará ser um caminho do Amazon S3 devido à natureza transitória do recurso que está executando sua atividade. No entanto, se você especificar o campo workerGroup, poderá usar um caminho de arquivo local. | String | 

 


****  

| Campos de tempo de execução | Description | Tipo de slot | 
| --- | --- | --- | 
| @activeInstances | A lista dos objetos da instância ativa programados no momento. | Objeto de referência, por exemplo, “ActiveInstances”: \$1"ref”:” myRunnableObject Id "\$1 | 
| @actualEndTime | O horário em que a execução desse objeto foi concluída. | DateTime | 
| @actualStartTime | O horário em que a execução desse objeto foi iniciada. | DateTime | 
| cancellationReason | O cancellationReason se esse objeto foi cancelado. | String | 
| @cascadeFailedOn | A descrição da cadeia de dependências que causou a falha no objeto. | Objeto de referência, por exemplo, "cascadeFailedOn“: \$1" ref”:” myRunnableObject Id "\$1 | 
| emrStepLog | Registros da etapa do Amazon EMR disponíveis somente nas tentativas de atividade do Amazon EMR. | String | 
| errorId | O errorId se esse objeto apresentou falha. | String | 
| errorMessage | O errorMessage se esse objeto apresentou falha. | String | 
| errorStackTrace | O rastreamento de pilha com erro se esse objeto apresentou falha. | String | 
| @finishedTime | O horário em que a execução do objeto foi concluída. | DateTime | 
| hadoopJobLog | Registos de trabalho do Hadoop disponíveis nas tentativas de atividades baseadas no Amazon EMR. | String | 
| @healthStatus | O status de integridade do objeto que indica se houve sucesso ou falha na última instância concluída do objeto. | String | 
| @healthStatusFromInstanceId | O ID do último objeto de instância que entrou em um estado concluído. | String | 
| @ healthStatusUpdated Hora | O horário em que o status de integridade foi atualizado pela última vez. | DateTime | 
| hostname | O nome de host do cliente que pegou a tentativa da tarefa. | String | 
| @lastDeactivatedTime | A hora em que esse objeto foi desativado pela última vez. | DateTime | 
| @ latestCompletedRun Hora | O horário da última execução concluída. | DateTime | 
| @latestRunTime | O horário da última execução programada. | DateTime | 
| @nextRunTime | O horário da próxima execução a ser programada. | DateTime | 
| reportProgressTime | A última vez em que a atividade remota relatou progresso. | DateTime | 
| @scheduledEndTime | O horário de término programado para o objeto. | DateTime | 
| @scheduledStartTime | O horário de início programado para o objeto. | DateTime | 
| @status | O status do objeto. | String | 
| @version | A AWS Data Pipeline versão usada para criar o objeto. | String | 
| @waitingOn | A descrição da lista de dependências pelas quais esse objeto está aguardando. | Objeto de referência, por exemplo, “waitingOn”: \$1"ref”:” myRunnableObject Id "\$1 | 

 


****  

| Campos do sistema | Description | Tipo de slot | 
| --- | --- | --- | 
| @error | O erro ao descrever o objeto malformado. | String | 
| @pipelineId | O ID do pipeline ao qual esse objeto pertence. | String | 
| @sphere | O local de um objeto no ciclo de vida. Objetos de componentes dão origem a objetos de instância, que executam objetos de tentativa. | String | 

## Consulte também
<a name="shellcommandactivity-seealso"></a>
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrActivity](dp-object-emractivity.md)