Link Search Menu Expand Document Documentation Menu

通知设置

2.8 版本引入

您可以使用通知设置来配置关于长时间运行的索引操作的通知。通过在 OpenSearch Dashboards 中使用通知或通过 API,可以在长时间运行的索引操作完成时设置自动通知

配置通知设置对于长时间运行的索引操作非常有用,例如 openreindexresizeforce merge。当您发送这些操作的请求并将 wait_for_completion 参数设置为 false 时,操作会立即返回,响应中包含一个任务 ID。您可以使用该任务 ID 来配置此操作的通知。

配置通知设置

您可以使用 task_idaction_name 参数通过 API 配置长时间运行的操作通知。

  • 一次性设置:如果您在 lron_config 对象中传入 task_id,任务将运行一次,并且在任务结束时自动删除该设置。如果您同时传入 task_idaction_name,则 action_name 将被忽略,但可能对您搜索和调试通知设置有用。
  • 全局持久设置:如果您在 lron_config 对象中传入 action_name 而不传入 task_id,则该任务是全局且持久的,并适用于此操作类型的所有操作。

下表列出了长时间运行索引操作通知的参数。

参数 类型 描述
lron_config 对象 长时间运行索引操作通知配置。
task_id 字符串 您希望收到通知的任务的任务 ID。可选。必须指定 task_idaction_name 中的一个。
action_name 字符串 您希望收到通知的操作类型。提供 action_name 但不提供 task_id 可接收此类型所有操作的通知。支持的值包括 indices:data/write/reindexindices:admin/resizeindices:admin/forcemergeindices:admin/open。可选。必须指定 task_idaction_name 中的一个。
lron_condition 对象 指定您希望收到通知的事件。可选。如果未提供,您将收到操作成功和失败的通知。
lron_condition.success 布尔型 将此参数设置为 true,以便在操作成功时收到通知。可选。默认为 true
lron_condition.failure 布尔型 将此参数设置为 true,以便在操作失败或超时时收到通知。可选。默认为 true
channels 对象 支持的通信渠道包括 Amazon Chime、Amazon Simple Notification Service (Amazon SNS)、Amazon Simple Email Service (Amazon SES)、通过 SMTP 的电子邮件、Slack 和自定义 webhook。如果 lron_condition.successlron_condition.failuretrue,则 channels 必须包含至少一个渠道。在通知中了解如何配置通知渠道。

创建通知设置

以下示例请求为重索引任务的失败设置通知。

POST /_plugins/_im/lron
{
  "lron_config": {
      "task_id":"dQlcQ0hQS2mwF-AQ7icCMw:12354",
      "action_name":"indices:data/write/reindex",
      "lron_condition": {
        "success": false,
        "failure": true
      },
      "channels":[
          {"id":"channel1"},
          {"id":"channel2"}
      ]
  }
}

上述请求会返回以下响应。

{
  "_id": "LRON:dQlcQ0hQS2mwF-AQ7icCMw:12354",
  "lron_config": {
    "lron_condition": {
      "success": false,
      "failure": true
    },
    "task_id": "dQlcQ0hQS2mwF-AQ7icCMw:12354",
    "action_name": "indices:data/write/reindex",
    "channels": [
      {
        "id": "channel1"
      },
      {
        "id": "channel2"
      }
    ]
  }
}

通知设置 ID

响应在 _id 字段中返回通知设置的 ID。您可以使用此 ID 来读取、更新或删除此通知设置。对于全局 lron_config,ID 的形式为 LRON:<action_name>(例如,LRON:indices:data/write/reindex)。

action_name 可能包含斜杠字符 (/),如果在开发工具控制台中使用,必须将其 HTTP 编码为 %2F。例如,LRON:indices:data/write/reindex 会变为 LRON:indices:data%2Fwrite%2Freindex

对于任务 lron_config,ID 的形式为 LRON:<task ID>

检索通知设置

以下示例检索当前配置的通知设置。

使用以下请求检索具有指定通知设置 ID 的通知设置。

 GET /_plugins/_im/lron/<lronID>

例如,以下请求检索 reindex 操作的通知设置。

{
  "lron_configs": [
    {
      "_id": "LRON:indices:data/write/reindex",
      "lron_config": {
        "lron_condition": {
          "success": false,
          "failure": true
        },
        "action_name": "indices:data/write/reindex",
        "channels": [
          {
            "id": "my_chime"
          }
        ]
      }
    }
  ],
  "total_number": 1
}

使用以下请求检索所有通知设置。

GET /_plugins/_im/lron

响应包含所有已配置的通知设置及其 ID。

{
  "lron_configs": [
    {
      "_id": "LRON:indices:admin/open",
      "lron_config": {
        "lron_condition": {
          "success": false,
          "failure": false
        },
        "action_name": "indices:admin/open",
        "channels": []
      }
    },
    {
      "_id": "LRON:indices:data/write/reindex",
      "lron_config": {
        "lron_condition": {
          "success": false,
          "failure": true
        },
        "action_name": "indices:data/write/reindex",
        "channels": [
          {
            "id": "my_chime"
          }
        ]
      }
    }
  ],
  "total_number": 2
}

更新通知设置

以下示例修改具有指定通知设置 ID 的现有通知设置。

PUT /_plugins/_im/lron/<lronID>
{
  "lron_config": {
      "task_id":"dQlcQ0hQS2mwF-AQ7icCMw:12354",
      "action_name":"indices:data/write/reindex",
      "lron_condition": {
        "success": false,
        "failure": true
      },
      "channels":[
          {"id":"channel1"},
          {"id":"channel2"}
      ]
  }
}

响应包含更新后的设置。

{
  "_id": "LRON:dQlcQ0hQS2mwF-AQ7icCMw:12354",
  "lron_config": {
    "lron_condition": {
      "success": false,
      "failure": true
    },
    "task_id": "dQlcQ0hQS2mwF-AQ7icCMw:12354",
    "action_name": "indices:data/write/reindex",
    "channels": [
      {
        "id": "channel1"
      },
      {
        "id": "channel2"
      }
    ]
  }
}

删除通知设置

以下示例删除具有指定通知设置 ID 的通知设置。

DELETE /_plugins/_im/lron/<lronID>

例如,以下请求删除 reindex 操作的通知设置。

DELETE _plugins/_im/lron/LRON:indices:data%2Fwrite%2Freindex

后续步骤

  • 了解更多关于 ISM API 的信息。
  • 了解更多关于通知应用程序的信息。
剩余 350 字符

有问题?

想要贡献?