AWS CloudFormation
User Guide (API 版本 2010-05-15)

AWS::Glue::Job

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

语法

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

JSON

{ "Type" : "AWS::Glue::Job", "Properties" : { "Role" : String, "DefaultArguments" : JSON object, "Connections" : ConnectionsList, "MaxRetries" : Double, "Description" : String, "LogUri" : String, "Command" : JobCommand, "AllocatedCapacity" : Double, "ExecutionProperty" : ExecutionProperty, "Name" : String } }

YAML

Type: "AWS::Glue::Job" Properties: Role: String DefaultArguments: JSON object Connections: ConnectionsList MaxRetries: Double Description: String LogUri: String Command: JobCommand AllocatedCapacity: Double ExecutionProperty: ExecutionProperty Name: String

属性

Role

与作业关联的角色。

必需:是

类型:字符串

更新要求无需中断

DefaultArguments

指定作业的默认参数的 UTF-8 字符串到 UTF-8 字符串键/值对。

可以在此处指定您自己的作业执行脚本使用的参数以及 AWS Glue 本身使用的参数。有关如何指定和使用您自己的作业参数的信息,请参阅 AWS Glue 开发人员指南 中的在 AWS Glue 中传递和访问 Python 参数

AWS Glue 使用以下参数设置作业脚本环境:

  • --scriptLocation - ETL 脚本所在的 Amazon S3 位置 (采用类似于 s3://path/to/my/script.py 的格式)。

  • --extra-py-files - 在执行脚本之前 AWS Glue 添加到 Python 路径中的其他 Python 模块的 Amazon S3 路径。多个值必须是以逗号 (,) 分隔的完整路径。请注意,目前仅纯 Python 模块可以正常工作。不支持使用 C 或其他语言编写的扩展模块。

  • --extra-jars - 在执行脚本之前 AWS Glue 添加到 Java 类路径中的其他 Java .jar 文件的 Amazon S3 路径。多个值必须是以逗号 (,) 分隔的完整路径。

  • --extra-files - 在执行脚本之前 AWS Glue 复制到脚本工作目录中的其他文件 (如配置文件) 的 Amazon S3 路径。多个值必须是以逗号 (,) 分隔的完整路径。

不应设置 AWS Glue 在内部使用的几个参数名称:

  • --conf - 供 AWS Glue 内部使用。请勿设置!

  • --debug - 供 AWS Glue 内部使用。请勿设置!

  • --mode - 供 AWS Glue 内部使用。请勿设置!

  • --JOB_NAME - 供 AWS Glue 内部使用。请勿设置!

必需:否

类型:JSON 对象

更新要求无需中断

Connections

作业使用的连接。

必需:否

类型AWS Glue Job ConnectionsList

更新要求无需中断

MaxRetries

在该作业失败时重试的最大次数。

必需:否

类型:双精度

更新要求无需中断

Description

作业的描述。

必需:否

类型:字符串

更新要求无需中断

LogUri

作业的日志位置。

必需:否

类型:字符串

更新要求无需中断

Command

执行作业的代码。

必需:是

类型AWS Glue Job JobCommand

更新要求无需中断

AllocatedCapacity

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

必需:否

类型:双精度

更新要求无需中断

ExecutionProperty

作业的执行属性,它指定作业允许的最大并发运行数。

必需:否

类型AWS Glue Job ExecutionProperty

更新要求无需中断

Name

作业的名称。它必须与单行字符串模式匹配:[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*

必需:否

类型:字符串

更新要求替换

返回值

Ref

当该资源的逻辑 ID 提供给 Ref内部函数时,Ref 将返回资源名称。

有关使用 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": { "--continuation-option": "continuation-enabled" }, "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: "--continuation-option": continuation-enabled ExecutionProperty: MaxConcurrentRuns: 2 MaxRetries: 0 Name: cf-job1 Role: !Ref MyJobRole

本页内容: