Documentation ¶
Index ¶
- func NewCloudWatchLogsAction_Override(c CloudWatchLogsAction, logGroup awslogs.ILogGroup, ...)
- func NewCloudWatchPutMetricAction_Override(c CloudWatchPutMetricAction, props *CloudWatchPutMetricActionProps)
- func NewCloudWatchSetAlarmStateAction_Override(c CloudWatchSetAlarmStateAction, alarm awscloudwatch.IAlarm, ...)
- func NewFirehosePutRecordAction_Override(f FirehosePutRecordAction, stream awskinesisfirehose.IDeliveryStream, ...)
- func NewIotRepublishMqttAction_Override(i IotRepublishMqttAction, topic *string, props *IotRepublishMqttActionProps)
- func NewKinesisPutRecordAction_Override(k KinesisPutRecordAction, stream awskinesis.IStream, ...)
- func NewLambdaFunctionAction_Override(l LambdaFunctionAction, func_ awslambda.IFunction)
- func NewS3PutObjectAction_Override(s S3PutObjectAction, bucket awss3.IBucket, props *S3PutObjectActionProps)
- func NewSnsTopicAction_Override(s SnsTopicAction, topic awssns.ITopic, props *SnsTopicActionProps)
- func NewSqsQueueAction_Override(s SqsQueueAction, queue awssqs.IQueue, props *SqsQueueActionProps)
- type CloudWatchLogsAction
- type CloudWatchLogsActionProps
- type CloudWatchPutMetricAction
- type CloudWatchPutMetricActionProps
- type CloudWatchSetAlarmStateAction
- type CloudWatchSetAlarmStateActionProps
- type CommonActionProps
- type FirehosePutRecordAction
- type FirehosePutRecordActionProps
- type FirehoseRecordSeparator
- type IotRepublishMqttAction
- type IotRepublishMqttActionProps
- type KinesisPutRecordAction
- type KinesisPutRecordActionProps
- type LambdaFunctionAction
- type MqttQualityOfService
- type S3PutObjectAction
- type S3PutObjectActionProps
- type SnsActionMessageFormat
- type SnsTopicAction
- type SnsTopicActionProps
- type SqsQueueAction
- type SqsQueueActionProps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewCloudWatchLogsAction_Override ¶
func NewCloudWatchLogsAction_Override(c CloudWatchLogsAction, logGroup awslogs.ILogGroup, props *CloudWatchLogsActionProps)
Experimental.
func NewCloudWatchPutMetricAction_Override ¶
func NewCloudWatchPutMetricAction_Override(c CloudWatchPutMetricAction, props *CloudWatchPutMetricActionProps)
Experimental.
func NewCloudWatchSetAlarmStateAction_Override ¶
func NewCloudWatchSetAlarmStateAction_Override(c CloudWatchSetAlarmStateAction, alarm awscloudwatch.IAlarm, props *CloudWatchSetAlarmStateActionProps)
Experimental.
func NewFirehosePutRecordAction_Override ¶
func NewFirehosePutRecordAction_Override(f FirehosePutRecordAction, stream awskinesisfirehose.IDeliveryStream, props *FirehosePutRecordActionProps)
Experimental.
func NewIotRepublishMqttAction_Override ¶
func NewIotRepublishMqttAction_Override(i IotRepublishMqttAction, topic *string, props *IotRepublishMqttActionProps)
Experimental.
func NewKinesisPutRecordAction_Override ¶
func NewKinesisPutRecordAction_Override(k KinesisPutRecordAction, stream awskinesis.IStream, props *KinesisPutRecordActionProps)
Experimental.
func NewLambdaFunctionAction_Override ¶
func NewLambdaFunctionAction_Override(l LambdaFunctionAction, func_ awslambda.IFunction)
Experimental.
func NewS3PutObjectAction_Override ¶
func NewS3PutObjectAction_Override(s S3PutObjectAction, bucket awss3.IBucket, props *S3PutObjectActionProps)
Experimental.
func NewSnsTopicAction_Override ¶
func NewSnsTopicAction_Override(s SnsTopicAction, topic awssns.ITopic, props *SnsTopicActionProps)
Experimental.
func NewSqsQueueAction_Override ¶
func NewSqsQueueAction_Override(s SqsQueueAction, queue awssqs.IQueue, props *SqsQueueActionProps)
Experimental.
Types ¶
type CloudWatchLogsAction ¶
type CloudWatchLogsAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to send data to Amazon CloudWatch Logs.
Example:
import logs "github.com/aws/aws-cdk-go/awscdk" logGroup := logs.NewLogGroup(this, jsii.String("MyLogGroup")) iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, timestamp() as timestamp FROM 'device/+/data'")), errorAction: actions.NewCloudWatchLogsAction(logGroup), })
Experimental.
func NewCloudWatchLogsAction ¶
func NewCloudWatchLogsAction(logGroup awslogs.ILogGroup, props *CloudWatchLogsActionProps) CloudWatchLogsAction
Experimental.
type CloudWatchLogsActionProps ¶
type CloudWatchLogsActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` }
Configuration properties of an action for CloudWatch Logs.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role cloudWatchLogsActionProps := &cloudWatchLogsActionProps{ role: role, }
Experimental.
type CloudWatchPutMetricAction ¶
type CloudWatchPutMetricAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to capture an Amazon CloudWatch metric.
Example:
topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, namespace, unit, value, timestamp FROM 'device/+/data'")), actions: []iAction{ actions.NewCloudWatchPutMetricAction(&cloudWatchPutMetricActionProps{ metricName: jsii.String("${topic(2)}"), metricNamespace: jsii.String("${namespace}"), metricUnit: jsii.String("${unit}"), metricValue: jsii.String("${value}"), metricTimestamp: jsii.String("${timestamp}"), }), }, })
Experimental.
func NewCloudWatchPutMetricAction ¶
func NewCloudWatchPutMetricAction(props *CloudWatchPutMetricActionProps) CloudWatchPutMetricAction
Experimental.
type CloudWatchPutMetricActionProps ¶
type CloudWatchPutMetricActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The CloudWatch metric name. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. MetricName *string `field:"required" json:"metricName" yaml:"metricName"` // The CloudWatch metric namespace name. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. MetricNamespace *string `field:"required" json:"metricNamespace" yaml:"metricNamespace"` // The metric unit supported by CloudWatch. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. MetricUnit *string `field:"required" json:"metricUnit" yaml:"metricUnit"` // A string that contains the CloudWatch metric value. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. MetricValue *string `field:"required" json:"metricValue" yaml:"metricValue"` // A string that contains the timestamp, expressed in seconds in Unix epoch time. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. MetricTimestamp *string `field:"optional" json:"metricTimestamp" yaml:"metricTimestamp"` }
Configuration properties of an action for CloudWatch metric.
Example:
topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, namespace, unit, value, timestamp FROM 'device/+/data'")), actions: []iAction{ actions.NewCloudWatchPutMetricAction(&cloudWatchPutMetricActionProps{ metricName: jsii.String("${topic(2)}"), metricNamespace: jsii.String("${namespace}"), metricUnit: jsii.String("${unit}"), metricValue: jsii.String("${value}"), metricTimestamp: jsii.String("${timestamp}"), }), }, })
Experimental.
type CloudWatchSetAlarmStateAction ¶
type CloudWatchSetAlarmStateAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(topicRule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to change the state of an Amazon CloudWatch alarm.
Example:
import cloudwatch "github.com/aws/aws-cdk-go/awscdk" metric := cloudwatch.NewMetric(&metricProps{ namespace: jsii.String("MyNamespace"), metricName: jsii.String("MyMetric"), dimensions: map[string]interface{}{ "MyDimension": jsii.String("MyDimensionValue"), }, }) alarm := cloudwatch.NewAlarm(this, jsii.String("MyAlarm"), &alarmProps{ metric: metric, threshold: jsii.Number(100), evaluationPeriods: jsii.Number(3), datapointsToAlarm: jsii.Number(2), }) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id FROM 'device/+/data'")), actions: []iAction{ actions.NewCloudWatchSetAlarmStateAction(alarm, &cloudWatchSetAlarmStateActionProps{ reason: jsii.String("AWS Iot Rule action is triggered"), alarmStateToSet: cloudwatch.alarmState_ALARM, }), }, })
Experimental.
func NewCloudWatchSetAlarmStateAction ¶
func NewCloudWatchSetAlarmStateAction(alarm awscloudwatch.IAlarm, props *CloudWatchSetAlarmStateActionProps) CloudWatchSetAlarmStateAction
Experimental.
type CloudWatchSetAlarmStateActionProps ¶
type CloudWatchSetAlarmStateActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The value of the alarm state to set. // Experimental. AlarmStateToSet awscloudwatch.AlarmState `field:"required" json:"alarmStateToSet" yaml:"alarmStateToSet"` // The reason for the alarm change. // Experimental. Reason *string `field:"optional" json:"reason" yaml:"reason"` }
Configuration properties of an action for CloudWatch alarm.
Example:
import cloudwatch "github.com/aws/aws-cdk-go/awscdk" metric := cloudwatch.NewMetric(&metricProps{ namespace: jsii.String("MyNamespace"), metricName: jsii.String("MyMetric"), dimensions: map[string]interface{}{ "MyDimension": jsii.String("MyDimensionValue"), }, }) alarm := cloudwatch.NewAlarm(this, jsii.String("MyAlarm"), &alarmProps{ metric: metric, threshold: jsii.Number(100), evaluationPeriods: jsii.Number(3), datapointsToAlarm: jsii.Number(2), }) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id FROM 'device/+/data'")), actions: []iAction{ actions.NewCloudWatchSetAlarmStateAction(alarm, &cloudWatchSetAlarmStateActionProps{ reason: jsii.String("AWS Iot Rule action is triggered"), alarmStateToSet: cloudwatch.alarmState_ALARM, }), }, })
Experimental.
type CommonActionProps ¶
type CommonActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` }
Common properties shared by Actions it access to AWS service.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role commonActionProps := &commonActionProps{ role: role, }
Experimental.
type FirehosePutRecordAction ¶
type FirehosePutRecordAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to put the record from an MQTT message to the Kinesis Data Firehose stream.
Example:
import firehose "github.com/aws/aws-cdk-go/awscdk" import destinations "github.com/aws/aws-cdk-go/awscdk" bucket := s3.NewBucket(this, jsii.String("MyBucket")) stream := firehose.NewDeliveryStream(this, jsii.String("MyStream"), &deliveryStreamProps{ destinations: []iDestination{ destinations.NewS3Bucket(bucket), }, }) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), actions: []iAction{ actions.NewFirehosePutRecordAction(stream, &firehosePutRecordActionProps{ batchMode: jsii.Boolean(true), recordSeparator: actions.firehoseRecordSeparator_NEWLINE, }), }, })
Experimental.
func NewFirehosePutRecordAction ¶
func NewFirehosePutRecordAction(stream awskinesisfirehose.IDeliveryStream, props *FirehosePutRecordActionProps) FirehosePutRecordAction
Experimental.
type FirehosePutRecordActionProps ¶
type FirehosePutRecordActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // Whether to deliver the Kinesis Data Firehose stream as a batch by using `PutRecordBatch`. // // When batchMode is true and the rule's SQL statement evaluates to an Array, each Array // element forms one record in the PutRecordBatch request. The resulting array can't have // more than 500 records. // Experimental. BatchMode *bool `field:"optional" json:"batchMode" yaml:"batchMode"` // A character separator that will be used to separate records written to the Kinesis Data Firehose stream. // Experimental. RecordSeparator FirehoseRecordSeparator `field:"optional" json:"recordSeparator" yaml:"recordSeparator"` }
Configuration properties of an action for the Kinesis Data Firehose stream.
Example:
import firehose "github.com/aws/aws-cdk-go/awscdk" import destinations "github.com/aws/aws-cdk-go/awscdk" bucket := s3.NewBucket(this, jsii.String("MyBucket")) stream := firehose.NewDeliveryStream(this, jsii.String("MyStream"), &deliveryStreamProps{ destinations: []iDestination{ destinations.NewS3Bucket(bucket), }, }) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), actions: []iAction{ actions.NewFirehosePutRecordAction(stream, &firehosePutRecordActionProps{ batchMode: jsii.Boolean(true), recordSeparator: actions.firehoseRecordSeparator_NEWLINE, }), }, })
Experimental.
type FirehoseRecordSeparator ¶
type FirehoseRecordSeparator string
Record Separator to be used to separate records.
Example:
import firehose "github.com/aws/aws-cdk-go/awscdk" import destinations "github.com/aws/aws-cdk-go/awscdk" bucket := s3.NewBucket(this, jsii.String("MyBucket")) stream := firehose.NewDeliveryStream(this, jsii.String("MyStream"), &deliveryStreamProps{ destinations: []iDestination{ destinations.NewS3Bucket(bucket), }, }) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), actions: []iAction{ actions.NewFirehosePutRecordAction(stream, &firehosePutRecordActionProps{ batchMode: jsii.Boolean(true), recordSeparator: actions.firehoseRecordSeparator_NEWLINE, }), }, })
Experimental.
const ( // Separate by a new line. // Experimental. FirehoseRecordSeparator_NEWLINE FirehoseRecordSeparator = "NEWLINE" // Separate by a tab. // Experimental. FirehoseRecordSeparator_TAB FirehoseRecordSeparator = "TAB" // Separate by a windows new line. // Experimental. FirehoseRecordSeparator_WINDOWS_NEWLINE FirehoseRecordSeparator = "WINDOWS_NEWLINE" // Separate by a commma. // Experimental. FirehoseRecordSeparator_COMMA FirehoseRecordSeparator = "COMMA" )
type IotRepublishMqttAction ¶
type IotRepublishMqttAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to put the record from an MQTT message to republish another MQTT topic.
Example:
iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, timestamp() as timestamp, temperature FROM 'device/+/data'")), actions: []iAction{ actions.NewIotRepublishMqttAction(jsii.String("${topic()}/republish"), &iotRepublishMqttActionProps{ qualityOfService: actions.mqttQualityOfService_AT_LEAST_ONCE, }), }, })
Experimental.
func NewIotRepublishMqttAction ¶
func NewIotRepublishMqttAction(topic *string, props *IotRepublishMqttActionProps) IotRepublishMqttAction
Experimental.
type IotRepublishMqttActionProps ¶
type IotRepublishMqttActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The Quality of Service (QoS) level to use when republishing messages. // See: https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt-qos // // Experimental. QualityOfService MqttQualityOfService `field:"optional" json:"qualityOfService" yaml:"qualityOfService"` }
Configuration properties of an action to republish MQTT messages.
Example:
iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, timestamp() as timestamp, temperature FROM 'device/+/data'")), actions: []iAction{ actions.NewIotRepublishMqttAction(jsii.String("${topic()}/republish"), &iotRepublishMqttActionProps{ qualityOfService: actions.mqttQualityOfService_AT_LEAST_ONCE, }), }, })
Experimental.
type KinesisPutRecordAction ¶
type KinesisPutRecordAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to put the record from an MQTT message to the Kinesis Data stream.
Example:
import kinesis "github.com/aws/aws-cdk-go/awscdk" stream := kinesis.NewStream(this, jsii.String("MyStream")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), actions: []iAction{ actions.NewKinesisPutRecordAction(stream, &kinesisPutRecordActionProps{ partitionKey: jsii.String("${newuuid()}"), }), }, })
Experimental.
func NewKinesisPutRecordAction ¶
func NewKinesisPutRecordAction(stream awskinesis.IStream, props *KinesisPutRecordActionProps) KinesisPutRecordAction
Experimental.
type KinesisPutRecordActionProps ¶
type KinesisPutRecordActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The partition key used to determine to which shard the data is written. // // The partition key is usually composed of an expression (for example, ${topic()} or ${timestamp()}). // See: https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html#API_PutRecord_RequestParameters // // Experimental. PartitionKey *string `field:"required" json:"partitionKey" yaml:"partitionKey"` }
Configuration properties of an action for the Kinesis Data stream.
Example:
import kinesis "github.com/aws/aws-cdk-go/awscdk" stream := kinesis.NewStream(this, jsii.String("MyStream")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), actions: []iAction{ actions.NewKinesisPutRecordAction(stream, &kinesisPutRecordActionProps{ partitionKey: jsii.String("${newuuid()}"), }), }, })
Experimental.
type LambdaFunctionAction ¶
type LambdaFunctionAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(topicRule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to invoke an AWS Lambda function, passing in an MQTT message.
Example:
func := lambda.NewFunction(this, jsii.String("MyFunction"), &functionProps{ runtime: lambda.runtime_NODEJS_14_X(), handler: jsii.String("index.handler"), code: lambda.code.fromInline(jsii.String("\n exports.handler = (event) => {\n console.log(\"It is test for lambda action of AWS IoT Rule.\", event);\n };")), }) iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, timestamp() as timestamp, temperature FROM 'device/+/data'")), actions: []iAction{ actions.NewLambdaFunctionAction(func), }, })
Experimental.
func NewLambdaFunctionAction ¶
func NewLambdaFunctionAction(func_ awslambda.IFunction) LambdaFunctionAction
Experimental.
type MqttQualityOfService ¶
type MqttQualityOfService string
MQTT Quality of Service (QoS) indicates the level of assurance for delivery of an MQTT Message.
Example:
iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, timestamp() as timestamp, temperature FROM 'device/+/data'")), actions: []iAction{ actions.NewIotRepublishMqttAction(jsii.String("${topic()}/republish"), &iotRepublishMqttActionProps{ qualityOfService: actions.mqttQualityOfService_AT_LEAST_ONCE, }), }, })
See: https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt-qos
Experimental.
const ( // QoS level 0. // // Sent zero or more times. // This level should be used for messages that are sent over reliable communication links or that can be missed without a problem. // Experimental. MqttQualityOfService_ZERO_OR_MORE_TIMES MqttQualityOfService = "ZERO_OR_MORE_TIMES" // QoS level 1. // // Sent at least one time, and then repeatedly until a PUBACK response is received. // The message is not considered complete until the sender receives a PUBACK response to indicate successful delivery. // Experimental. MqttQualityOfService_AT_LEAST_ONCE MqttQualityOfService = "AT_LEAST_ONCE" )
type S3PutObjectAction ¶
type S3PutObjectAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to write the data from an MQTT message to an Amazon S3 bucket.
Example:
bucket := s3.NewBucket(this, jsii.String("MyBucket")) iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewS3PutObjectAction(bucket, &s3PutObjectActionProps{ key: jsii.String("${year}/${month}/${day}/${topic(2)}"), }), }, })
Experimental.
func NewS3PutObjectAction ¶
func NewS3PutObjectAction(bucket awss3.IBucket, props *S3PutObjectActionProps) S3PutObjectAction
Experimental.
type S3PutObjectActionProps ¶
type S3PutObjectActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The Amazon S3 canned ACL that controls access to the object identified by the object key. // See: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl // // Experimental. AccessControl awss3.BucketAccessControl `field:"optional" json:"accessControl" yaml:"accessControl"` // The path to the file where the data is written. // // Supports substitution templates. // See: https://docs.aws.amazon.com/iot/latest/developerguide/iot-substitution-templates.html // // Experimental. Key *string `field:"optional" json:"key" yaml:"key"` }
Configuration properties of an action for s3.
Example:
bucket := s3.NewBucket(this, jsii.String("MyBucket")) iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewS3PutObjectAction(bucket, &s3PutObjectActionProps{ key: jsii.String("${year}/${month}/${day}/${topic(2)}"), }), }, })
Experimental.
type SnsActionMessageFormat ¶
type SnsActionMessageFormat string
SNS topic action message format options.
Example:
import sns "github.com/aws/aws-cdk-go/awscdk" topic := sns.NewTopic(this, jsii.String("MyTopic")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewSnsTopicAction(topic, &snsTopicActionProps{ messageFormat: actions.snsActionMessageFormat_JSON, }), }, })
Experimental.
const ( // RAW message format. // Experimental. SnsActionMessageFormat_RAW SnsActionMessageFormat = "RAW" // JSON message format. // Experimental. SnsActionMessageFormat_JSON SnsActionMessageFormat = "JSON" )
type SnsTopicAction ¶
type SnsTopicAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to write the data from an MQTT message to an Amazon SNS topic.
Example:
import sns "github.com/aws/aws-cdk-go/awscdk" topic := sns.NewTopic(this, jsii.String("MyTopic")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewSnsTopicAction(topic, &snsTopicActionProps{ messageFormat: actions.snsActionMessageFormat_JSON, }), }, })
See: https://docs.aws.amazon.com/iot/latest/developerguide/sns-rule-action.html
Experimental.
func NewSnsTopicAction ¶
func NewSnsTopicAction(topic awssns.ITopic, props *SnsTopicActionProps) SnsTopicAction
Experimental.
type SnsTopicActionProps ¶
type SnsTopicActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // The message format of the message to publish. // // SNS uses this setting to determine if the payload should be parsed and relevant platform-specific bits of the payload should be extracted. // See: https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html // // Experimental. MessageFormat SnsActionMessageFormat `field:"optional" json:"messageFormat" yaml:"messageFormat"` }
Configuration options for the SNS topic action.
Example:
import sns "github.com/aws/aws-cdk-go/awscdk" topic := sns.NewTopic(this, jsii.String("MyTopic")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewSnsTopicAction(topic, &snsTopicActionProps{ messageFormat: actions.snsActionMessageFormat_JSON, }), }, })
Experimental.
type SqsQueueAction ¶
type SqsQueueAction interface { awsiot.IAction // Returns the topic rule action specification. // Experimental. Bind(rule awsiot.ITopicRule) *awsiot.ActionConfig }
The action to write the data from an MQTT message to an Amazon SQS queue.
Example:
import sqs "github.com/aws/aws-cdk-go/awscdk" queue := sqs.NewQueue(this, jsii.String("MyQueue")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewSqsQueueAction(queue, &sqsQueueActionProps{ useBase64: jsii.Boolean(true), }), }, })
Experimental.
func NewSqsQueueAction ¶
func NewSqsQueueAction(queue awssqs.IQueue, props *SqsQueueActionProps) SqsQueueAction
Experimental.
type SqsQueueActionProps ¶
type SqsQueueActionProps struct { // The IAM role that allows access to AWS service. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // Specifies whether to use Base64 encoding. // Experimental. UseBase64 *bool `field:"optional" json:"useBase64" yaml:"useBase64"` }
Configuration properties of an action for SQS.
Example:
import sqs "github.com/aws/aws-cdk-go/awscdk" queue := sqs.NewQueue(this, jsii.String("MyQueue")) topicRule := iot.NewTopicRule(this, jsii.String("TopicRule"), &topicRuleProps{ sql: iot.iotSql.fromStringAsVer20160323(jsii.String("SELECT topic(2) as device_id, year, month, day FROM 'device/+/data'")), actions: []iAction{ actions.NewSqsQueueAction(queue, &sqsQueueActionProps{ useBase64: jsii.Boolean(true), }), }, })
Experimental.
Source Files ¶
- awsiotactions.go
- awsiotactions_CloudWatchLogsAction.go
- awsiotactions_CloudWatchLogsActionProps.go
- awsiotactions_CloudWatchLogsAction__runtime_type_checks.go
- awsiotactions_CloudWatchPutMetricAction.go
- awsiotactions_CloudWatchPutMetricActionProps.go
- awsiotactions_CloudWatchPutMetricAction__runtime_type_checks.go
- awsiotactions_CloudWatchSetAlarmStateAction.go
- awsiotactions_CloudWatchSetAlarmStateActionProps.go
- awsiotactions_CloudWatchSetAlarmStateAction__runtime_type_checks.go
- awsiotactions_CommonActionProps.go
- awsiotactions_FirehosePutRecordAction.go
- awsiotactions_FirehosePutRecordActionProps.go
- awsiotactions_FirehosePutRecordAction__runtime_type_checks.go
- awsiotactions_FirehoseRecordSeparator.go
- awsiotactions_IotRepublishMqttAction.go
- awsiotactions_IotRepublishMqttActionProps.go
- awsiotactions_IotRepublishMqttAction__runtime_type_checks.go
- awsiotactions_KinesisPutRecordAction.go
- awsiotactions_KinesisPutRecordActionProps.go
- awsiotactions_KinesisPutRecordAction__runtime_type_checks.go
- awsiotactions_LambdaFunctionAction.go
- awsiotactions_LambdaFunctionAction__runtime_type_checks.go
- awsiotactions_MqttQualityOfService.go
- awsiotactions_S3PutObjectAction.go
- awsiotactions_S3PutObjectActionProps.go
- awsiotactions_S3PutObjectAction__runtime_type_checks.go
- awsiotactions_SnsActionMessageFormat.go
- awsiotactions_SnsTopicAction.go
- awsiotactions_SnsTopicActionProps.go
- awsiotactions_SnsTopicAction__runtime_type_checks.go
- awsiotactions_SqsQueueAction.go
- awsiotactions_SqsQueueActionProps.go
- awsiotactions_SqsQueueAction__runtime_type_checks.go