ShellCommandActivity - AWS Data Pipeline

AWS Data Pipeline n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Data Pipeline peuvent continuer à utiliser le service normalement. En savoir plus

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

ShellCommandActivity

Exécute une commande ou un script. Vous pouvez utiliser ShellCommandActivity pour exécuter les tâches planifiées de type séries chronologiques ou de type cron.

Lorsque le stage champ est défini sur true et utilisé avec unS3DataNode, ShellCommandActivity prend en charge le concept de données intermédiaires, ce qui signifie que vous pouvez déplacer des données d'Amazon S3 vers un emplacement d'étape, tel qu'Amazon EC2 ou votre environnement local, travailler sur les données à l'aide de scripts et leShellCommandActivity, puis les redéplacer vers Amazon S3.

Dans ce cas, lorsque votre commande shell est connectée à un S3DataNode en entrée, vos scripts shell opèrent directement sur les données avec ${INPUT1_STAGING_DIR}, ${INPUT2_STAGING_DIR} et d'autres champs, en faisant référence aux champs ShellCommandActivity en entrée.

De même, le résultat de la commande shell peut être transféré dans un répertoire de sortie pour être automatiquement transféré vers Amazon S3, référencé par ${OUTPUT1_STAGING_DIR}${OUTPUT2_STAGING_DIR}, etc.

Ces expressions peuvent être transmises comme arguments de ligne de commande à la commande shell pour que vous les utilisiez dans la logique de transformation des données.

ShellCommandActivity renvoie les chaînes et codes d'erreur Linux. Si une activité ShellCommandActivity se traduit par une erreur, la valeur error retournée est différente de zéro.

Exemple

Voici un exemple de ce type d'objet.

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

Syntaxe

Champs d'invocation de l'objet Description Type d'option
schedule

Cet objet est appelé dans le cadre de l'exécution d'un intervalle schedule.

Pour définir l'ordre d'exécution des dépendances de cet objet, spécifiez une référence schedule à un autre objet.

Pour satisfaire cette exigence, définissez explicitement un schedule sur l'objet, par exemple, en spécifiant "schedule": {"ref": "DefaultSchedule"}.

Dans la plupart des cas, il est préférable de placer la référence schedule sur l'objet de pipeline par défaut de manière à ce que tous les objets héritent cette planification. Si le pipeline se compose d'une arborescence de planifications (planifications au sein de la planification maître), créez un objet parent ayant une référence de planification.

Pour répartir la charge, AWS Data Pipeline créez des objets physiques légèrement plus tôt que prévu, mais exécutez-les dans les délais prévus.

Pour plus d'informations sur les exemples de configurations de planification facultatives, consultez https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Objet de référence, par exemple « schedule » : {"ref » : » myScheduleId «}

