AWS CloudFormation
User Guide (Version )

AWS::Glue::Job

The AWS::Glue::Job resource specifies an AWS Glue job in the data catalog. For more information, see Adding Jobs in AWS Glue and Job Structure in the AWS Glue Developer Guide.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

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

YAML

Type: AWS::Glue::Job Properties: AllocatedCapacity: Double Command: JobCommand Connections: ConnectionsList DefaultArguments: Json Description: String ExecutionProperty: ExecutionProperty LogUri: String MaxRetries: Double Name: String Role: String SecurityConfiguration: String Tags: Json

Properties

AllocatedCapacity

The number of capacity units that are allocated to this job.

Required: No

Type: Double

Update requires: No interruption

Command

The code that executes a job.

Required: Yes

Type: JobCommand

Update requires: No interruption

Connections

The connections used for this job.

Required: No

Type: ConnectionsList

Update requires: No interruption

DefaultArguments

The default arguments for this job, specified as name-value pairs.

You can specify arguments here that your own job-execution script consumes, in addition to arguments that AWS Glue itself consumes.

For information about how to specify and consume your own job arguments, see Calling AWS Glue APIs in Python in the AWS Glue Developer Guide.

For information about the key-value pairs that AWS Glue consumes to set up your job, see Special Parameters Used by AWS Glue in the AWS Glue Developer Guide.

Required: No

Type: Json

Update requires: No interruption

Description

A description of the job.

Required: No

Type: String

Update requires: No interruption

ExecutionProperty

The maximum number of concurrent runs that are allowed for this job.

Required: No

Type: ExecutionProperty

Update requires: No interruption

LogUri

This field is reserved for future use.

Required: No

Type: String

Update requires: No interruption

MaxRetries

The maximum number of times to retry this job after a JobRun fails.

Required: No

Type: Double

Update requires: No interruption

Name

The name you assign to this job definition.

Required: No

Type: String

Update requires: Replacement

Role

The name or Amazon Resource Name (ARN) of the IAM role associated with this job.

Required: Yes

Type: String

Update requires: No interruption

SecurityConfiguration

The name of the SecurityConfiguration structure to be used with this job.

Required: No

Type: String

Update requires: No interruption

Tags

The tags to use with this job.

Required: No

Type: Json

Update requires: No interruption

Return Values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the job name.

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

Examples

The following example creates a job with an associated role.

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