ShellCommandActivity - AWS Data Pipeline

AWS Data Pipeline ya no está disponible para nuevos clientes. Clientes actuales de AWS Data Pipeline pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

ShellCommandActivity

Ejecuta un comando o script. Puede usar ShellCommandActivity para ejecutar tareas programadas de serie temporal o similar a Cron.

Cuando el stage campo se establece en verdadero y se usa con unS3DataNode, ShellCommandActivity admite el concepto de datos de almacenamiento provisional, lo que significa que puede mover los datos de Amazon S3 a una ubicación de escenario, como Amazon EC2 o su entorno local, trabajar con los datos mediante scripts y el ShellCommandActivity y volver a moverlos a Amazon S3.

En este caso, cuando su comando de shell está conectado a un nodo S3DataNode de entrada, sus scripts de shell operan directamente en los datos mediante ${INPUT1_STAGING_DIR}, ${INPUT2_STAGING_DIR} y otros campos, que hacen referencia a los campos de entrada ShellCommandActivity.

De forma similar, la salida del comando del intérprete de comandos se puede almacenar de modo transitorio en un directorio de salida que se va a insertar automáticamente en Amazon S3, al que hacen referencia ${OUTPUT1_STAGING_DIR}, ${OUTPUT2_STAGING_DIR}, etc.

Estas expresiones pueden pasar como argumentos de línea de comandos al comando de shell para su uso en la lógica de transformación de datos.

ShellCommandActivity devuelve cadenas y códigos de error estilo Linux. Si ShellCommandActivity genera un error, el error devuelto es un valor distinto de cero.

Ejemplo

A continuación se muestra un ejemplo de este tipo de objeto.

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

Sintaxis

Campos de invocación de objetos Descripción Tipo de slot
schedule

Este objeto se invoca dentro de la ejecución de un intervalo de schedule.

Para establecer el orden de ejecución de dependencia de este objeto, especifique una referencia schedule a otro objeto.

Para cumplir este requisito, establezca de forma explícita un schedule en el objeto, por ejemplo, especificando "schedule": {"ref": "DefaultSchedule"}.

En la mayoría de los casos, es mejor poner la referencia de schedule en el objeto de la canalización predeterminado de modo que todos los objetos hereden ese programa. Si la canalización consta un árbol de programas (programas dentro del programa maestro), cree un objeto principal que tenga una referencia de programa.

Para distribuir la carga, AWS Data Pipeline crea objetos físicos un poco antes de lo previsto, pero los ejecuta según lo programado.

Para obtener más información acerca de las configuraciones de programación opcionales de ejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Objeto de referencia, por ejemplo, «schedule»: {"ref»:» myScheduleId «}

Grupo obligatorio (se requiere uno de los siguientes) Descripción Tipo de slot
comando El comando que se va a ejecutar. Utilice $ para hacer referencia a parámetros posicionales y scriptArgument para especificar los parámetros para el comando. Este valor y cualquier parámetro asociado debe funcionar en el entorno desde el que se está ejecutando Task Runner. Cadena
scriptUri Una URI ruta de Amazon S3 para que un archivo se descargue y ejecute como un comando de shell. Especifique solo un campo scriptUri o command. scriptUri no puede utilizar parámetros; utilice command en su lugar. Cadena

Grupo obligatorio (se requiere uno de los siguientes) Descripción Tipo de slot
runsOn El recurso computacional para ejecutar la actividad o el comando, por ejemplo, una EC2 instancia de Amazon o un EMR clúster de Amazon. Objeto de referencia, por ejemplo, "runsOn«: {" ref»:» myResourceId «}
workerGroup Utilizado para dirigir tareas. Si proporciona un valor runsOn y existe workerGroup, workerGroup se ignora. Cadena