Groupe obligatoire (l'un des groupes suivants est obligatoire) Description Type d'option
command Commande à exécuter. Utilisez la valeur $ pour référencer les paramètres de positionnement et scriptArgument pour spécifier les paramètres de la commande. Cette valeur et les paramètres associés doivent fonctionner dans l'environnement à partir duquel vous lancez l'exécuteur de tâches. Chaîne
scriptUri Un URI chemin Amazon S3 pour un fichier à télécharger et à exécuter en tant que commande shell. Spécifiez un seul scriptUri, ou champ command. Étant donné que le champ scriptUri ne peut pas utiliser de paramètres, utilisez plutôt command. Chaîne

Groupe obligatoire (l'un des groupes suivants est obligatoire) Description Type d'option
runsOn La ressource de calcul permettant d'exécuter l'activité ou la commande, par exemple, une EC2 instance Amazon ou un EMR cluster Amazon. Objet de référence, par exemple "runsOn« : {" ref » : » myResourceId «}
workerGroup Utilisé pour les tâches d'acheminement. Si vous fournissez une valeur runsOn et que workerGroup existe, workerGroup est ignoré. Chaîne

Champs facultatifs Description Type d'option
attemptStatus État de l'activité à distance le plus récemment rapporté. Chaîne
attemptTimeout Délai d'achèvement de la tâche à distance. Si une valeur est définie, une activité à distance qui n'est pas exécutée dans la période de départ définie peut être retentée. Période
dependsOn Spécifie une dépendance sur un autre objet exécutable. Objet de référence, par exemple "dependsOn« : {" ref » : » myActivityId «}
failureAndRerunMode Décrit le comportement du nœud de consommateurs lorsque les dépendances échouent ou sont à nouveau exécutées. Énumération
input Emplacement des données d'entrée. Objet de référence, par exemple « input » : {"ref » : » myDataNode Id "}
lateAfterTimeout Temps écoulé après le début du pipeline pendant lequel l'objet doit être terminé. Il est déclenché uniquement lorsque le type de planification n'est pas défini surondemand. Période
maxActiveInstances Nombre maximal d'instances actives simultanées d'un composant. Les réexécutions ne sont pas comptabilisées dans le nombre d'instances actives. Entier
maximumRetries Nombre maximal de nouvelles tentatives en cas d'échec. Entier
onFail Action à exécuter en cas d'échec de l'objet actuel. Objet de référence, par exemple "onFail« : {" ref » : » myActionId «}
onLateAction Actions à déclencher si un objet n'a pas encore été planifié ou n'est pas terminé. Objet de référence, par exemple "onLateAction« : {" ref » : » myActionId «}
onSuccess Action à exécuter en cas de réussite de l'objet actuel. Objet de référence, par exemple "onSuccess« : {" ref » : » myActionId «}
output Emplacement des données de sortie. Objet de référence, par exemple « output » : {"ref » : » myDataNode Id "}
parent Parent de l'objet actuel à partir duquel les emplacements sont hérités. Objet de référence, par exemple « parent » : {"ref » : » myBaseObject Id "}
pipelineLogUri L'Amazon S3URI, par exemple 's3://BucketName/Key/' pour le téléchargement des journaux pour le pipeline. Chaîne
precondition Définit une condition préalable facultative. Un nœud de données n'est marqué « READY » que lorsque toutes les conditions préalables sont remplies. Objet de référence, par exemple « précondition » : {"ref » : » myPreconditionId «}
reportProgressTimeout Délai pour les appels successifs adressés à reportProgress par les activités à distance. Si une valeur est définie, les activités à distance qui ne font pas état d'avancement pour la période spécifiée doivent être considérées comme bloquées et font l'objet d'une nouvelle tentative. Période
retryDelay Délai entre deux nouvelles tentatives. Période
scheduleType

Permet de spécifier si les objets de votre définition de pipeline doivent être planifiés au début ou à la fin de l'intervalle.

Les valeurs sont : cron, ondemand et timeseries.

Si la planification est définie sur timeseries, les instances sont programmées à la fin de chaque intervalle.

Si la planification est définie sur Cron, les instances sont programmées au début de chaque intervalle.

Si la planification est définie sur ondemand, vous pouvez exécuter un pipeline une fois, par activation. Cela signifie que vous n'avez pas à cloner ou à recréer le pipeline pour l'exécuter à nouveau. Si vous utilisez une planification ondemand, spécifiez-la dans l'objet par défaut comme seul scheduleType pour les objets du pipeline. Pour utiliser des pipelines ondemand, vous devez appeler l'opération ActivatePipeline pour chaque exécution suivante.

