Elasticsearch - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Elasticsearch

Elasticsearch (elasticsearch) 操作可将 MQTT 消息中的数据写入 Amazon OpenSearch Service 域。然后,您可以使用像 OpenSearch Dashboards 这样的工具来查询和可视化 OpenSearch Service 中的数据。

警告

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

要求

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

  • Amazon IoT 可以承担以执行 es:ESHttpPut 操作的 IAM 角色。有关更多信息,请参阅向 Amazon IoT 规则授予所需的访问权限

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

  • 如果您使用客户托管式 Amazon KMS key(KMS 密钥)对 OpenSearch 中的数据进行静态加密,服务必须具有代表调用方使用 KMS 的权限。有关更多信息,请参阅《Amazon OpenSearch Service 开发人员指南》中的为 Amazon OpenSearch Service 静态加密数据

参数

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

endpoint

您的服务域端点。

支持替换模板:仅限 API 和 Amazon CLI

index

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

支持替换模板:是

type

您存储的文档类型。

支持替换模板:是

id

每个文档的唯一标识符。

支持替换模板:是

roleARN

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

支持替换模板:否

示例

下面的 JSON 示例定义了 Amazon 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 示例定义了一个 Amazon 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" } } ] } }

另请参阅