

# AWS Glue 蓝图类参考
<a name="developing-blueprints-code-classes"></a>

适用于 AWS Glue 蓝图的库定义了在工作流布局脚本中使用的三个类：`Job`、`Crawler` 和 `Workflow`。

**Topics**
+ [作业类](#developing-blueprints-code-jobclass)
+ [爬网程序类](#developing-blueprints-code-crawlerclass)
+ [工作流类](#developing-blueprints-code-workflowclass)
+ [类方法](#developing-blueprints-code-methods)

## 作业类
<a name="developing-blueprints-code-jobclass"></a>

`Job` 类表示一个 AWS Glue ETL 任务。

**强制构造函数参数**  
以下是适用于 `Job` 类的强制构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| Name | str | 要分配给任务的名称。AWS Glue 将随机生成的后缀添加到名称中，以区分其他蓝图运行创建的任务。 | 
| Role | str | 任务在执行时应担任角色的 Amazon Resource Name（ARN）。 | 
| Command | dict | 任务命令，如指定在 API 文档中的 [JobCommand 结构](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-JobCommand)。 | 

**可选构造函数参数**  
以下是适用于 `Job` 类的可选构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| 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)。如果任务仅依赖于一个实体，则省略。 | 
| （任务属性） | - | 任何任务属性都在 AWS Glue API 文档中的[作业结构](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-Job)内列出（CreatedOn 和 LastModifiedOn 除外）。 | 

## 爬网程序类
<a name="developing-blueprints-code-crawlerclass"></a>

`Crawler` 类表示一个 AWS Glue 爬网程序。

**强制构造函数参数**  
以下是适用于 `Crawler` 类的强制构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| 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 构造函数参数是可选的，但您必须至少传递一个。 | 

**可选构造函数参数**  
以下是适用于 `Crawler` 类的可选构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| 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)。如果爬网程序仅依赖于一个实体，则省略。 | 
| （爬网程序属性） | - | 所有爬网程序属性都在 AWS Glue API 文档中的[Crawler 结构](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-Crawler)内列出，以下属性例外：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/developing-blueprints-code-classes.html) | 

## 工作流类
<a name="developing-blueprints-code-workflowclass"></a>

`Workflow` 类表示一个 AWS Glue 工作流。工作流布局脚本返回 `Workflow` 对象。AWS Glue 基于此对象创建工作流。

**强制构造函数参数**  
以下是适用于 `Workflow` 类的强制构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| Name | str | 要向工作流分配的名称。 | 
| Entities | Entities | 要包含在工作流中的实体（任务和爬网程序）的集合。Entities 类构造函数接受 Jobs 参数（Job 对象列表）和 Crawlers 参数（Crawler 对象列表）。 | 

**可选构造函数参数**  
以下是适用于 `Workflow` 类的可选构造函数参数。


| 参数名 | Type | 说明 | 
| --- | --- | --- | 
| 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>

所有三个类都包括以下方法。

**validate()**  
验证对象的属性，如果发现错误，则输出消息并退出。如果没有错误，则不生成输出。对于 `Workflow` 类，会在工作流中的每个实体上调用自己。

**to\$1json()**  
将对象序列化为 JSON。还调用 `validate()`。对于 `Workflow` 类，JSON 对象包括任务和爬网程序列表，以及由任务和爬网程序依赖关系规范生成的触发器列表。