SFN / Client / create_state_machine
create_state_machine#
- SFN.Client.create_state_machine(**kwargs)#
- Creates a state machine. A state machine consists of a collection of states that can do work ( - Taskstates), determine to which states to transition next (- Choicestates), stop an execution with an error (- Failstates), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the Step Functions User Guide.- Note- This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes. - Note- CreateStateMachineis an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created.- CreateStateMachine’s idempotency check is based on the state machine- name,- definition,- type,- LoggingConfigurationand- TracingConfiguration. If a following request has a different- roleArnor- tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case,- roleArnand- tagswill not be updated, even if they are different.- See also: AWS API Documentation - Request Syntax- response = client.create_state_machine( name='string', definition='string', roleArn='string', type='STANDARD'|'EXPRESS', loggingConfiguration={ 'level': 'ALL'|'ERROR'|'FATAL'|'OFF', 'includeExecutionData': True|False, 'destinations': [ { 'cloudWatchLogsLogGroup': { 'logGroupArn': 'string' } }, ] }, tags=[ { 'key': 'string', 'value': 'string' }, ], tracingConfiguration={ 'enabled': True|False } ) - Parameters:
- name (string) – - [REQUIRED] - The name of the state machine. - A name must not contain: - white space 
- brackets - < > { } [ ]
- wildcard characters - ? *
- special characters - " # % \ ^ | ~ ` $ & , ; : /
- control characters ( - U+0000-001F,- U+007F-009F)
 - To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _. 
- definition (string) – - [REQUIRED] - The Amazon States Language definition of the state machine. See Amazon States Language. 
- roleArn (string) – - [REQUIRED] - The Amazon Resource Name (ARN) of the IAM role to use for this state machine. 
- type (string) – Determines whether a Standard or Express state machine is created. The default is - STANDARD. You cannot update the- typeof a state machine once it has been created.
- loggingConfiguration (dict) – - Defines what execution history events are logged and where they are logged. - Note- By default, the - levelis set to- OFF. For more information see Log Levels in the Step Functions User Guide.- level (string) – - Defines which category of execution history events are logged. 
- includeExecutionData (boolean) – - Determines whether execution data is included in your log. When set to - false, data is excluded.
- destinations (list) – - An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to - OFF.- (dict) – - cloudWatchLogsLogGroup (dict) – - An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the CloudFormation User Guide. - logGroupArn (string) – - The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with - :*
 
 
 
 
- tags (list) – - Tags to be added when creating a state machine. - An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags. - Tags may only contain Unicode letters, digits, white space, or these symbols: - _ . : / = + - @.- (dict) – - Tags are key-value pairs that can be associated with Step Functions state machines and activities. - An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags. - Tags may only contain Unicode letters, digits, white space, or these symbols: - _ . : / = + - @.- key (string) – - The key of a tag. 
- value (string) – - The value of a tag. 
 
 
- tracingConfiguration (dict) – - Selects whether X-Ray tracing is enabled. - enabled (boolean) – - When set to - true, X-Ray tracing is enabled.
 
 
- Return type:
- dict 
- Returns:
- Response Syntax- { 'stateMachineArn': 'string', 'creationDate': datetime(2015, 1, 1) } - Response Structure- (dict) – - stateMachineArn (string) – - The Amazon Resource Name (ARN) that identifies the created state machine. 
- creationDate (datetime) – - The date the state machine is created. 
 
 
 - Exceptions- SFN.Client.exceptions.InvalidArn
- SFN.Client.exceptions.InvalidDefinition
- SFN.Client.exceptions.InvalidName
- SFN.Client.exceptions.InvalidLoggingConfiguration
- SFN.Client.exceptions.InvalidTracingConfiguration
- SFN.Client.exceptions.StateMachineAlreadyExists
- SFN.Client.exceptions.StateMachineDeleting
- SFN.Client.exceptions.StateMachineLimitExceeded
- SFN.Client.exceptions.StateMachineTypeNotSupported
- SFN.Client.exceptions.TooManyTags