Campos opcionales Descripción Tipo de slot
attemptStatus El estado más reciente notificado por la actividad remota. Cadena
attemptTimeout El tiempo de espera para que se complete el trabajo remoto. Si se establece, se puede reintentar una actividad remota que no se complete dentro del tiempo de inicio especificado. Período
dependsOn Especifica una dependencia de otro objeto ejecutable. Objeto de referencia, por ejemplo, "dependsOn«: {" ref»:» myActivityId «}
failureAndRerunModo failureAndRerunMode. Enumeración
input La ubicación de los datos de entrada. Objeto de referencia, por ejemplo, «input»: {"ref»:» myDataNode Id "}
lateAfterTimeout El tiempo transcurrido desde el inicio de la canalización dentro del cual el objeto debe completarse. Solo se activa cuando el tipo de programación no está establecido en ondemand. Período
maxActiveInstances El número máximo de instancias activas simultáneas de un componente. Las nuevas ejecuciones no cuentan para el número de instancias activas. Entero
maximumRetries El número máximo de intentos en caso de error. Entero
onFail Acción que se debe ejecutar cuando el objeto actual produzca un error. Objeto de referencia, por ejemplo, "onFail«: {" ref»:» myActionId «}
onLateAction Acciones que deben iniciarse si un objeto no se ha programado o no se ha completado. Objeto de referencia, por ejemplo, "onLateAction«: {" ref»:» myActionId «}
onSuccess Acción que se debe ejecutar cuando el objeto actual se complete correctamente. Objeto de referencia, por ejemplo, "onSuccess«: {" ref»:» myActionId «}
salida La ubicación de los datos de salida. Objeto de referencia, por ejemplo, «output»: {"ref»:» myDataNode Id "}
parent El elemento principal del objeto actual del que se heredarán los slots. Objeto de referencia, por ejemplo, «parent»: {"ref»:» myBaseObject Id "}
pipelineLogUri El Amazon S3URI, por ejemplo, 's3://BucketName/Key/' para cargar registros para la canalización. Cadena
precondition Opcionalmente define una condición previa. Un nodo de datos no se marca como «READY» hasta que se hayan cumplido todas las condiciones previas. Objeto de referencia, por ejemplo, «condición previa»: {"ref»:» myPreconditionId «}
reportProgressTimeout El tiempo de espera para llamadas sucesivas a reportProgress por parte de actividades remotas. Si se establece, las actividades remotas que no informen de su progreso durante el período especificado pueden considerarse estancadas y reintentarse. Período
retryDelay Duración del tiempo de espera entre dos reintentos. Período
scheduleType

Le permite especificar si los objetos de la definición de la canalización deben programarse al principio del intervalo o al final de este.

Los valores posibles son: cron, ondemand y timeseries.

Si se establece en timeseries, las instancias se programan al final de cada intervalo.

Si se establece en Cron, las instancias se programan al inicio de cada intervalo.

Si se establece en ondemand, puede ejecutar una canalización una vez por activación. Esto significa que no tiene que clonar o recrear la canalización para ejecutarla de nuevo. Si usa un programa ondemand, especifíquelo en el objeto predeterminado como scheduleType único para los objetos de la canalización. Para usar canalizaciones ondemand, solo tiene que llamar a la operación ActivatePipeline para cada ejecución posterior.

Enumeración
scriptArgument Una matriz JSON de cadenas con formato B para pasarlas al comando especificado por el comando. Por ejemplo, si el comando es echo $1 $2, especifique scriptArgument como "param1", "param2". Para varios argumentos y parámetros, pase el scriptArgument del siguiente modo: "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2". El scriptArgument solo se puede utilizar con command; si se utiliza con scriptUri produce un error. Cadena
stage Determina si está habilitado el espacio transitorio y permite que los comandos de shell tengan acceso a las variables de datos en el espacio transitorio, como ${INPUT1_STAGING_DIR} y ${OUTPUT1_STAGING_DIR}. Booleano
stderr La ruta que recibe los mensajes de error del sistema redirigidos desde el comando. Si utiliza el campo runsOn, esta debe ser una ruta de Amazon S3 debido a la naturaleza transitoria del recurso que ejecuta su actividad. No obstante, si especifica el campo workerGroup, se permite una ruta de archivo local. Cadena
stdout La ruta de Amazon S3 que recibe la salida redirigida del comando. Si utiliza el campo runsOn, esta debe ser una ruta de Amazon S3 debido a la naturaleza transitoria del recurso que ejecuta su actividad. No obstante, si especifica el campo workerGroup, se permite una ruta de archivo local. Cadena

Campos de tiempo de ejecución Descripción Tipo de slot
@activeInstances La lista de los objetos de instancias activas programados actualmente. Objeto de referencia, por ejemplo, "activeInstances«: {" ref»:» myRunnableObject Id "}
@actualEndTime La hora a la que finalizó la ejecución de este objeto. DateTime
@actualStartTime La hora a la que comenzó la ejecución de este objeto. DateTime
cancellationReason El cancellationReason de este objeto se ha cancelado. Cadena
@cascadeFailedOn La descripción de la cadena de dependencias que provocó el error del objeto. Objeto de referencia, por ejemplo, "cascadeFailedOn«: {" ref»:» myRunnableObject Id "}
emrStepLog Los registros de EMR pasos de Amazon solo están disponibles en los intentos de EMR actividad de Amazon. Cadena
errorId El errorId si este objeto ha fallado. Cadena
errorMessage El errorMessage si este objeto ha fallado. Cadena
errorStackTrace El seguimiento de la pila de error si este objeto ha fallado. Cadena
@finishedTime La hora a la que el objeto finalizó su ejecución. DateTime
hadoopJobLog Los registros de trabajos de Hadoop están disponibles en los intentos de actividades EMR basadas en Amazon. Cadena
@healthStatus El estado de salud del objeto que refleja el éxito o el fracaso de la última instancia de objeto que alcanzó un estado terminado. Cadena
@healthStatusFromInstanceId El ID del último objeto de instancia que alcanzó un estado terminado. Cadena
@ Hora healthStatusUpdated La hora a la que el estado de salud se actualizó la última vez. DateTime
hostname El nombre de host del cliente que recogió el intento de tarea. Cadena
@lastDeactivatedTime La hora a la que este objeto se desactivó la última vez. DateTime
@ latestCompletedRun Hora La hora de la última ejecución para la que se completó la ejecución. DateTime
@latestRunTime La hora de la última ejecución para la que se programó la ejecución. DateTime
@nextRunTime La hora de la ejecución que se va a programar a continuación. DateTime
reportProgressTime La hora más reciente a la que la actividad remota notificó algún progreso. DateTime
@scheduledEndTime La hora de finalización programada para el objeto. DateTime
@scheduledStartTime La hora de comienzo programada para el objeto. DateTime
@status El estado del objeto. Cadena
@version La AWS Data Pipeline versión utilizada para crear el objeto. Cadena
@waitingOn La descripción de la lista de dependencias para la que este objeto está a la espera. Objeto de referencia, por ejemplo, "waitingOn«: {" ref»:» myRunnableObject Id "}

Campos del sistema Descripción Tipo de slot
@error El error al describir el objeto mal estructurado. Cadena
@pipelineId El ID de la canalización a la que pertenece este objeto. Cadena
@sphere El lugar de un objeto en el ciclo de vida. Los objetos de componente dan lugar a objetos de instancia, que ejecutan objetos de intento. Cadena

Véase también