

AWS Data Pipeline は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS Data Pipeline 引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# パイプライン定義ファイルの構文
<a name="dp-writing-pipeline-definition"></a>

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

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

AWS Data Pipeline は、パイプライン定義内でさまざまな複雑な式と関数もサポートしています。詳細については、「[パイプラインの式と関数](dp-expressions-functions.md)」を参照してください。

## ファイル構造
<a name="dp-file-structure"></a>

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

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

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

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

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

## パイプラインのフィールド
<a name="dp-add-fields"></a>

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

```
"name" : "value"
```

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

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

各パイプラインオブジェクトには、次の例に示すように、`id` および `type` フィールドを含める必要があります。オブジェクトのタイプによっては、それ以外のフィールドが必須になる場合があります。`id` の値には、パイプライン定義内でユニークな、分かりやすい値を選択します。`type` の値は、オブジェクトのタイプを指定します。トピック「[パイプラインオブジェクトリファレンス](dp-pipeline-objects.md)」にリストされている、サポートされるパイプライン定義オブジェクトのタイプのうち 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"
}
```

## ユーザー定義フィールド
<a name="dp-userdefined-fields"></a>

パイプラインコンポーネントでは、ユーザー定義フィールドまたはカスタムフィールドを作成し、式を使用してそれらを参照することができます。次の例では、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 のみをチェックします。