Elasticsearch - AWS IoT Core

Elasticsearch

Elasticsearch (elasticsearch) アクションは、MQTT メッセージからのデータをAmazon OpenSearch Serviceドメインに対して書き込みます。その後、OpenSearchDashboardsなどのツールを使用して、OpenSearch Serviceのデータをクエリおよび視覚化できます。

警告

Elasticsearchアクションは、既存のルールアクションのみで使用できます。新しいルールアクションを作成したり、既存のルールアクションを更新したりするには、OpenSearchルールアクションを代わりに使用します。詳細については、「OpenSearch」を参照してください。

このルールアクションには以下の要件があります。

  • es:ESHttpPut オペレーションを実行するために AWS IoT が引き受けることができる IAM ロール。詳細については、「」を参照してくださいAWS IoT への必要なアクセス権限の付与

    AWS IoT コンソールで、AWS IoT がこのルールアクションを実行できるようにするロールを選択または作成できます。

  • OpenSearchで保管中のデータを暗号化するために、AWS KMS keyカスタマーマネージド(KMS キー) を使用する場合は、サービスが、発信者に代わって KMS キーを使用する許可を持っている必要があります。詳しくは、[Amazon OpenSearch Service Developer Guide]( デベロッパーガイド)の[Encryption of data at rest forAmazon OpenSearch Service ](のための保管時のデータの暗号化)を参照してください。

このアクションで AWS IoT ルールを作成するときは、次の情報を指定する必要があります。

endpoint

サービスドメインのエンドポイント。

置換テンプレートのサポート: API とAWS CLI のみ

index

データを保存したい インデックス。

置換テンプレートをサポート: はい

type

保存するドキュメントのタイプ。

置換テンプレートをサポート: はい

id

各ドキュメントの一意の識別子。

置換テンプレートをサポート: はい

roleARN

OpenSearch Service ドメインへのアクセスを許可する IAM ロール。詳細については、「Requirements」を参照してください。

置換テンプレートをサポート: いいえ

次の 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" } } ] } }