本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon IoT 规则操作
Amazon IoT 规则操作指定了调用规则时要执行的操作。您可以定义向亚马逊 DynamoDB 数据库发送数据、向 Amazon Kinesis 数据流发送数据、调用 Amazon Lambda 函数等操作。 Amazon IoT 在操作服务可用 Amazon Web Services 区域 的地方支持以下操作。
| 规则操作 | 说明 | API 中的名称 |
|---|---|---|
| Apache Kafka | 将消息发送到 Apache Kafka 集群。 | kafka |
| CloudWatch 警报 | 更改亚马逊 CloudWatch 警报的状态。 | cloudwatchAlarm |
| CloudWatch 日志 | 向 Amazon L CloudWatch ogs 发送消息。 | cloudwatchLogs |
| CloudWatch 指标 | 向 CloudWatch 指标发送消息。 | cloudwatchMetric |
| DynamoDB | 将消息发送到 DynamoDB 表。 | dynamoDB |
| DynamoDBv2 | 将消息数据发送到 DynamoDB 表中的多列。 | dynamoDBv2 |
| Elasticsearch | 向 OpenSearch 端点发送消息。 | OpenSearch |
| HTTP | 将消息发布到 HTTPS 端点。 | http |
| InfluxDB | 将时间序列数据从物联网设备写入InfluxDB。 | influxDB |
| Amazon IoT SiteWise | 向 Amazon IoT SiteWise 资产属性发送消息数据。 | iotSiteWise |
| Firehose | 将消息发送到 Firehose 传输流。 | firehose |
| Kinesis Data Streams | 将消息发送到 Kinesis 数据流。 | kinesis |
| Lambda | 使用消息数据作为输入调用 Lambda 函数。 | lambda |
| 位置 | 向 Amazon Location Service 发送位置数据。 | location |
| OpenSearch | 向亚马逊 OpenSearch 服务终端节点发送消息。 | OpenSearch |
| 重新发布 | 在另一个 MQTT 主题上重新发布消息。 | republish |
| S3 | 将消息存储在 Amazon Simple Storage Service(Amazon S3)存储桶中。 | s3 |
| SNS | 将消息发布为 Amazon Simple Notification Service(Amazon SNS)推送通知。 | sns |
| SQS | 将消息发送到 Amazon Simple Queue Service(Amazon SQS)队列。 | sqs |
| 步进函数 | 启动 Amazon Step Functions 状态机。 | stepFunctions |
| Timestream | 将消息发送到 Amazon Timestream 数据库表。 | timestream |
注意
-
将规则定义 Amazon Web Services 区域 为与其他服务的资源相同,以便规则操作可以与该资源进行交互。
-
如果发生间歇性错误, Amazon IoT 规则引擎可能会多次尝试执行某项操作。如果所有尝试均失败,则该消息将被丢弃,错误将在您的 CloudWatch 日志中显示。您可以为在发生故障后调用的每条规则指定一个错误操作。有关更多信息,请参阅 错误处理(错误操作)。
-
某些规则操作会激活与 Amazon Key Management Service (Amazon KMS) 集成的服务中的操作,以支持静态数据加密。如果您使用客户管理的 Amazon KMS key (KMS 密钥)对静态数据进行加密,则该服务必须有权代表调用方使用 KMS 密钥。要了解如何管理客户自主管理型 KMS 密钥的权限,请参阅相应服务指南中的数据加密主题。有关客户自主管理型 KMS 密钥的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的 Amazon Key Management Service 概念。
可以在错误操作的 SQL 语句中使用任何函数或替代模板,包括外部函数:
aws_lambda()、get_dynamodb()、get_registry_data()、get_thing_shadow()、get_secret()和decode()。如果错误操作需要调用外部函数,则调用错误操作可能会导致产生针对外部函数的额外账单。