

# AWS Glue ブループリントクラスリファレンス
<a name="developing-blueprints-code-classes"></a>

AWS Glue ブループリント用のライブラリでは、ワークフローレイアウトスクリプトで使用する 3 つのクラス (`Job`、`Crawler`、および `Workflow`) を定義します。

**Topics**
+ [Job クラス](#developing-blueprints-code-jobclass)
+ [Crawler クラス](#developing-blueprints-code-crawlerclass)
+ [Workflow クラス](#developing-blueprints-code-workflowclass)
+ [クラスメソッド](#developing-blueprints-code-methods)

## Job クラス
<a name="developing-blueprints-code-jobclass"></a>

`Job` クラスは、AWS Glue での ETL ジョブを表します。

**必須のコンストラクター引数**  
`Job` クラスのコンストラクタに必須な引数を、以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| Name | str | ジョブに割り当てる名前。AWS Glue では他のブループリントの実行で作成されたジョブとの区別するため、名前にはランダムに生成されるサフィックスを付けています。 | 
| Role | str | ジョブが実行中に引き受けるロールの Amazon リソースネーム (ARN)。 | 
| Command | dict | API ドキュメントの [JobCommand 構造](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-JobCommand) に掲載されている Job コマンド。 | 

**オプションのコンストラクター引数**  
`Job` クラスのコンストラクタで、オプションとなっている引数を以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| DependsOn | dict | ジョブが依存するワークフローエンティティの一覧。詳細については、[DependsOn 引数を使用する](developing-blueprints-code-layout.md#developing-blueprints-code-layout-depends-on) を参照してください。 | 
| WaitForDependencies | str | 実行前のジョブが、依存するすべてのエンティティが完了するまで待機するのか、あるいは任意のエンティティが完了することを待つのかを示します。詳細については、[WaitForDependencies 引数を使用する](developing-blueprints-code-layout.md#developing-blueprints-code-layout-wait-for-dependencies) を参照してください。ジョブが 1 つのエンティティのみに依存する場合は、この設定は省略します。 | 
| (ジョブプロパティ) | - | [Job 構造](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-Job) API ドキュメント (AWS Glue と CreatedOn 以外)LastModifiedOn の一覧に掲載されている、いずれかのジョブのプロパティ。 | 

## Crawler クラス
<a name="developing-blueprints-code-crawlerclass"></a>

`Crawler` クラスは、AWS Glue でのクローラーを表します。

**必須のコンストラクター引数**  
`Crawler` クラスのコンストラクタに必須な引数を、以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| Name | str | AWS Glue は、ランダムに生成されたサフィックスをクローラーの名前に付加することで、異なるブループリントの実行によって作成されたクローラを区別します。 | 
| Role | str | クローラが実行中に引き受ける必要のあるロールの ARN。 | 
| Targets | dict | クロールするターゲットのコレクション。Targets クラスコンストラクターの引数は、API ドキュメントの [CrawlerTargets 構造](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CrawlerTargets) に定義されています。Targets コンストラクタの引数はすべてオプションです。ただし、少なくとも 1 つを渡す必要があります。 | 

**オプションのコンストラクター引数**  
`Crawler` クラスのコンストラクタで、オプションとなっている引数を以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| DependsOn | dict | クローラが依存するワークフローエンティティのリスト。詳細については、[DependsOn 引数を使用する](developing-blueprints-code-layout.md#developing-blueprints-code-layout-depends-on) を参照してください。 | 
| WaitForDependencies | str | 実行前のクローラが、依存するすべてのエンティティが完了するまで待機するのか、任意のエンティティが完了することを待つのかを示します。詳細については、[WaitForDependencies 引数を使用する](developing-blueprints-code-layout.md#developing-blueprints-code-layout-wait-for-dependencies) を参照してください。クローラが 1 つのエンティティのみに依存する場合は、この設定は省略します。 | 
| (クローラのプロパティ) | - | [Crawler 構造](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-Crawler) API ドキュメントの AWS Glue の一覧に掲載されている、いずれかのクローラのプロパティ (以下のものを除く)。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/developing-blueprints-code-classes.html) | 

## Workflow クラス
<a name="developing-blueprints-code-workflowclass"></a>

`Workflow` クラスは、AWS Glue の ワークフローを表します。ワークフローレイアウトスクリプトは、`Workflow` オブジェクト。AWS Glue でこのオブジェクトに基づいてワークフローを作成します。

**必須のコンストラクター引数**  
`Workflow` クラスのコンストラクタに必須な引数を、以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| Name | str | ワークフローに割り当てる名前。 | 
| Entities | Entities | ワークフローに含めるエンティティ (ジョブおよびクローラ) のコレクション。Entities クラスのコンストラクタは、引数 Jobs (Job オブジェクトのリスト)、および、Crawlers 引数 (Crawler オブジェクトのリスト) を受け取ります。 | 

**オプションのコンストラクター引数**  
`Workflow` クラスのコンストラクタで、オプションとなっている引数を以下に示します。


| 引数名 | 型 | 説明 | 
| --- | --- | --- | 
| Description | str | 「[Workflow 構造](aws-glue-api-workflow.md#aws-glue-api-workflow-Workflow)」を参照してください | 
| DefaultRunProperties | dict | 「[Workflow 構造](aws-glue-api-workflow.md#aws-glue-api-workflow-Workflow)」を参照してください | 
| OnSchedule | str | cron 式 | 

## クラスメソッド
<a name="developing-blueprints-code-methods"></a>

上記の 3 つのクラスには、以下のメソッドが含まれています。

**validate()**  
オブジェクトのプロパティを検証し、エラーが見つかった場合はメッセージを出力して終了します。エラーが発見されない場合は、出力を生成しません。`Workflow` クラスでは、ワークフロー内のすべてのエンティティで、自分自身を呼び出します。

**to\$1json()**  
オブジェクトを JSON としてシリアル化します。また、`validate()` を呼び出します。`Workflow` クラスでは、この JSON オブジェクトにはジョブとクローラのリストと、ジョブとクローラの依存関係の仕様によって生成されたトリガーのリストが含まれます。