Énumération
scriptArgument Un tableau de chaînes JSON au format -formaté à transmettre à la commande spécifiée par la commande. Par exemple, si la valeur du champ command est echo $1 $2, spécifiez scriptArgument en tant que "param1", "param2". En cas d'arguments et de paramètres multiples, transmettez le scriptArgument comme suit : "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2". Le scriptArgument ne peut être utilisé qu'avec command ; son utilisation avec scriptUri provoque une erreur. Chaîne
stage Détermine si la gestion intermédiaire est activée et permet à vos commandes shell d'avoir accès aux variables de données mises en lots, telles que ${INPUT1_STAGING_DIR} et ${OUTPUT1_STAGING_DIR}. Booléen
stderr Chemin qui reçoit les messages d'erreur système redirigés à partir de la commande. Si vous utilisez ce runsOn champ, il doit s'agir d'un chemin Amazon S3 en raison de la nature transitoire de la ressource exécutant votre activité. Toutefois, si vous spécifiez le champ workerGroup, un chemin de fichier local est autorisé. Chaîne
stdout Le chemin Amazon S3 qui reçoit la sortie redirigée de la commande. Si vous utilisez ce runsOn champ, il doit s'agir d'un chemin Amazon S3 en raison de la nature transitoire de la ressource exécutant votre activité. Toutefois, si vous spécifiez le champ workerGroup, un chemin de fichier local est autorisé. Chaîne

Champs liés à l'exécution Description Type d'option
@activeInstances Liste des objets d'instances actives actuellement planifiés. Objet de référence, par exemple "activeInstances« : {" ref » : » myRunnableObject Id "}
@actualEndTime Heure à laquelle l'exécution de l'objet s'est terminée. DateTime
@actualStartTime Heure à laquelle l'exécution de l'objet a démarré. DateTime
cancellationReason cancellationReason si l'objet a été annulé. Chaîne
@cascadeFailedOn Description de la chaîne de dépendances à l'origine de l'échec de l'objet. Objet de référence, par exemple "cascadeFailedOn« : {" ref » : » myRunnableObject Id "}
emrStepLog Les journaux d'EMRétapes Amazon ne sont disponibles que pour les tentatives EMR d'activité Amazon. Chaîne
errorId errorId si l'objet a échoué. Chaîne
errorMessage errorMessage si l'objet a échoué. Chaîne
errorStackTrace Suivi de la pile d'erreurs si l'objet a échoué. Chaîne
@finishedTime Heure à laquelle l'objet a terminé son exécution. DateTime
hadoopJobLog Des journaux de tâches Hadoop sont disponibles sur les tentatives d'activités EMR basées sur Amazon. Chaîne
@healthStatus État de santé de l'objet qui reflète la réussite ou l'échec de la dernière instance qui a atteint un état résilié. Chaîne
@healthStatusFromInstanceId ID du dernier objet d'instance qui atteint un état résilié. Chaîne
@ healthStatusUpdated Heure Heure à laquelle l'état de santé a été mis à jour pour la dernière fois. DateTime
hostname Nom d'hôte du client qui a sélectionné la tentative de tâche. Chaîne
@lastDeactivatedTime Heure à laquelle l'objet a été désactivé pour la dernière fois. DateTime
@ latestCompletedRun Heure Heure de la dernière exécution pour laquelle l'exécution s'est terminée. DateTime
@latestRunTime Heure de la dernière exécution pour laquelle l'exécution a été planifiée. DateTime
@nextRunTime Prochaine heure d'exécution planifiée. DateTime
reportProgressTime Heure la plus récente pour laquelle l'activité distante a signalé une progression. DateTime
@scheduledEndTime Heure de fin planifiée pour l'objet. DateTime
@scheduledStartTime Heure de début planifiée pour l'objet. DateTime
@État Statut de l'objet. Chaîne
@Version AWS Data Pipeline Version utilisée pour créer l'objet. Chaîne
@waitingOn Description de la liste des dépendances sur laquelle l'objet est en attente. Objet de référence, par exemple "waitingOn« : {" ref » : » myRunnableObject Id "}

Champs système Description Type d'option
@error Erreur décrivant l'objet mal formé. Chaîne
@pipelineId ID du pipeline auquel l'objet appartient. Chaîne
@sphere Emplacement d'un objet dans le cycle de vie. Les objets de composant entraînent des objets d'instance, qui exécutent des objets « tentatives ». Chaîne

consultez aussi