本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Elasticsearch
彈性搜尋 (elasticsearch
) 動作會將 MQTT 訊息中的資料寫入 Amazon 服務網域。 OpenSearch 然後,您可以使用 OpenSearch 儀表板等工具查詢和視覺化 OpenSearch 服務中的資料。
警告
Elasticsearch
動作只能由現有規則動作使用。若要建立新的規則動作或更新現有的規則動作,請改用 OpenSearch
規則動作。如需詳細資訊,請參閱 OpenSearch。
需求
此規則動作具有下列需求:
-
AWS IoT 可假設執行
es:ESHttpPut
作業的 IAM 角色。如需詳細資訊,請參閱 授與 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。
-
如果您使用客戶管理 AWS KMS key (KMS 金鑰) 來加密中的靜態資料 OpenSearch,則服務必須具有代表呼叫者使用 KMS 金鑰的權限。如需詳細資訊,請參閱 Amazon 服務開發人員指南中的 Amazon OpenSearch 服 OpenSearch 務靜態資料加密。
參數
使用此動作建立 AWS IoT 規則時,必須指定下列資訊:
範例
下面的 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
{ "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" } } ] } }