OpenSearch - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

OpenSearch

OpenSearch (openSearch) 動作會將 MQTT 訊息中的資料寫入 Amazon OpenSearch 服務網域。然後,您可以使用 OpenSearch 儀表板等工具查詢和視覺化 OpenSearch 服務中的資料。

要求

此規則動作具有下列需求:

  • AWS IoT 可假設執行es:ESHttpPut作業的 IAM 角色。如需詳細資訊,請參閱 授與 AWS IoT 規則所需的存取權

    在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。

  • 如果您使用受管理的客戶 AWS KMS key 來加密 OpenSearch 服務中的靜態資料,則該服務必須具有代表呼叫者使用 KMS 金鑰的權限。如需詳細資訊,請參閱 Amazon 服務開發人員指南中的 Amazon OpenSearch 服 OpenSearch 務靜態資料加密

參數

使用此動作建立 AWS IoT 規則時,必須指定下列資訊:

endpoint

您的 Amazon OpenSearch 服務域的端點。

支援替代範本:API 且 AWS CLI 僅支援

index

要存儲 OpenSearch 數據的索引。

支援替代範本:是

type

欲存放文件的類型。

注意

對於 1.0 之後的 OpenSearch 版本,type參數的值必須是_doc。如需詳細資訊,請參閱OpenSearch 文件

支援替代範本:是

id

各文件的專屬識別符。

支援替代範本:是

roleARN

允許存取 OpenSearch 服務網域的 IAM 角色。如需詳細資訊,請參閱 要求

支援替代範本:否

限制

OpenSearch (openSearch) 動作無法用於將資料傳遞至 VPC 彈性搜尋叢集。

範例

下列 JSON 範例會定義 AWS IoT 規則中的 OpenSearch 動作,以及如何指定OpenSearch動作的欄位。如需詳細資訊,請參閱OpenSearch動作

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

下列 JSON 範例會在 AWS IoT 規則中定義具有替代範本的 OpenSearch 動作。

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

取代的type欄位適用於 1.0 OpenSearch 版。對於 1.0 之後的任何版本,的值type必須是_doc

另請參閱

什麼是 Amazon OpenSearch 服務?Amazon 服 OpenSearch 務開發人員指南