Sintaxis de los archivos de definición de la canalización - AWS Data Pipeline

AWS Data Pipeline ya no está disponible para nuevos clientes. Los 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.

Sintaxis de los archivos de definición de la canalización

Las instrucciones de esta sección son para trabajar manualmente con archivos de definición de canalización mediante la interfaz de línea de comandos (CLI) de AWS Data Pipeline. Se trata de una alternativa al diseño interactivo de una canalización mediante la consola de AWS Data Pipeline.

Puede crear manualmente archivos de definición de canalización con cualquier editor de texto que permita guardar archivos con el formato de archivo UTF-8 y enviarlos a través de la interfaz de línea de comandos de AWS Data Pipeline.

AWS Data Pipeline también es compatible con diversas funciones y expresiones complejas de las definiciones de canalización. Para obtener más información, consulte Expresiones y funciones de canalizaciones.

Estructura de archivos

El primer paso en la creación de canalizaciones es componer objetos de definición de canalización en un archivo de definición de canalización. El siguiente ejemplo ilustra la estructura general de un archivo de definición de canalización. Este archivo define dos objetos, delimitados por "{" y "}" y separados por una coma.

En el siguiente ejemplo, el primer objeto define dos pares de nombre-valor, conocidos como campos. El segundo objeto define tres campos.

{ "objects" : [ { "name1" : "value1", "name2" : "value2" }, { "name1" : "value3", "name3" : "value4", "name4" : "value5" } ] }

Al crear un archivo de definición de canalización, debe seleccionar los tipos de objetos de canalización que necesite, agregarlos al archivo de definición de canalización y, a continuación, agregar los campos correspondientes. Para obtener más información acerca de los objetos de canalización, consulte Referencia de objeto de canalización.

Por ejemplo, podría crear un objeto de definición de canalización para un nodo de datos de entrada y otro para el nodo de datos de salida. A continuación, cree otro objeto de definición de canalización para una actividad, como procesar los datos de entrada con Amazon EMR.

Campos de canalización

Cuando sepa qué tipos de objetos incluir en el archivo de definición de canalización, agregue campos a la definición de cada objeto de canalización. Los nombres de campo se encierran entre comillas y están separados de los valores de campo por un espacio, un signo de dos puntos y un espacio, como se muestra en el siguiente ejemplo.

"name" : "value"

El valor del campo puede ser una cadena de texto, una referencia a otro objeto, una llamada de función, una expresión o una lista ordenada de cualquiera de los tipos anteriores. Para obtener más información sobre los tipos de datos que se pueden utilizar para los valores de campo, consulte Tipos de datos simples. Para obtener más información acerca de las funciones que puede utilizar para evaluar los valores de campo, consulte Evaluación de expresiones.

Los campos están limitados a 2048 caracteres. Los objetos pueden tener un tamaño de 20 KB, lo que significa que no se puede agregar muchos campos grandes a un objeto.

Cada objeto de canalización debe contener los siguientes campos: id y type, tal y como se muestra en el siguiente ejemplo. También es posible que se necesiten otros campos, en función del tipo de objeto. Seleccione un valor para id que tenga sentido para usted y que sea único dentro de la definición de la canalización. El valor de type especifica el tipo de objeto. Especifique uno de los tipos de objeto de definición de canalización compatibles, que aparecen en el tema Referencia de objeto de canalización.

{ "id": "MyCopyToS3", "type": "CopyActivity" }

Para obtener más información acerca de los campos obligatorios y opcionales para cada objeto, consulte la documentación del objeto.

Para incluir campos de un objeto en otro objeto, utilice el campo parent con una referencia al objeto. Por ejemplo, el objeto "B" incluye sus campos, "B1" y "B2", además de los campos de objeto "A", "A1" y "A2".

{ "id" : "A", "A1" : "value", "A2" : "value" }, { "id" : "B", "parent" : {"ref" : "A"}, "B1" : "value", "B2" : "value" }

Puede definir campos comunes en un objeto con el ID "Default". Estos campos se incluyen automáticamente en todos los objetos del archivo de definición de canalización que no establezcan de forma explícita su campo parent para hacer referencia a otro objeto.

{ "id" : "Default", "onFail" : {"ref" : "FailureNotification"}, "maximumRetries" : "3", "workerGroup" : "myWorkerGroup" }

Campos definidos por el usuario

Puede crear campos personalizados o definidos por el usuario en los componentes de la canalización y hacer referencia a los mismos con expresiones. En el siguiente ejemplo se muestra un campo personalizado denominado myCustomField y my_customFieldReference agregado a un objeto S3DataNode:

{ "id": "S3DataInput", "type": "S3DataNode", "schedule": {"ref": "TheSchedule"}, "filePath": "s3://bucket_name", "myCustomField": "This is a custom value in a custom field.", "my_customFieldReference": {"ref":"AnotherPipelineComponent"} },

Un campo definido por el usuario debe tener un nombre precedido por la palabra "my" en minúsculas, seguida de una letra mayúscula o un guion bajo. Además, un campo definido por el usuario puede ser un valor de cadena como en el ejemplo myCustomField anterior o una referencia a otro componente como en el ejemplo my_customFieldReference anterior.

nota

En los campos definidos por el usuario, AWS Data Pipeline solo comprueba si hay referencias válidas a otros componentes de la canalización, pero no los valores de cadena de los campos personalizados que usted agregue.