Class EvaluateExpressionProps
Properties for EvaluateExpression.
Implements
Inherited Members
Namespace: Amazon.CDK.AWS.StepFunctions.Tasks
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class EvaluateExpressionProps : IEvaluateExpressionProps, ITaskStateBaseProps, IStateBaseProps, ITaskStateBaseOptions, IAssignableStateOptions, IJsonPathCommonOptions, IJsonataCommonOptions
Syntax (vb)
Public Class EvaluateExpressionProps Implements IEvaluateExpressionProps, ITaskStateBaseProps, IStateBaseProps, ITaskStateBaseOptions, IAssignableStateOptions, IJsonPathCommonOptions, IJsonataCommonOptions
Remarks
ExampleMetadata: infused
Examples
var convertToSeconds = new EvaluateExpression(this, "Convert to seconds", new EvaluateExpressionProps {
Expression = "$.waitMilliseconds / 1000",
ResultPath = "$.waitSeconds"
});
var createMessage = new EvaluateExpression(this, "Create message", new EvaluateExpressionProps {
// Note: this is a string inside a string.
Expression = "`Now waiting ${$.waitSeconds} seconds...`",
Runtime = Runtime.NODEJS_LATEST,
ResultPath = "$.message"
});
var publishMessage = new SnsPublish(this, "Publish message", new SnsPublishProps {
Topic = new Topic(this, "cool-topic"),
Message = TaskInput.FromJsonPathAt("$.message"),
ResultPath = "$.sns"
});
var wait = new Wait(this, "Wait", new WaitProps {
Time = WaitTime.SecondsPath("$.waitSeconds")
});
new StateMachine(this, "StateMachine", new StateMachineProps {
Definition = convertToSeconds.Next(createMessage).Next(publishMessage).Next(wait)
});
Synopsis
Constructors
| EvaluateExpressionProps() | Properties for EvaluateExpression. |
Properties
| Architecture | The system architecture compatible with this lambda function. |
| Assign | Workflow variables to store in this step. |
| Comment | A comment describing this state. |
| Credentials | Credentials for an IAM Role that the State Machine assumes for executing the task. |
| Expression | The expression to evaluate. The expression may contain state paths. |
| Heartbeat | (deprecated) Timeout for the heartbeat. |
| HeartbeatTimeout | Timeout for the heartbeat. |
| InputPath | JSONPath expression to select part of the state to be the input to this state. |
| IntegrationPattern | AWS Step Functions integrates with services directly in the Amazon States Language. |
| OutputPath | JSONPath expression to select part of the state to be the output to this state. |
| Outputs | Used to specify and transform output from the state. |
| QueryLanguage | The name of the query language used by the state. |
| ResultPath | JSONPath expression to indicate where to inject the state's output. |
| ResultSelector | The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. |
| Runtime | The runtime language to use to evaluate the expression. |
| StateName | Optional name for this state. |
| TaskTimeout | Timeout for the task. |
| Timeout | (deprecated) Timeout for the task. |
Constructors
EvaluateExpressionProps()
Properties for EvaluateExpression.
public EvaluateExpressionProps()
Remarks
ExampleMetadata: infused
Examples
var convertToSeconds = new EvaluateExpression(this, "Convert to seconds", new EvaluateExpressionProps {
Expression = "$.waitMilliseconds / 1000",
ResultPath = "$.waitSeconds"
});
var createMessage = new EvaluateExpression(this, "Create message", new EvaluateExpressionProps {
// Note: this is a string inside a string.
Expression = "`Now waiting ${$.waitSeconds} seconds...`",
Runtime = Runtime.NODEJS_LATEST,
ResultPath = "$.message"
});
var publishMessage = new SnsPublish(this, "Publish message", new SnsPublishProps {
Topic = new Topic(this, "cool-topic"),
Message = TaskInput.FromJsonPathAt("$.message"),
ResultPath = "$.sns"
});
var wait = new Wait(this, "Wait", new WaitProps {
Time = WaitTime.SecondsPath("$.waitSeconds")
});
new StateMachine(this, "StateMachine", new StateMachineProps {
Definition = convertToSeconds.Next(createMessage).Next(publishMessage).Next(wait)
});
Properties
Architecture
The system architecture compatible with this lambda function.
public Architecture? Architecture { get; set; }
Property Value
Remarks
ARM64 architecture support varies by AWS region. Please verify that your deployment region supports Lambda functions with ARM64 architecture before specifying Architecture.ARM_64.
Default: Architecture.X86_64
Assign
Workflow variables to store in this step.
public IDictionary<string, object>? Assign { get; set; }
Property Value
Remarks
Using workflow variables, you can store data in a step and retrieve that data in future steps.
Default: - Not assign variables
See: https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html
Comment
A comment describing this state.
public string? Comment { get; set; }
Property Value
Remarks
Default: No comment
Credentials
Credentials for an IAM Role that the State Machine assumes for executing the task.
public ICredentials? Credentials { get; set; }
Property Value
Remarks
This enables cross-account resource invocations.
Default: - None (Task is executed using the State Machine's execution role)
See: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html
Expression
The expression to evaluate. The expression may contain state paths.
public string Expression { get; set; }
Property Value
Remarks
Example value: '$.a + $.b'
Heartbeat
(deprecated) Timeout for the heartbeat.
[Obsolete("use `heartbeatTimeout`")]
public Duration? Heartbeat { get; set; }
Property Value
Remarks
Default: - None
Stability: Deprecated
HeartbeatTimeout
Timeout for the heartbeat.
public Timeout? HeartbeatTimeout { get; set; }
Property Value
Remarks
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
Default: - None
InputPath
JSONPath expression to select part of the state to be the input to this state.
public string? InputPath { get; set; }
Property Value
Remarks
May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}.
Default: $
IntegrationPattern
AWS Step Functions integrates with services directly in the Amazon States Language.
public IntegrationPattern? IntegrationPattern { get; set; }
Property Value
Remarks
You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
Default: - IntegrationPattern.REQUEST_RESPONSE for most tasks.
IntegrationPattern.RUN_JOB for the following exceptions:
BatchSubmitJob, EmrAddStep, EmrCreateCluster, EmrTerminationCluster, and EmrContainersStartJobRun.
See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html
OutputPath
JSONPath expression to select part of the state to be the output to this state.
public string? OutputPath { get; set; }
Property Value
Remarks
May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}.
Default: $
Outputs
Used to specify and transform output from the state.
public object? Outputs { get; set; }
Property Value
Remarks
When specified, the value overrides the state output default. The output field accepts any JSON value (object, array, string, number, boolean, null). Any string value, including those inside objects or arrays, will be evaluated as JSONata if surrounded by {% %} characters. Output also accepts a JSONata expression directly.
Default: - $states.result or $states.errorOutput
See: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-input-output-filtering.html
QueryLanguage
The name of the query language used by the state.
public QueryLanguage? QueryLanguage { get; set; }
Property Value
Remarks
If the state does not contain a queryLanguage field,
then it will use the query language specified in the top-level queryLanguage field.
Default: - JSONPath
ResultPath
JSONPath expression to indicate where to inject the state's output.
public string? ResultPath { get; set; }
Property Value
Remarks
May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output.
Default: $
ResultSelector
The JSON that will replace the state's raw result and become the effective result before ResultPath is applied.
public IDictionary<string, object>? ResultSelector { get; set; }
Property Value
Remarks
You can use ResultSelector to create a payload with values that are static or selected from the state's raw result.
Default: - None
Runtime
The runtime language to use to evaluate the expression.
public Runtime? Runtime { get; set; }
Property Value
Remarks
Default: - the latest Lambda node runtime available in your region.
StateName
Optional name for this state.
public string? StateName { get; set; }
Property Value
Remarks
Default: - The construct ID will be used as state name
TaskTimeout
Timeout for the task.
public Timeout? TaskTimeout { get; set; }
Property Value
Remarks
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
Default: - None
Timeout
(deprecated) Timeout for the task.
[Obsolete("use `taskTimeout`")]
public Duration? Timeout { get; set; }
Property Value
Remarks
Default: - None
Stability: Deprecated