パイプライン定義ファイルの構文 - AWS Data Pipeline

パイプライン定義ファイルの構文

このセクションの手順は、AWS Data Pipeline コマンドラインインターフェイス(CLI)を使用してパイプライン定義ファイルを手動で操作するためのものです。これは、AWS Data Pipeline コンソールを使用してパイプラインをインタラクティブに設計する方法に代わる手段です。

パイプライン定義ファイルは、UTF-8 ファイル形式でのファイルの保存をサポートする任意のテキストエディタを使用して手動で作成し、AWS Data Pipeline コマンドラインインターフェイスを使用してファイルを送信することができます。

また、AWS Data Pipeline はパイプライン定義内で様々な複合式と関数もサポートします。詳細については、「パイプラインの式と関数」を参照してください。

ファイル構造

パイプラインの作成の最初のステップは、パイプライン定義ファイルでパイプライン定義オブジェクトを構成することです。次の例では、パイプライン定義ファイルの一般的な構造について説明します。このファイルでは、2 個のオブジェクトを '{' と '}' で囲み、カンマで区切って定義しています。

次の例では、最初のオブジェクトで名前と値のペアを 2 組定義しています。このペアをフィールドと呼びます。2 番目のオブジェクトでは、3 個のフィールドを定義しています。

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

パイプライン定義ファイルを作成するときは、必要なパイプラインオブジェクトのタイプを選択してパイプライン定義ファイルに追加してから、適切なフィールドを追加する必要があります。パイプラインオブジェクトの詳細については、「パイプラインオブジェクトリファレンス」を参照してください。

たとえば、入力データノード用にパイプライン定義オブジェクトを 1 個作成し、出力データノード用にパイプライン定義オブジェクトをもう 1 個作成することができます。その後で、Amazon EMR を使用して入力データを処理するなどのアクティビティ用に、別のパイプライン定義オブジェクトを作成します。

パイプラインのフィールド

パイプライン定義ファイルに含めるオブジェクトタイプを決めたら、各パイプラインオブジェクトの定義にフィールドを追加します。次の例のように、フィールド名を引用符で囲み、スペース、コロン、スペースでフィールド値と区切ります。

"name" : "value"

フィールド値は、文字列、別のオブジェクトの参照、関数呼び出し、式、または前述のいずれかのタイプの整列済みリストとして指定できます。フィールド値に使用できるデータ型についての詳細は、「単純データ型」を参照してください。フィールド値の検証に使用できる関数の詳細については、「式の評価」を参照してください。

フィールドは、2048 文字に制限されています。オブジェクトのサイズは 20 KB までであるため、1 個のオブジェクトにサイズの大きいフィールドを多数追加することはできません。

各パイプラインオブジェクトには、次の例に示すように、id および type フィールドを含める必要があります。オブジェクトのタイプによっては、それ以外のフィールドが必須になる場合があります。id の値には、パイプライン定義内でユニークな、分かりやすい値を選択します。type の値は、オブジェクトのタイプを指定します。トピック「パイプラインオブジェクトリファレンス」にリストされている、サポートされるパイプライン定義オブジェクトのタイプのうち 1 つを指定します。

{ "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" }

ユーザー定義フィールド

パイプラインコンポーネントでは、ユーザー定義フィールドまたはカスタムフィールドを作成し、式を使用してそれらを参照することができます。次の例では、S3DataNode オブジェクトに追加された myCustomField および my_customFieldReference というカスタムフィールドを示しています。

{ "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 は、別のパイプラインコンポーネントへの有効な参照のみをチェックし、ユーザーが追加するカスタムフィールドの文字列値は一切チェックしません。