AWS Batch

AWS Batch

Disclaimer

Your use of this download is governed by Stonebranch’s Terms of Use.

Overview

AWS Batch is a set of batch management capabilities that enables developers, scientists, and engineers to easily and efficiently run hundreds of thousands of batch computing jobs on AWS.

This Universal Extension provides the capability to submit new AWS Batch Jobs as well as read the status for an existing AWS Batch Job.

Version Information

Template Name

Extension Name

Extension Version

Template Name

Extension Name

Extension Version

AWS Batch

ue-aws-batch

1.3.1

Refer to ChangeLog for version history information.

Software Requirements

This integration requires a Universal Agent and a Python runtime to execute the Universal Task.

Software Requirements for Universal Template and Universal Task

Requires Python 3.7.0 or higher. Tested with the Universal Agent bundled Python distribution.

Software Requirements for Universal Agent

Both Windows and Linux agents are supported:

  • Universal Agent for Windows x64 Version 7.2.0.0 and later with python options installed.

  • Universal Agent for Linux Version 7.2.0.0 and later with python options installed.

Software Requirements for Universal Controller

Universal Controller Version 7.2.0.0 and later.

Network and Connectivity Requirements

Extensions' Universal Agent host should be able to reach AWS Batch REST endpoints, through the configured VPC.

More information on setting up AWS Batch VPC, can be found in the AWS Batch official user guide.

Key Features

This Universal Extension provides the following key features:

  • Support to submit a new Batch Job, with option to Terminate Job after a timeout period.

  • Support to submit a new Batch Job and wait until it reaches state "success" or "failed".

  • Support to read Batch Job status for an existing Job ID.

  • Support for authorization via IAM Role-Based Access Control (RBAC) strategy.

  • Support for Proxy communication via HTTP/HTTPS protocol.

Import Universal Template

To use the Universal Template, you first must perform the following steps:

  1. This Universal Task requires the Resolvable Credentials feature. Check that the Resolvable Credentials Permitted system property has been set to true.

  2. To import the Universal Template into your Controller, follow the instructions here.

  3. When the files have been imported successfully, refresh the Universal Templates list; the Universal Template will appear on the list.

Configure Universal Task

For a new Universal Task, create a new task, and enter the required input fields.

Input Fields

The input fields for this Universal Extension are described below.

Field

Input type

Default value

Type

Description

Field

Input type

Default value

Type

Description

Action

Required

Submit Job

Choice

Action performed upon the task execution. Available actions:

  • Submit Job

  • Read Job Status

AWS Region

Optional since version 1.1.0

Optional

-

Text

Region for the Amazon Web Service. Find more information about the AWS Service endpoints and quotas here.

When AWS Region is not populated as part of the task definition, during task execution the integration will look for credentials on the task execution environment. Refer to configuration options for more information.

AWS Credentials

Optional since version 1.1.0

Optional

-

Credentials

The Credentials definition should be as follows.

  • AWS Access Key ID as "Runtime User".

  • AWS Secret Access Key as "Runtime Password".

When AWS Credentials are not populated as part of the task definition, during task execution the integration will look for AWS Credentials on the task execution environment. Refer to configuration options for more information.

Role Based Access

Optional

False

Boolean

Special type of authorization is provided by Role Assumption where the client sends his own credentials and the role he wants to assume from another user.

If allowed, the client receives temporary credentials with limited time access to some resources.

Role ARN

Optional

-

Text

Role Amazon Resource Name (ARN) to have access to the SQS queue.Role ARN format: arn:aws:iam::<AWS Account ID>:instance-profile/<Role name>.

Required when Role Based Access has been checked.

Job Name

Optional

-

Text

Name of the Batch Job that will be submitted.

Job Definition

Optional

-

Text

Job definition used by this job. This value can be one of name , name:revision , or the Amazon Resource Name (ARN) for the job definition.

If name is specified without a revision then the latest active revision is used.

Required when Submit Job action has been selected.

Job Queue

Optional

-

Text

The job queue where the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue.

Required when Submit Job action has been selected.

Job Timeout

Optional

-

Integer

Can be filled when Action = Submit Job.

The timeout configuration (in seconds) for this Submit Job operation.

You can specify a timeout duration after which Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it is not retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration specified in the job definition.

Optional when Submit Job action has been selected.

Container Overrides Script

Introduced in version 1.1.0

Optional

-

Script Field

The overrides that user want to apply on the container.

The script payload should be in JSON format.

Additional Job Parameters

Optional

-

Array

Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition.

Optional when Submit Job action has been selected.

Job ID

Optional

-

Text

The Job ID of an already submitted Batch Job.

Required when Read Job Status action has been selected.

Use Proxy

Optional

False

Boolean

Flag to indicate whether Proxy shall be used in the communication with AWS.

Proxy Type

Optional

HTTP

Choice

Type of proxy connection to be used. Available options are:

  • HTTP

  • HTTPS

  • HTTPS with password

Required when Use Proxy is checked.

Proxy

Optional

-

Text

