Task State

The Task class can invoke AWS Lambda functions or initiate Step Function Activities.

For more details on Task, see the AWS documentation.

class awssl.Task(Name=None, Comment='', InputPath='$', OutputPath='$', NextState=None, EndState=None, ResultPath='$', RetryList=None, CatcherList=None, ResourceArn=None, TimeoutSeconds=99999999, HeartbeatSeconds=99999999)

Models the Task state.

The Task can be used to invoke either an AWS Lambda function or an Activity, which provides a general mechanism for all types of processing. The Task supports retries and catching of specified errors to provide structured error handling, as well as supporting Timeout for processing as one of those error types.

Either:

  • EndState is True and NextState must be None
  • EndState is False and NextState must be a valid instance of a class derived from StateBase.
Parameters:
  • Name (str) – [Required] The name of the state within the branch of the state machine
  • Comment (str) – [Optional] A comment describing the intent of this pass state
  • InputPath (str) – [Optional] Filter on the Input information to be passed to the Pass state. Default is “$”, signifying that all the Input information will be provided
  • OutputPath (str) – [Optional] Filter on the Output information to be returned from the Pass state. Default is “$”, signifying that all the result information will be provided
  • EndState (bool) – [Optional] Flag indicating if this state terminates a branch of the state machine. Defaults to False
  • NextState (instance of class derived from StateBase) – [Optional] Next state to be invoked within this branch. Must not be None unless EndState is True
  • ResultPath (str) – [Optional] JSONPath indicating where results should be added to the Input. Defaults to “$”, indicating results replace the Input entirely.
  • RetryList – [Optional] list of Retrier instances corresponding to error states that cause the entire set of branches to be retried
  • CatcherList – [Optional] list of Catcher instances corresponding to error states that can be caught and handled by further states being executed in the StateMachine.
  • ResourceArn – [Required] The Arn for the Lambda function or Activity that the Task should invoke
Type:

RetryList: list of Retrier

Type:

CatcherList: list of Catcher

Type:

ResourceArn: str

Param:

TimeoutSeconds: [Optional] The number of seconds in which the Task should complete

Type:

TimeoutSeconds: int

Param:

HeartbeatSeconds: [Optional] The number of seconds between heartbeats from an Activity, to indicate it is still running

Type:

HeartbeatSeconds: int

clone(NameFormatString='{}')

Returns a clone of this instance, with the clone named per the NameFormatString, to avoid state name clashes.

If this instance is not an end state, then the next state will also be cloned, to establish a complete clone of the branch form this instance onwards.

Parameters:NameFormatString (str) – [Required] The naming template to be applied to generate the name of the new instance.
Returns:Task – A new instance of this instance and any other instances in its branch.
get_heartbeat_seconds()

Returns the heartbeat interval for the Task. If more than two heartbeats are missed then the state will fail with a States.Timeout error.

Returns:int – The heartbeat seconds for the state.
get_resource_arn()

Returns the Arn of the Lambda or Activity that will be invoked by this Task.

Returns:str – The Arn of the resource to be invoked.
get_timeout_seconds()

Returns the timeout seconds for the Task, afterwhich a States.Timeout error is raised.

Returns:int – The timeout seconds for the state.
set_heartbeat_seconds(HeartbeatSeconds=99999999)

Sets the heartbeats seconds for the Task. If more than two heartbeats are missed then the state will fail with a States.Timeout error.

If specified, must not be less than zero seconds. Default value is 99999999.

Param:HeartbeatSeconds: [Optional] The number of seconds between heartbeats from an Activity, to indicate it is still running
Type:HeartbeatSeconds: int
set_resource_arn(ResourceArn=None)

Sets the Arn of the Lambda of Activity to be invoked by this Task. Cannot be None and must be a valid Arn formatted string.

Parameters:ResourceArn – [Required] The Arn for the Lambda function or Activity that the Task should invoke
Type:ResourceArn: str
set_timeout_seconds(TimeoutSeconds=99999999)

Sets the timeout seconds for the Task, afterwhich a States.Timeout error is raised.

If specified, must not be less than zero seconds. Default value is 99999999.

Param:TimeoutSeconds: [Optional] The number of seconds in which the Task should complete
Type:TimeoutSeconds: int
to_json()

Returns the JSON representation of this instance.

Returns:dict – The JSON representation
validate()

Validates this instance is correctly specified.

Raises Exception with details of the error, if the state is incorrectly defined.