

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Glue 藍圖類別參考
<a name="developing-blueprints-code-classes"></a>

AWS Glue 藍圖的程式庫會定義您在工作流程配置指令碼中使用的三個類別：`Job`、`Crawler` 及 `Workflow`。

**Topics**
+ [Job 類別](#developing-blueprints-code-jobclass)
+ [Crawler 類別](#developing-blueprints-code-crawlerclass)
+ [Workflow 類別](#developing-blueprints-code-workflowclass)
+ [Class 方法](#developing-blueprints-code-methods)

## Job 類別
<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 | Job 命令，如 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)。如果任務僅依賴於一個實體，則省略。 | 
| (Job 屬性) | - | AWS Glue API 文件 [Job 結構](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-Job) 中列出的任何任務屬性 (CreatedOn 和 LastModifiedOn 除外)。 | 

## Crawler 類別
<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)。如果爬蟲程式只依賴一個實體，則省略。 | 
| (Crawler 屬性) | - | 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_tw/glue/latest/dg/developing-blueprints-code-classes.html) | 

## Workflow 類別
<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 表達式。 | 

## Class 方法
<a name="developing-blueprints-code-methods"></a>

所有這三個類別包括以下方法。

**validate()**  
驗證物件的屬性，如果發現錯誤，則輸出訊息並結束。如果沒有錯誤，則不會產生輸出。對於 `Workflow` 類別，在工作流程中的每個實體上呼叫自己。

**to\$1json()**  
將物件序列化為 JSON。也會呼叫 `validate()`。對於 `Workflow` 類別，JSON 物件包含任務和爬蟲程式清單，以及任務和爬蟲程式相依性規格所產生的觸發清單。