enum EventEvaluation
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.IoTEvents.EventEvaluation |
Java | software.amazon.awscdk.services.iotevents.EventEvaluation |
Python | aws_cdk.aws_iotevents.EventEvaluation |
TypeScript (source) | @aws-cdk/aws-iotevents » EventEvaluation |
Information about the order in which events are evaluated and how actions are executed.
Example
import * as iotevents from '@aws-cdk/aws-iotevents';
import * as actions from '@aws-cdk/aws-iotevents-actions';
import * as lambda from '@aws-cdk/aws-lambda';
declare const func: lambda.IFunction;
const input = new iotevents.Input(this, 'MyInput', {
inputName: 'my_input', // optional
attributeJsonPaths: ['payload.deviceId', 'payload.temperature'],
});
const warmState = new iotevents.State({
stateName: 'warm',
onEnter: [{
eventName: 'test-enter-event',
condition: iotevents.Expression.currentInput(input),
actions: [new actions.LambdaInvokeAction(func)], // optional
}],
onInput: [{ // optional
eventName: 'test-input-event',
actions: [new actions.LambdaInvokeAction(func)],
}],
onExit: [{ // optional
eventName: 'test-exit-event',
actions: [new actions.LambdaInvokeAction(func)],
}],
});
const coldState = new iotevents.State({
stateName: 'cold',
});
// transit to coldState when temperature is less than 15
warmState.transitionTo(coldState, {
eventName: 'to_coldState', // optional property, default by combining the names of the States
when: iotevents.Expression.lt(
iotevents.Expression.inputAttribute(input, 'payload.temperature'),
iotevents.Expression.fromString('15'),
),
executing: [new actions.LambdaInvokeAction(func)], // optional
});
// transit to warmState when temperature is greater than or equal to 15
coldState.transitionTo(warmState, {
when: iotevents.Expression.gte(
iotevents.Expression.inputAttribute(input, 'payload.temperature'),
iotevents.Expression.fromString('15'),
),
});
new iotevents.DetectorModel(this, 'MyDetectorModel', {
detectorModelName: 'test-detector-model', // optional
description: 'test-detector-model-description', // optional property, default is none
evaluationMethod: iotevents.EventEvaluation.SERIAL, // optional property, default is iotevents.EventEvaluation.BATCH
detectorKey: 'payload.deviceId', // optional property, default is none and single detector instance will be created and all inputs will be routed to it
initialState: warmState,
});
Members
Name | Description |
---|---|
BATCH | When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated. |
SERIAL | When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined. |
BATCH
When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated.
SERIAL
When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined.