View a markdown version of this page

Elasticsearch - AWS IoT Core

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Elasticsearch

Elasticsearch (elasticsearch) 操作将来自 MQTT 消息的数据写入亚马逊 OpenSearch 服务域。然后,您可以使用 OpenSearch 仪表板等工具来查询和可视化 OpenSearch 服务中的数据。

警告

Elasticsearch 操作只能由现有规则操作使用。要创建新的规则操作或更新现有规则操作,请使用 OpenSearch 规则而不是操作。有关更多信息,请参阅 OpenSearch。

要求

此规则操作具有以下要求:

  • AWS IoT 可以代入执行es:ESHttpPut操作的 IAM 角色。有关更多信息,请参阅 授予 AWS IoT 控制其所需的访问权限。

    在 AWS IoT 控制台中,您可以选择或创建 AWS IoT 允许执行此规则操作的角色。

  • 如果您使用客户管理 AWS KMS key (KMS 密钥)对中的静态数据进行加密 OpenSearch,则该服务必须有权代表呼叫者使用 KMS 密钥。有关更多信息,请参阅《亚马逊服务开发者指南》中的亚马逊 OpenSearch 服务静态数据加密。 OpenSearch

参数

使用此操作创建 AWS IoT 规则时,必须指定以下信息:

endpoint

您的服务域端点。

支持替代模板: AWS CLI 仅支持 API

index

您要在其中存储数据的索引。

支持替换模板:是

type

您存储的文档类型。

支持替换模板:是

id

每个文档的唯一标识符。

支持替换模板:是

roleARN

允许访问 OpenSearch 服务域的 IAM 角色。有关更多信息,请参阅 要求。

支持替换模板:否

示例

以下 JSON 示例定义了 AWS IoT 规则中的 Elasticsearch 操作以及如何为该elasticsearch操作指定字段。有关更多信息,请参阅 ElasticsearchAction。

{ "topicRulePayload": { "sql": "SELECT *, timestamp() as timestamp FROM 'iot/test'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "elasticsearch": { "endpoint": "https://my-endpoint", "index": "my-index", "type": "my-type", "id": "${newuuid()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_es" } } ] } }

以下 JSON 示例使用 AWS IoT 规则中的替换模板定义了 Elasticsearch 操作。

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "elasticsearch": { "endpoint": "https://my-endpoint", "index": "${topic()}", "type": "${type}", "id": "${newuuid()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_es" } } ] } }

另请参阅