@aws-cdk_aws-iotevents-alpha.EventEvaluation

enum EventEvaluation ๐Ÿ”น

LanguageType name
.NETAmazon.CDK.AWS.IoTEvents.Alpha.EventEvaluation
Gogithub.com/aws/aws-cdk-go/awscdkioteventsalpha/v2#EventEvaluation
Javasoftware.amazon.awscdk.services.iotevents.alpha.EventEvaluation
Pythonaws_cdk.aws_iotevents_alpha.EventEvaluation
TypeScript (source)@aws-cdk/aws-iotevents-alpha ยป EventEvaluation

Information about the order in which events are evaluated and how actions are executed.

Example

import * as iotevents from '@aws-cdk/aws-iotevents-alpha';
import * as actions from '@aws-cdk/aws-iotevents-actions-alpha';
import * as lambda from 'aws-cdk-lib/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

NameDescription
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.