class DetectorModel (construct)
Language | Type name |
---|---|
![]() | Amazon.CDK.AWS.IoTEvents.Alpha.DetectorModel |
![]() | github.com/aws/aws-cdk-go/awscdkioteventsalpha/v2#DetectorModel |
![]() | software.amazon.awscdk.services.iotevents.alpha.DetectorModel |
![]() | aws_cdk.aws_iotevents_alpha.DetectorModel |
![]() | @aws-cdk/aws-iotevents-alpha ยป DetectorModel |
Implements
IConstruct
, IDependable
, IResource
, IDetector
Defines an AWS IoT Events detector model in this stack.
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,
});
Initializer
new DetectorModel(scope: Construct, id: string, props: DetectorModelProps)
Parameters
- scope
Construct
- id
string
- props
Detector
Model Props
Construct Props
Name | Type | Description |
---|---|---|
initial | State | The state that is entered at the creation of each detector. |
description? | string | A brief description of the detector model. |
detector | string | The value used to identify a detector instance. |
detector | string | The name of the detector model. |
evaluation | Event | Information about the order in which events are evaluated and how actions are executed. |
role? | IRole | The role that grants permission to AWS IoT Events to perform its operations. |
initialState
Type:
State
The state that is entered at the creation of each detector.
description?
Type:
string
(optional, default: none)
A brief description of the detector model.
detectorKey?
Type:
string
(optional, default: none (single detector instance will be created and all inputs will be routed to it))
The value used to identify a detector instance.
When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.
This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.
detectorModelName?
Type:
string
(optional, default: CloudFormation will generate a unique name of the detector model)
The name of the detector model.
evaluationMethod?
Type:
Event
(optional, default: EventEvaluation.BATCH)
Information about the order in which events are evaluated and how actions are executed.
When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined. When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated.
role?
Type:
IRole
(optional, default: a role will be created with default permissions)
The role that grants permission to AWS IoT Events to perform its operations.
Properties
Name | Type | Description |
---|---|---|
detector | string | The name of the detector model. |
env | Resource | The environment this resource belongs to. |
node | Node | The tree node. |
stack | Stack | The stack in which this resource is defined. |
detectorModelName
Type:
string
The name of the detector model.
env
Type:
Resource
The environment this resource belongs to.
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
node
Type:
Node
The tree node.
stack
Type:
Stack
The stack in which this resource is defined.
Methods
Name | Description |
---|---|
apply | Apply the given removal policy to this resource. |
to | Returns a string representation of this construct. |
static from | Import an existing detector model. |
applyRemovalPolicy(policy)
public applyRemovalPolicy(policy: RemovalPolicy): void
Parameters
- policy
Removal
Policy
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY
), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
toString()
public toString(): string
Returns
string
Returns a string representation of this construct.
static fromDetectorModelName(scope, id, detectorModelName)
public static fromDetectorModelName(scope: Construct, id: string, detectorModelName: string): IDetectorModel
Parameters
- scope
Construct
- id
string
- detectorModelName
string
Returns
Import an existing detector model.