Comma separated list of Proxy servers. Valid formats: http://proxyip:port or http://proxyip:port,https://proxyip:port.

Required when Use Proxy is checked.

Proxy CA Bundle File

Optional

-

Text

The path to a custom certificate bundle to use when establishing SSL/TLS connections with proxy.

Used when Proxy Type is configured for "HTTPS" or "HTTPS With Credentials".

Proxy Credentials

Optional

-

Credentials

Credentials to be used for the proxy communication. They are comprised of:

  • username

  • password

Required when Proxy Type is configured for "HTTPS" or "HTTPS With Credentials".

Wait for Success or Failure

Introduced in version 1.2.0

Optional

False

Boolean

If selected, the task will continue running until Job reaches the "SUCCEDED" or "FAILED" state.

Required for Action "Submit Job".

Polling Interval

Introduced in version 1.2.0

Optional

30

Integer

The polling interval in seconds between checking for the Job status.

Required when Wait for Success or Failure ="True".

Show full job information on Extension Output

Introduced in version 1.3.0

Optional

False

Boolean

Controls visibility on the latest Full Job Information as provided by AWS Batch Service. 

Task Examples

 

Submit Job

Example of AWS Batch Universal Task for submitting a new AWS Batch Job.

 

Submit Job with all optional input arguments

Example of AWS Batch Universal Task for submitting a new AWS Batch with the following arguments.

  • Environment Variables as AWS Region

    Example of Universal Task for submitting a new AWS Batch Job providing no AWS Credentials in task definition and providing AWS Region as Environment Variable, leaving the respective input fields empty. AWS Credentials are expected in this case to be configured on the task execution environment. Please refer to AWS Credentials input field for more information.

  • Job Timeout

  • Container Overrides Script

  • Wait for Success or Failure

  • Proxy Type "HTTPS With Credentials"

Read Job Status with Role Based Access Enabled

Example of AWS Batch Universal Task for reading the status of an existing Batch Job by ID, Role Based Access and "HTTP Proxy" connection.

Task Output

Output Only Fields

The output fields for this Universal Extension are described below.

Field

Type

Preserved on re-run

Description

Field

Type

Preserved on re-run

Description

Job ARN

Text

False

ARN value of the newly submitted Batch Job.
Generated in Submit Job action.

Job ID

Text

False

Id of the newly submitted Batch Job.
Generated in Submit Job action.

Job Name

Text

False

Name of the Batch Job.
Generated in Read Job Status action.

Since 1.2.0: Generated for Action "Submit Job" with Wait for Success or Failure = "True", updating live during execution.

Job Status

Text

False

Status of the Batch Job.
Generated in Read Job Status action.

Since 1.2.0: Generated for Action "Submit Job" with Wait for Success or Failure = "True", updating live during execution.

Exit Codes

The exit codes for AWS Batch Extension are described below.

Exit Code

Status Classification Code

Status Classification Description

Status Description

Exit Code

Status Classification Code

Status Classification Description

Status Description

0

SUCCESS

Successful Execution

SUCCESS: Successful Task execution

1

FAIL

Failed Execution

FAIL: < Error Description >

2

AUTHENTICATION_ERROR

Bad credentials

AUTHENTICATION_ERROR: Account cannot be authenticated.

3

AUTHORIZATION_ERROR

Insufficient Permissions

AUTHORIZATION_ERROR: Account is not authorized to perform the requested action.

10

CONNECTION_ERROR

Bad connection data or connection timed out

CONNECTION_ERROR: < Error Description >

11

CONNECTION_ERROR

Extension specific connection error

CONNECTION_ERROR: ProxyConnectionError: Failed to connect to proxy URL <url>

22

SUCCESS

Successful Execution

SUCCESS: Job is in RUNNING state.

Valid only for Action = "Read Job"

23

SUCCESS

Successful Execution

SUCCESS: Job is in STARTING state.

Valid only for Action = "Read Job"

24

SUCCESS

Successful Execution

SUCCESS: Job is in RUNNABLE state.

Valid only for Action = "Read Job"

25

SUCCESS

Successful Execution

SUCCESS: Job is in PENDING state.

Valid only for Action = "Read Job"

26

SUCCESS

Successful Execution

SUCCESS: Job is in SUBMITTED state.

Valid only for Action = "Read Job"

27

SUCCESS

Successful Execution

SUCCESS: Job is in SUCCEEDED state.

Valid only for Action = "Read Job"

Attribute changed is populated as follows

  • true, in case Action "Submit Job" is executed successfully.

  • false, in case Action "Read Job" is executed.

The Extension output contains attribute result. Attribute result contains the following sub-attributes:

Attribute

Type

Description

Attribute

Type

Description

out_job_arn

string

ARN value of the newly submitted Batch Job.

Generated in "Submit Job" Action.

out_job_id

string

ID of the newly submitted Batch Job.

Generated in "Submit Job" Action.

out_job_name

string

Name of the Batch Job.
Generated in "Read Job" Action
Since 1.2.0: Generated for Action "Submit Job" with Wait for Success or Failure = "True", updating live during execution.