SFN / Client / update_state_machine
update_state_machine#
- SFN.Client.update_state_machine(**kwargs)#
Updates an existing state machine by modifying its
definition
,roleArn
,loggingConfiguration
, orEncryptionConfiguration
. Running executions will continue to use the previousdefinition
androleArn
. You must include at least one ofdefinition
orroleArn
or you will receive aMissingRequiredParameter
error.A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN
arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel
refers to a Distributed Map state with a labelmapStateLabel
in the state machine namedstateMachineName
.A qualified state machine ARN can either refer to a Distributed Map state defined within a state machine, a version ARN, or an alias ARN.
The following are some examples of qualified and unqualified state machine ARNs:
The following qualified state machine ARN refers to a Distributed Map state with a label
mapStateLabel
in a state machine namedmyStateMachine
.arn:partition:states:region:account-id:stateMachine:myStateMachine/mapStateLabel
Note
If you provide a qualified state machine ARN that refers to a Distributed Map state, the request fails with
ValidationException
.The following qualified state machine ARN refers to an alias named
PROD
.arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine:PROD>
Note
If you provide a qualified state machine ARN that refers to a version ARN or an alias ARN, the request starts execution for that version or alias.
The following unqualified state machine ARN refers to a state machine named
myStateMachine
.arn:<partition>:states:<region>:<account-id>:stateMachine:<myStateMachine>
After you update your state machine, you can set the
publish
parameter totrue
in the same action to publish a new version. This way, you can opt-in to strict versioning of your state machine.Note
Step Functions assigns monotonically increasing integers for state machine versions, starting at version number 1.
Note
All
StartExecution
calls within a few seconds use the updateddefinition
androleArn
. Executions started immediately after you callUpdateStateMachine
may use the previous state machinedefinition
androleArn
.See also: AWS API Documentation
Request Syntax
response = client.update_state_machine( stateMachineArn='string', definition='string', roleArn='string', loggingConfiguration={ 'level': 'ALL'|'ERROR'|'FATAL'|'OFF', 'includeExecutionData': True|False, 'destinations': [ { 'cloudWatchLogsLogGroup': { 'logGroupArn': 'string' } }, ] }, tracingConfiguration={ 'enabled': True|False }, publish=True|False, versionDescription='string', encryptionConfiguration={ 'kmsKeyId': 'string', 'kmsDataKeyReusePeriodSeconds': 123, 'type': 'AWS_OWNED_KEY'|'CUSTOMER_MANAGED_KMS_KEY' } )
- Parameters:
stateMachineArn (string) –
[REQUIRED]
The Amazon Resource Name (ARN) of the state machine.
definition (string) – The Amazon States Language definition of the state machine. See Amazon States Language.
roleArn (string) – The Amazon Resource Name (ARN) of the IAM role of the state machine.
loggingConfiguration (dict) –
Use the
LoggingConfiguration
data type to set CloudWatch Logs options.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
:*
tracingConfiguration (dict) –
Selects whether X-Ray tracing is enabled.
enabled (boolean) –
When set to
true
, X-Ray tracing is enabled.
publish (boolean) – Specifies whether the state machine version is published. The default is
false
. To publish a version after updating the state machine, setpublish
totrue
.versionDescription (string) –
An optional description of the state machine version to publish.
You can only specify the
versionDescription
parameter if you’ve setpublish
totrue
.encryptionConfiguration (dict) –
Settings to configure server-side encryption.
kmsKeyId (string) –
An alias, alias ARN, key ID, or key ARN of a symmetric encryption KMS key to encrypt data. To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN.
kmsDataKeyReusePeriodSeconds (integer) –
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call
GenerateDataKey
. Only applies to customer managed keys.type (string) – [REQUIRED]
Encryption type
- Return type:
dict
- Returns:
Response Syntax
{ 'updateDate': datetime(2015, 1, 1), 'revisionId': 'string', 'stateMachineVersionArn': 'string' }
Response Structure
(dict) –
updateDate (datetime) –
The date and time the state machine was updated.
revisionId (string) –
The revision identifier for the updated state machine.
stateMachineVersionArn (string) –
The Amazon Resource Name (ARN) of the published state machine version.
If the
publish
parameter isn’t set totrue
, this field returns null.
Exceptions
SFN.Client.exceptions.InvalidArn
SFN.Client.exceptions.InvalidDefinition
SFN.Client.exceptions.InvalidLoggingConfiguration
SFN.Client.exceptions.InvalidTracingConfiguration
SFN.Client.exceptions.MissingRequiredParameter
SFN.Client.exceptions.StateMachineDeleting
SFN.Client.exceptions.StateMachineDoesNotExist
SFN.Client.exceptions.ServiceQuotaExceededException
SFN.Client.exceptions.ConflictException
SFN.Client.exceptions.ValidationException
SFN.Client.exceptions.InvalidEncryptionConfiguration
SFN.Client.exceptions.KmsAccessDeniedException
SFN.Client.exceptions.KmsThrottlingException