update-state
Updates the dynamoDB state database with the State Function execution results.
Completion of a State Function execution can also be used to chain additonal workflow steps with pushing messages to SQS or SNS for additional steps beyond the core cirrus workflow, like triggering a lambda to push an output STAC Item to a STAC API.
Trigger
The update-state
lambda listens for terminal events output by a State Function
that is executing a cirrus workflow/task. These terminal states are not an
exclusive list of possible states in the StateDB.
“SUCCEEDED”: the successful completion of a cirrus workflow
“FAILED”: A failed execution. This can occur for a variety of reasons
“ABORTED”: The state machinea was forced to abort execution. Can be triggered by manual termination of a workflow.
“TIMED OUT”: State machine terminated due to time out. Can occur if a third party resource involved in a task hangs, or a workflow configuration did not allow sufficient time for a task to complete.
StateDB Updates
Updating the DynamoDB state database is the core functionality of the
update-state
lambda.
In addition to updating DynamoDB the update-state
lambda also fires off events
to AWS TimeStream with each state update.
The update-state
lambda additionally logs any errors that come from the
StateMachine so they can be captured and anlyzed in the log stream.
update-state
can send messages to configured SNS topics to provide
notifications to users or downstream services when events and/or output items
are produced. It may also be used to facilitate workflow chaining by
requeuing payloads in the process
queue.