AWS CloudFormation
User Guide (API Version 2010-05-15)


The AWS::Batch::JobDefinition resource specifies the parameters for an AWS Batch job definition. For more information, see Job Definitions in the AWS Batch User Guide.


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


{ "Type" : "AWS::Batch::JobDefinition", "Properties" : { "Type" : String, "Parameters" : Json, "NodeProperties" : NodeProperties, "Timeout" : Timeout, "ContainerProperties" : ContainerProperties, "JobDefinitionName" : String, "RetryStrategy" : RetryStrategy } }



The type of job definition.

Required: Yes

Type: String

Update requires: No Interruption


Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. For more information about specifying parameters, see Job Definition Parameters in the AWS Batch User Guide.

Required: No

Type: JSON object

Update requires: No Interruption


An object representing the node properties of a multi-node parallel job.

Required: No

Type: NodeProperties

Update requires: No interruption


The name of the job definition.

Required: No

Type: String

Update requires: Replacement


An object with various properties specific to container-based jobs.

Required: Yes

Type: AWS Batch JobDefinition ContainerProperties

Update requires: No Interruption


Specifies a job timeout configuration.

Required: No

Type: AWS Batch JobDefinition Timeout

Update requires: No Interruption


The retry strategy to use for failed jobs that are submitted with this job definition.

Required: No

Type: AWS Batch JobDefinition RetryStrategy

Update requires: No Interruption

Return Values


When you pass the logical ID of an AWS::Batch::JobDefinition resource to the intrinsic Ref function, the function returns the job definition ARN, such as arn:aws:batch:us-east-1:111122223333:job-definition/test-gpu:2.

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


Test nvidia-smi

The following example tests the nvidia-smi command on a GPU instance to verify that the GPU is working inside the container. For more information, see Test GPU Functionality in the AWS Batch User Guide.


{ "JobDefinition": { "Type": "AWS::Batch::JobDefinition", "Properties": { "Type": "container", "JobDefinitionName": "nvidia-smi", "ContainerProperties": { "MountPoints": [ { "ReadOnly": false, "SourceVolume": "nvidia", "ContainerPath": "/usr/local/nvidia" } ], "Volumes": [ { "Host": { "SourcePath": "/var/lib/nvidia-docker/volumes/nvidia_driver/latest" }, "Name": "nvidia" } ], "Command": [ "nvidia-smi" ], "Memory": 2000, "Privileged": true, "JobRoleArn": "String", "ReadonlyRootFilesystem": true, "Vcpus": 2, "Image": "nvidia/cuda" } } } }


JobDefinition: Type: AWS::Batch::JobDefinition Properties: Type: container JobDefinitionName: nvidia-smi ContainerProperties: MountPoints: - ReadOnly: false SourceVolume: nvidia ContainerPath: /usr/local/nvidia Volumes: - Host: SourcePath: /var/lib/nvidia-docker/volumes/nvidia_driver/latest Name: nvidia Command: - nvidia-smi Memory: 2000 Privileged: true JobRoleArn: String ReadonlyRootFilesystem: true Vcpus: 2 Image: nvidia/cuda