

# AWS Glue ビジュアルジョブ API
<a name="visual-job-api-chapter"></a>

 AWS Glue は ビジュアルステップワークフローを表す JSON オブジェクトから AWS Glue APIを使用して、お客様がデータ統合ジョブを作成できるようにする API を提供します。　 お客様は AWS Glue Studio のビジュアルエディターを使って、これらのジョブを処理することができます。

 Visual Job API データ型の詳細については、「[Visual Job API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-visual-job-api.html)」(ビジュアル Job API) を参照してください。

**Topics**
+ [API 設計と CRUD API](#visual-job-api-design)
+ [開始方法](#getting-started-visual-job-api)
+ [ビジュアルジョブの制限](#visual-job-limitations)

## API 設計と CRUD API
<a name="visual-job-api-design"></a>

 CreateJobAPI と UpdateJob の [API](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html) は、追加のオプションパラメータとして codeGenConfigurationNodes をサポートするようになりました。このフィールドに空でない JSON 構造を指定すると、作成されたジョブの AWS Glue Studio に対して DAG が登録され、関連するコードが生成されます。ジョブ作成時のこのフィールドの NULL 値または空の文字列は無視されます。

 codeGenConfigurationNodes フィールドの更新は、CreateJob と同様の方法で UpdateJob AWS Glue API で行われます。DAG が必要に応じて変更された UpdateJob でフィールド全体を指定する必要があります。指定された NULL 値は無視され、DAG への更新は実行されません。空の構造体または文字列を指定すると、CodeGenConfigurationNodes が空に設定され、以前の DAG が削除されます。GetJob API は DAG が存在する場合、DAG を返します。DeleteJob API では、関連する DAG も削除されます。

## 開始方法
<a name="getting-started-visual-job-api"></a>

 ジョブを作成するには、[CreateJob アクション](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob)を使用します。`CreateJob` リクエストの入力には、JSON で DAG オブジェクトを指定できる追加のフィールド 「CodeGenConfigurationNodes」があります。

 留意すべきこと: 
+  「CodeGenConfigurationNodes」フィールドは、ノードへの nodeID のマップです。
+  各ノードは、ノードの種類を識別するキーで始まります。
+  ノードには 1 つのタイプしか指定できないため、キーは 1 つしか指定できません。
+  入力フィールドには、現在のノードの親ノードが含まれます。

 以下は、**CreateJob** 入力の JSON 表現です。

```
{
  "node-1": {
    "S3CatalogSource": {
      "Table": "csvFormattedTable",
      "PartitionPredicate": "",
      "Name": "S3 bucket",
      "AdditionalOptions": {},
      "Database": "myDatabase"
    }
  },
  "node-3": {
    "S3DirectTarget": {
      "Inputs": ["node-2"],
      "PartitionKeys": [],
      "Compression": "none",
      "Format": "json",
      "SchemaChangePolicy": { "EnableUpdateCatalog": false },
      "Path": "",
      "Name": "S3 bucket"
    }
  },
  "node-2": {
    "ApplyMapping": {
      "Inputs": ["node-1"],
      "Name": "ApplyMapping",
      "Mapping": [
        {
          "FromType": "long",
          "ToType": "long",
          "Dropped": false,
          "ToKey": "myheader1",
          "FromPath": ["myheader1"]
        },
        {
          "FromType": "long",
          "ToType": "long",
          "Dropped": false,
          "ToKey": "myheader2",
          "FromPath": ["myheader2"]
        },
        {
          "FromType": "long",
          "ToType": "long",
          "Dropped": false,
          "ToKey": "myheader3",
          "FromPath": ["myheader3"]
        }
      ]
    }
  }
}
```

 **ジョブの更新と取得** 

 *[Updating jobs]* (ジョブの更新) に 'codeGenConfigurationNodes'フィールドがあるため、入力形式は同じになります。「[UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob)」アクションを参照してください。

 *GetJob* アクションは、同じ形式の「CodeGenConfigurationNodes」フィールドも返します。「[GetJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-GetJob)」アクションを参照してください。

## ビジュアルジョブの制限
<a name="visual-job-limitations"></a>

 既存の API に「CodeGenConfigurationNodes」パラメータが追加されているため、これらの API の制限はすべて継承されます。さらに、CodeGenConfigurationNodes および一部のノードのサイズは制限されます。詳細については、次の「[ジョブ構造](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job)」を参照してください。