ShellCommandActivity - AWS Data Pipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ShellCommandActivity

Consente di eseguire un comando o uno script. È possibile usare ShellCommandActivity per eseguire operazioni pianificate di tipo Cron o con serie temporali.

Quando il stage campo è impostato su true e utilizzato con unS3DataNode, ShellCommandActivity supporta il concetto di staging dei dati, il che significa che puoi spostare i dati da Amazon S3 a una posizione di stage, ad esempio Amazon EC2 o il tuo ambiente locale, eseguire operazioni sui dati utilizzando script e ShellCommandActivity poi spostarli nuovamente su Amazon S3.

In questo caso, quando il comando shell è connesso a un input S3DataNode, gli script shell operano direttamente sui dati utilizzando ${INPUT1_STAGING_DIR}, ${INPUT2_STAGING_DIR} e altri campi, con riferimento ai campi di input ShellCommandActivity.

Allo stesso modo, l'output del comando shell può essere archiviato in una directory di output per essere inviato automaticamente ad Amazon S3, a cui si fa riferimento da ${OUTPUT1_STAGING_DIR} e così via. ${OUTPUT2_STAGING_DIR}

Queste espressioni possono passare come argomenti della riga di comando al comando shell per l'utilizzo in logiche di trasformazione dei dati.

ShellCommandActivity restituisce codici e stringhe di errore in stile Linux. Se una ShellCommandActivity presenta un errore, l'error restituito è un valore diverso da zero.

Esempio

Di seguito è illustrato un esempio di questo tipo di oggetto.

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

Sintassi

Campi Object Invocation Descrizione Tipo di slot
schedule

Questo oggetto viene richiamato entro l'esecuzione di un intervallo di schedule.

Per impostare l'ordine di esecuzione delle dipendenze per questo oggetto, specificare un riferimento schedulea un altro oggetto.

Per soddisfare questo requisito, impostare esplicitamente un schedule sull'oggetto, ad esempio, specificando "schedule": {"ref": "DefaultSchedule"}.

Nella maggior parte dei casi, è preferibile inserire il riferimento schedule all'oggetto pipeline di default, in modo che tutti gli oggetti ereditano tale pianificazione. Se la pipeline consiste di una struttura di pianificazioni (nidificate all'interno della pianificazione principale), è possibile creare un oggetto padre che dispone di un riferimento alla pianificazione.

Per distribuire il carico, AWS Data Pipeline crea oggetti fisici leggermente prima del previsto, ma li esegue nei tempi previsti.

Per ulteriori informazioni sulle configurazioni di pianificazione opzionali di esempio, consulta https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

