

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

# OpenSearch
<a name="opensearch-rule-action"></a>

OpenSearch (`openSearch`) 動作將資料從 MQTT 訊息寫入 Amazon OpenSearch Service 網域。您可於之後使用如 OpenSearch 儀表板等工具來查詢及視覺化 OpenSearch Service 中的資料。

## 要求
<a name="opensearch-rule-action-requirements"></a>

此規則動作具有下列需求：
+  AWS IoT 可以擔任以執行`es:ESHttpPut`操作的 IAM 角色。如需詳細資訊，請參閱[授予 AWS IoT 規則所需的存取權](iot-create-role.md)。

  在 AWS IoT 主控台中，您可以選擇或建立角色， AWS IoT 以允許 執行此規則動作。
+ 如果您使用受管客戶 AWS KMS key 來加密 OpenSearch Service 中的靜態資料，則該服務必須具有代表發起人使用 KMS 金鑰的許可。如需詳細資訊，請參閱 *《Amazon OpenSearch Service 開發人員指南》* 中 [Amazon OpenSearch Service 的靜態資料加密](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)。

## Parameters
<a name="opensearch-rule-action-parameters"></a>

當您使用此動作建立 AWS IoT 規則時，您必須指定下列資訊：

`endpoint`  
您 Amazon OpenSearch Service 網域的端點。  
僅支援[替代範本](iot-substitution-templates.md)：API 和 AWS CLI 

`index`  
您想存放資料的 OpenSearch 索引。  
支援[替代範本](iot-substitution-templates.md)：是

`type`  
欲存放文件的類型。  
對於 1.0 之後的 OpenSearch 版本， `type` 參數的值必須是 `_doc`。如需詳細資訊，請參閱 [OpenSearch 文件](https://opensearch.org/docs/1.0/opensearch/rest-api/document-apis/index-document/#response-body-fields)。
支援[替代範本](iot-substitution-templates.md)：是

`id`  
各文件的專屬識別符。  
支援[替代範本](iot-substitution-templates.md)：是

`roleARN`  
IAM 角色，允許存取 OpenSearch Service 網域。如需詳細資訊，請參閱[要求](#opensearch-rule-action-requirements)。  
支援[替代範本](iot-substitution-templates.md)：否

## 限制
<a name="opensearch-rule-action-limitations"></a>

OpenSearch (`openSearch`）動作不能用於將資料傳送到 VPC Elasticsearch 叢集。

## 範例
<a name="opensearch-rule-action-examples"></a>

下列 JSON 範例定義 AWS IoT 規則中的 OpenSearch 動作，以及如何指定`OpenSearch`動作的欄位。如需詳細資訊，請參閱 [OpenSearchAction](https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html)。

```
{
    "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`的欄位適用於 OpenSearch 1.0 版。對於 1.0 之後的任何版本， 的值`type`必須是 `_doc`。

## 另請參閱
<a name="opensearch-rule-action-see-also"></a>

[什麼是 ？*Amazon OpenSearch Service 開發人員指南* 中的Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/)