ShellCommandActivity - 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

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

Veja a seguir um exemplo deste tipo de objeto.

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

Sintaxe

Campos de invocação de objetos Descrição Tipo de slot
schedule

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.

Objeto de referência, por exemplo, “agenda”: {"ref”:” myScheduleId “}

Grupo obrigatório (um dos seguintes é obrigatório) Descrição Tipo de slot
command O comando a ser executado. Use $ 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) Descrição 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”: {"ref”:” myResourceId “}
workerGroup Usado para tarefas de roteamento. Se você fornecer um valor de runsOn e workerGroup existir, será ignorado.workerGroup String

Campos opcionais Descrição 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”: {"ref”:” myActivityId “}
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”: {"ref”:” myDataNode Id "}
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”: {"ref”:” myActionId “}
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“: {" ref”:” myActionId “}
onSuccess Uma ação a ser executada quando o objeto atual é executado com êxito. Objeto de referência, por exemplo, “onSuccess”: {"ref”:” myActionId “}
output O local dos dados de saída. Objeto de referência, por exemplo, “output”: {"ref”:” myDataNode Id "}
parent O pai do objeto atual do qual os slots serão herdados. Objeto de referência, por exemplo, “parent”: {"ref”:” myBaseObject Id "}
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”: {"ref”:” myPreconditionId “}
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 $1 $2, 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 ${INPUT1_STAGING_DIR} e ${OUTPUT1_STAGING_DIR}. 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 Descrição Tipo de slot
@activeInstances A lista dos objetos da instância ativa programados no momento. Objeto de referência, por exemplo, “ActiveInstances”: {"ref”:” myRunnableObject Id "}
@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“: {" ref”:” myRunnableObject Id "}
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”: {"ref”:” myRunnableObject Id "}

Campos do sistema Descrição 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