

# AWS Glue 中的蓝图概览
<a name="blueprints-overview"></a>

**注意**  
蓝图功能目前在 AWS Glue 控制台的以下区域不可用：亚太地区（雅加达）和中东（阿联酋）。

AWS Glue 蓝图提供了一种创建和共享 AWS Glue 工作流的方法。当存在可用于类似用例的复杂 ETL 流程时，您可以创建单个蓝图，而不是为每个使用案例创建一个 AWS Glue 工作流。

蓝图指定要包含在工作流中的任务和爬网程序，并指定工作流用户在运行蓝图创建工作流时提供的参数。参数的使用使单个蓝图能够为各种类似的用例生成工作流。有关工作流的更多信息，请参阅[AWS Glue 中的工作流概述](workflows_overview.md)。

以下是蓝图的示例用例：
+ 您想要对现有数据集进行分区。蓝图的输入参数包括 Amazon Simple Storage Service（Amazon S3）源和目标路径以及分区列列表。
+ 您希望将 Amazon DynamoDB 表快照到 SQL 数据存储（如 Amazon Redshift）中。蓝图的输入参数包括 DynamoDB 表名称和 AWS Glue 连接，它指定 Amazon Redshift 集群和目标数据库。
+ 您想将多个 Amazon S3 路径中的 CSV 数据转换为 Parquet。您希望 AWS Glue 工作流为每个路径包含一个单独的爬网程序和任务。输入参数是 AWS Glue 数据目录中的目标数据库和以逗号分隔的 Amazon S3 路径列表。请注意，在这种情况下，工作流创建的爬网程序和任务的数量是可变的。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/s3Bm8ay53Ms/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/s3Bm8ay53Ms)


**蓝图组件**  
蓝图是包含以下组件的 ZIP 格式归档：
+ Python 布局生成器脚本

  包含指定工作流*布局*的函数 – 为工作流创建的爬网程序和任务、任务和爬网程序属性以及任务和爬网程序之间的依赖关系。该函数接受蓝图参数并返回 AWS Glue 用于生成工作流的工作流结构（JSON 对象）。因为您使用 Python 脚本来生成工作流，因此您可以添加适合您的用例的逻辑。
+ 一个配置文件

  指定生成工作流布局的 Python 函数的完全限定名称。还指定脚本使用的所有蓝图参数的名称、数据类型和其他属性。
+ （可选）ETL 脚本和支持文件

  作为高级用例，您可以参数化任务使用的 ETL 脚本的位置。您可以在 ZIP 格式归档中包含任务脚本文件，并为要复制脚本的 Amazon S3 位置指定蓝图参数。布局生成器脚本可以将 ETL 脚本复制到指定位置，并将该位置指定为任务脚本位置属性。您还可以包含任何库或其他支持文件，前提是您的脚本处理它们。

![\[标记为蓝图的框包含两个较小的框，一个标记为 Python 脚本，另一个标记为 Config 文件。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/blueprint.png)


**蓝图运行**  
从蓝图创建工作流时，AWS Glue 会运行蓝图，这会开启一个异步过程来创建工作流以及工作流封装的任务、爬网程序和触发器。AWS Glue 使用蓝图运行来编排工作流及其组件的创建。您可以通过查看蓝图运行状态来查看创建过程的状态。蓝图运行还存储您为蓝图参数提供的值。

![\[标记为“蓝图运行”的框包含标记为“工作流”和“参数值”的图标。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/blueprint-run.png)


您可以使用 AWS Glue 控制台或 AWS Command Line Interface（AWS CLI）查看蓝图运行。查看工作流或对工作流进行问题排查时，您始终可以返回蓝图运行以查看用于创建工作流的蓝图参数值。

**蓝图的生命周期**  
蓝图经过开发、测试、向 AWS Glue 注册并运行以创建工作流。蓝图生命周期中通常涉及三个角色。


| 角色 | 任务 | 
| --- | --- | 
| AWS Glue 开发人员 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/blueprints-overview.html)  | 
| AWS Glue 管理员 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/blueprints-overview.html)  | 
| 数据分析人员 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/blueprints-overview.html)  | 

**另请参阅**  
[AWS Glue 中的开发蓝图](developing-blueprints.md)
[在 AWS Glue 中从蓝图创建工作流](creating_workflow_blueprint.md)
[AWS Glue 蓝图的角色权限](blueprints-personas-permissions.md)