AWS::Glue::Job - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Glue::Job

AWS::Glue::Job 资源指定数据目录中的 AWS Glue 作业。有关更多信息,请参阅 AWS Glue 开发人员指南 中的在 AWS Glue 中添加作业Job 结构

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Glue::Job", "Properties" : { "AllocatedCapacity" : Double, "Command" : JobCommand, "Connections" : ConnectionsList, "DefaultArguments" : Json, "Description" : String, "ExecutionProperty" : ExecutionProperty, "GlueVersion" : String, "LogUri" : String, "MaxCapacity" : Double, "MaxRetries" : Double, "Name" : String, "NotificationProperty" : NotificationProperty, "NumberOfWorkers" : Integer, "Role" : String, "SecurityConfiguration" : String, "Tags" : Json, "Timeout" : Integer, "WorkerType" : String } }

属性

AllocatedCapacity

分配给该作业的容量单位数量。

必需:否

类型:双精度

Update requires: No interruption

Command

执行作业的代码。

必需:是

类型JobCommand

Update requires: No interruption

Connections

用于此作业的连接。

必需:否

类型ConnectionsList

Update requires: No interruption

DefaultArguments

此作业的默认参数,指定为名称-值对。

您可以在此处指定您自己的作业执行脚本使用的参数以及 AWS Glue 本身使用的参数。

有关如何指定和使用您自己的作业参数的信息,请参阅 AWS Glue 开发人员指南 中的在 Python 中调用 AWS Glue API

有关 AWS Glue 用于设置作业的键值对的信息,请参阅 AWS Glue 开发人员指南 中的由 AWS Glue 使用的特殊参数

必需:否

类型:Json

Update requires: No interruption

Description

任务的描述。

必需:否

类型:字符串

Update requires: No interruption

ExecutionProperty

此作业允许的并发运行的最大数量。

必需:否

类型ExecutionProperty

Update requires: No interruption

GlueVersion

Glue 版本决定 AWS Glue 支持的 Apache Spark 和 Python 版本。Python 版本指示了 Spark 类型的作业支持的版本。

有关可用的 AWS Glue 版本以及相应的 Spark 和 Python 版本的更多信息,请参阅开发人员指南中的 Glue 版本

在未指定 Glue 版本的情况下创建的作业默认为 Glue 0.9。

必需:否

类型:字符串

Update requires: No interruption

LogUri

将保留该字段,以供将来使用。

必需:否

类型:字符串

Update requires: No interruption

MaxCapacity

此作业运行时可分配的 AWS Glue 数据处理单元 (DPU) 的数量。DPU 是对处理能力的相对度量,它由 4 个 vCPU 的计算容量和 16GB 内存组成。

如果使用 WorkerTypeNumberOfWorkers,请勿设置 Max Capacity

可为 MaxCapacity 分配的值取决于您是否运行 Python shell 作业或 Apache Spark ETL 作业:

  • 当您指定 Python shell 作业 (JobCommand.Name="pythonshell"),您可以分配 0.0625 或 1 DPU。默认值为 0.0625 DPU。

  • 当您指定 Apache Spark ETL 作业 (JobCommand.Name="glueetl") 时,可以分配 2 到 100 个 DPU。默认为 10 个 DPU。此作业类型不能具有小数 DPU 分配。

必需:否

类型:双精度

Update requires: No interruption

MaxRetries

在作业运行失败后重试此作业的最大次数。

必需:否

类型:双精度

Update requires: No interruption

Name

您分配给该作业定义的名称。

必需:否

类型:字符串

Update requires: Replacement

NotificationProperty

指定通知的配置属性。

必需:否

类型NotificationProperty

Update requires: No interruption

NumberOfWorkers

作业运行时分配的定义 workerType 的工作线程数。

您可以定义的最大工作线程数是 299 (G.1X),以及 149 (G.2X)。

必需:否

类型:整数

Update requires: No interruption

Role

与此作业关联的 IAM 角色的名称或 Amazon Resource Name (ARN)。

必需:是

类型:字符串

Update requires: No interruption

SecurityConfiguration

该作业将使用的 SecurityConfiguration 结构的名称。

必需:否

类型:字符串

Update requires: No interruption

Tags

要用于此作业的标签。

必需:否

类型:Json

Update requires: No interruption

Timeout

作业超时(以分钟为单位)。这是作业运行在终止并进入 TIMEOUT 状态前可以使用资源的最长时间。默认值为 2880 分钟 (48 小时)。

必需:否

类型:整数

Update requires: No interruption

WorkerType

作业运行时分配的预定义工作线程的类型。接受的值为 Standard、G.1X 或 G.2X。

  • 对于 Standard 工作线程类型,每个工作线程提供 4 个 vCPU、16 GB 内存和 50GB 磁盘,并且每个工作线程提供 2 个执行器。

  • 对于 G.1X 工作线程类型,每个工作线程映射到 1 个 DPU(4 个 vCPU,16 GB 内存,64 GB 磁盘),并且每个工作线程提供 1 个执行器。我们建议内存密集型作业使用该工作线程类型。

  • 对于 G.2X 工作线程类型,每个工作线程映射到 2 个 DPU(8 个 vCPU,32 GB 内存,128 GB 磁盘),并且每个工作线程提供 1 个执行器。我们建议内存密集型作业使用该工作线程类型。

必需:否

类型:字符串

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回作业名称。

For more information about using the Ref function, see Ref.

示例

以下示例创建具有关联角色的作业。

JSON

{ "Description": "AWS Glue Job Test", "Resources": { "MyJobRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] } } ] } }, "MyJob": { "Type": "AWS::Glue::Job", "Properties": { "Command": { "Name": "glueetl", "ScriptLocation": "s3://aws-glue-scripts//prod-job1" }, "DefaultArguments": { "--job-bookmark-option": "job-bookmark-enable" }, "ExecutionProperty": { "MaxConcurrentRuns": 2 }, "MaxRetries": 0, "Name": "cf-job1", "Role": { "Ref": "MyJobRole" } } } } }

YAML

--- Description: "AWS Glue Job Test" Resources: MyJobRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "glue.amazonaws.com" Action: - "sts:AssumeRole" Path: "/" Policies: - PolicyName: "root" PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: "*" Resource: "*" MyJob: Type: AWS::Glue::Job Properties: Command: Name: glueetl ScriptLocation: "s3://aws-glue-scripts//prod-job1" DefaultArguments: "--job-bookmark-option": "job-bookmark-enable" ExecutionProperty: MaxConcurrentRuns: 2 MaxRetries: 0 Name: cf-job1 Role: !Ref MyJobRole