AWS Step Functions

2024/08/29 - AWS Step Functions - 1 updated api methods

Changes  This release adds support for static analysis to ValidateStateMachineDefinition API, which can now return optional WARNING diagnostics for semantic errors on the definition of an Amazon States Language (ASL) state machine.

ValidateStateMachineDefinition (updated) Link ΒΆ
Changes (request, response)
Request
{'maxResults': 'integer', 'severity': 'ERROR | WARNING'}
Response
{'diagnostics': {'severity': {'WARNING'}}, 'truncated': 'boolean'}

Validates the syntax of a state machine definition.

You can validate that a state machine definition is correct without creating a state machine resource. Step Functions will implicitly perform the same syntax check when you invoke CreateStateMachine and UpdateStateMachine . State machine definitions are specified using a JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL).

Suggested uses for ValidateStateMachineDefinition :

  • Integrate automated checks into your code review or Continuous Integration (CI) process to validate state machine definitions before starting deployments.

  • Run the validation from a Git pre-commit hook to check your state machine definitions before committing them to your source repository.

Note

Errors found in the state machine definition will be returned in the response as a list of diagnostic elements , rather than raise an exception.

See also: AWS API Documentation

Request Syntax

client.validate_state_machine_definition(
    definition='string',
    type='STANDARD'|'EXPRESS',
    severity='ERROR'|'WARNING',
    maxResults=123
)
type definition

string

param definition

[REQUIRED]

The Amazon States Language definition of the state machine. For more information, see Amazon States Language (ASL).

type type

string

param type

The target type of state machine for this definition. The default is STANDARD .

type severity

string

param severity

Minimum level of diagnostics to return. ERROR returns only ERROR diagnostics, whereas WARNING returns both WARNING and ERROR diagnostics. The default is ERROR .

type maxResults

integer

param maxResults

The maximum number of diagnostics that are returned per call. The default and maximum value is 100. Setting the value to 0 will also use the default of 100.

If the number of diagnostics returned in the response exceeds maxResults , the value of the truncated field in the response will be set to true .

rtype

dict

returns

Response Syntax

{
    'result': 'OK'|'FAIL',
    'diagnostics': [
        {
            'severity': 'ERROR'|'WARNING',
            'code': 'string',
            'message': 'string',
            'location': 'string'
        },
    ],
    'truncated': True|False
}

Response Structure

  • (dict) --

    • result (string) --

      The result value will be OK when no syntax errors are found, or FAIL if the workflow definition does not pass verification.

    • diagnostics (list) --

      If the result is OK , this field will be empty. When there are errors, this field will contain an array of Diagnostic objects to help you troubleshoot.

      • (dict) --

        Describes an error found during validation. Validation errors found in the definition return in the response as diagnostic elements , rather than raise an exception.

        • severity (string) --

          A value of ERROR means that you cannot create or update a state machine with this definition.

        • code (string) --

          Identifying code for the diagnostic.

        • message (string) --

          Message describing the diagnostic condition.

        • location (string) --

          Location of the issue in the state machine, if available.

          For errors specific to a field, the location could be in the format: /States/<StateName>/<FieldName> , for example: /States/FailState/ErrorPath .

    • truncated (boolean) --

      The result value will be true if the number of diagnostics found in the workflow definition exceeds maxResults . When all diagnostics results are returned, the value will be false .