管道定义文件语法 - AWS Data Pipeline

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管道定义文件语法

此部分中的说明针对使用 AWS Data Pipeline 命令行界面 (CLI) 手动处理管道定义文件。这是使用 AWS Data Pipeline 控制台交互式设计管道的替代方法。

您可以使用任意支持以 UTF-8 文件格式保存文件的文本编辑器手动创建管道定义文件,然后使用 AWS Data Pipeline 命令行界面提交文件。

AWS Data Pipeline 还支持管道定义中的各种复杂的表达式和函数。有关更多信息,请参阅管道表达式和函数

文件结构

管道创建中的第一步是在管道定义文件中编写管道定义对象。以下示例介绍了管道定义文件的一般结构。此文件定义了两个对象,使用“{”和“}”隔离对象,并以逗号分隔。

在以下示例中,第一个对象定义了两个名称/值对,称为字段。第二个对象定义了三个字段。

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

创建管道定义文件时,您必须选择需要的管道对象的类型,将其添加到管道定义文件,然后添加适当的字段。有关管道对象的更多信息,请参阅管道对象引用

例如,您可以为输入数据节点创建一个管道定义对象,为输出数据节点另外创建一个。然后,为活动创建另一个管道定义对象,例如使用 Amazon EMR 处理输入数据。

管道字段

在您知道哪些对象类型要包括在管道定义文件中之后,将字段添加到各个管道对象的定义。字段名称括在引号内,并使用空格、冒号、空格与字段值分隔,如下例中所示。

"name" : "value"

字段值可以是文本字符串、对另一对象的引用、函数调用、表达式或以上任意类型的有序列表。有关可用于字段值的数据类型的更多信息,请参阅简单数据类型。有关您可用于对字段求值的函数的更多信息,请参阅 表达式计算

字段限制为 2048 个字符。对象大小可以为 20KB,这意味着您不能将过多大字段添加到一个对象。

每个管道对象必须包含以下字段:idtype,如以下示例所示。根据对象类型,可能还会需要其他字段。为 id 选择一个对您而言有意义并且在管道定义中唯一的值。type 的值指定对象的类型。指定一个支持的管道定义对象类型,该类型在主题管道对象引用中列出。

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

有关各个对象的必需和可选字段的更多信息,请参阅对象的文档。

要将来自一个对象的字段包括到其他对象中,请使用 parent 字段并引用对象。例如,对象“B”包含其字段“B1”和“B2”,以及来自对象“A”、“A1”和“A2”的字段。

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

您可以使用 ID“Default”定义对象中的常见字段。这些字段自动包括在管道定义文件中的每个对象中,并不明确设置其 parent 字段来引用不同对象。

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

用户定义字段

您可以在管道组件上创建用户定义字段或自定义字段,并通过表达式来引用它们。下面的示例显示了一个名为 myCustomField 的自定义字段,并将 my_customFieldReference 添加到 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"} },

用户定义字段必须将全小写的单词“my”作为名称前缀,后跟大写字母或下划线。此外,用户定义的字段可以为字符串值,例如前面的 myCustomField 示例,或者引用另一个管道组件,例如前面的 my_customFieldReference 示例。

注意

在用户定义字段上,AWS Data Pipeline 仅检查对其他管道组件的有效引用,而不检查您添加的任意自定义字段字符串值。