Oggetto di riferimento, ad esempio «schedule»: {"ref»:» myScheduleId «}

Gruppo richiesto (uno dei seguenti è obbligatorio) Descrizione Tipo di slot
command Il comando da eseguire. Utilizzare $ per fare riferimento ai parametri posizionali e scriptArgument per specificare i parametri del comando. Questo valore ed eventuali parametri associati devono funzionare nell'ambiente da cui si sta eseguendo il Task Runner. Stringa
scriptUri Un percorso URI di Amazon S3 per un file da scaricare ed eseguire come comando shell. Specifica solo uno scriptUri o solo un campo command. Se scriptUri non è in grado di utilizzare i parametri, utilizzare command. Stringa

Gruppo richiesto (uno dei seguenti è obbligatorio) Descrizione Tipo di slot
runsOn La risorsa di calcolo per eseguire l'attività o il comando, ad esempio un'istanza Amazon EC2 o un cluster Amazon EMR. Oggetto di riferimento, ad esempio «runSon»: {"ref»:» myResourceId «}
workerGroup Utilizzato per le attività di routing. Se si fornisce un valore runsOn ed esiste workerGroup, workerGroup verrà ignorato. Stringa

Campi opzionali Descrizione Tipo di slot
attemptStatus Lo stato segnalato più di recente dall'attività remota. Stringa
attemptTimeout Il timeout per il completamento del lavoro in remoto. Se questo campo è impostato, un'attività remota che non viene completata entro il tempo impostato di avvio viene tentata di nuovo. Periodo
dependsOn Specifica una dipendenza su un altro oggetto eseguibile. Oggetto di riferimento, ad esempio «dependsOn»: {"ref»:» «myActivityId}
failureAndRerunModo Descrive il comportamento del nodo consumer quando le dipendenze presentano un errore o vengono di nuovo eseguite. Enumerazione
input Posizione dei dati di input. Oggetto di riferimento, ad esempio «input»: {"ref»:» myDataNode Id "}
lateAfterTimeout Il tempo trascorso dall'inizio della pipeline entro il quale l'oggetto deve essere completato. Viene attivato solo quando il tipo di pianificazione non è impostato su. ondemand Periodo
maxActiveInstances Il numero massimo di istanze attive simultanee di un componente. Le riesecuzioni non contano ai fini del numero di istanze attive. Numero intero
maximumRetries Numero massimo di tentativi in caso di errore. Numero intero
onFail Un'azione da eseguire quando l'oggetto corrente ha esito negativo. Oggetto di riferimento, ad esempio «onFail»: {"ref»:» myActionId «}
onLateAction Azioni che devono essere attivate se un oggetto non è stato ancora pianificato o non è completo. Oggetto di riferimento, ad esempio "onLateAction«: {" ref»:» myActionId «}
onSuccess Un'operazione da eseguire quando l'oggetto corrente ha esito positivo. Oggetto di riferimento, ad esempio «onSuccess»: {"ref»:» myActionId «}
output Posizione dei dati di output. Oggetto di riferimento, ad esempio «output»: {"ref»:» myDataNode Id "}
parent Padre dell'oggetto corrente da cui saranno ereditati gli slot. Oggetto di riferimento, ad esempio «parent»: {"ref»:» myBaseObject Id "}
pipelineLogUri L'URI di Amazon S3, ad esempio 's3://BucketName/Key/' per il caricamento dei log per la pipeline. Stringa
precondizione Definisce eventualmente una precondizione. Un nodo dati non è contrassegnato come "READY" finché tutte le precondizioni non siano state soddisfatte. Oggetto di riferimento, ad esempio «precondition»: {"ref»:» «} myPreconditionId
reportProgressTimeout Il timeout per chiamate successive a reportProgress da parte di attività in remoto. Se impostato, le attività in remoto che non presentano avanzamenti nel periodo specificato potrebbero essere considerate bloccate e sono quindi oggetto di un altro tentativo. Periodo
retryDelay La durata del timeout tra due tentativi. Periodo
scheduleType

Consente di specificare se gli oggetti nella definizione di pipeline devono essere programmati all'inizio o alla fine dell'intervallo.

I valori possibili sono: cron, ondemand e timeseries.

Se le istanze sono impostate su timeseries significa che sono programmate al termine di ogni intervallo.

Se le istanze sono impostate su Cron significa che sono programmate all'inizio di ogni intervallo.

Se sono impostate su ondemand, è possibile eseguire una pipeline una sola volta, per attivazione. Questo significa che non è necessario clonare o ricreare la pipeline per eseguirla di nuovo. Se utilizzi una pianificazione ondemand, devi specificarlo nell'oggetto predefinito come l'unico scheduleType per gli oggetti della pipeline. Per utilizzare le pipeline ondemand, chiama l'operazione ActivatePipeline per ogni esecuzione successiva.

Enumerazione
scriptArgument Un array di stringhe in formato JSON da passare al comando specificato dal comando. Ad esempio, se il comando è echo $1 $2, specificare scriptArgument come "param1", "param2". Per più argomenti e parametri, passare scriptArgument come segue: "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2". scriptArgument può essere utilizzato solo con command; se si utilizza con scriptUri viene generato un errore. Stringa
fase Stabilisce se è abilitata la gestione temporanea e consente ai comandi shell di accedere alle variabili dei dati gestiti temporaneamente, ad esempio ${INPUT1_STAGING_DIR} e ${OUTPUT1_STAGING_DIR}. Booleano
stderr Il percorso che riceve messaggi di errore del sistema reindirizzati dal comando. Se utilizzi il runsOn campo, deve trattarsi di un percorso Amazon S3 a causa della natura transitoria della risorsa che esegue la tua attività. Tuttavia, se specifichi il campo workerGroup, viene autorizzato un percorso file locale. Stringa
stdout Il percorso Amazon S3 che riceve l'output reindirizzato dal comando. Se utilizzi il runsOn campo, deve trattarsi di un percorso Amazon S3 a causa della natura transitoria della risorsa che esegue la tua attività. Tuttavia, se specifichi il campo workerGroup, viene autorizzato un percorso file locale. Stringa

Campi Runtime Descrizione Tipo di slot
@activeInstances L'elenco di oggetti di istanze attive attualmente programmate. Oggetto di riferimento, ad esempio «activeInstances»: {"ref»:» Id "} myRunnableObject
@actualEndTime L'ora in cui è terminata l'esecuzione di questo oggetto. DateTime
@actualStartTime L'ora in cui è stata avviata l'esecuzione di questo oggetto. DateTime
cancellationReason cancellationReason se questo oggetto è stato annullato. Stringa
@cascadeFailedOn La descrizione della catena di dipendenza che ha generato l'errore dell'oggetto. Oggetto di riferimento, ad esempio "cascadeFailedOn«: {" ref»:» myRunnableObject Id "}
emrStepLog I log dei passaggi di Amazon EMR sono disponibili solo per i tentativi di attività di Amazon EMR. Stringa
errorId errorId se l'oggetto non riuscito. Stringa
errorMessage errorMessage se l'oggetto non riuscito. Stringa
errorStackTrace Traccia dello stack di errore se l'oggetto non è riuscito. Stringa
@finishedTime L'ora in cui è terminata l'esecuzione dell'oggetto. DateTime
hadoopJobLog Registri di lavoro Hadoop disponibili sui tentativi di attività basate su Amazon EMR. Stringa
@healthStatus Lo stato di integrità dell'oggetto che riflette l'esito positivo o negativo dell'ultima istanza dell'oggetto che ha raggiunto lo stato di un'istanza terminata. Stringa
@healthStatusFromInstanceId L'Id dell'ultimo oggetto dell'istanza che ha raggiunto lo stato terminato. Stringa
@ Ora healthStatusUpdated L'ora in cui lo stato di integrità è stato aggiornato l'ultima volta. DateTime
hostname Il nome host del client che si è aggiudicato il tentativo dell'attività. Stringa
@lastDeactivatedTime L'ora in cui l'oggetto è stato disattivato. DateTime
@ latestCompletedRun Ora L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata completata. DateTime
@latestRunTime L'orario dell'esecuzione più recente durante il quale l'esecuzione è stata pianificata. DateTime
@nextRunTime L'orario dell'esecuzione da programmare come successiva. DateTime
reportProgressTime Il periodo di tempo più recente in cui l'attività remota ha segnalato un progresso. DateTime
@scheduledEndTime L'orario di termine della pianificazione per l'oggetto. DateTime
@scheduledStartTime L'orario di inizio della pianificazione per l'oggetto. DateTime
@status Lo stato dell'oggetto. Stringa
@version La AWS Data Pipeline versione utilizzata per creare l'oggetto. Stringa
@waitingOn La descrizione dell'elenco di dipendenze per cui questo oggetto è in attesa. Oggetto di riferimento, ad esempio «waitingOn»: {"ref»:» myRunnableObject Id "}

Campi di sistema Descrizione Tipo di slot
@error Errore che descrive l'oggetto con il formato errato. Stringa
@pipelineId L'id della pipeline a cui appartiene questo oggetto. Stringa
@sphere La posizione di un oggetto nel ciclo di vita. I Component Objects generano Instance Objects che eseguono Attempt Objects. Stringa

Vedi anche