通知设置
2.8 版本引入
您可以使用通知设置来配置关于长时间运行的索引操作的通知。通过在 OpenSearch Dashboards 中使用通知或通过 API,可以在长时间运行的索引操作完成时设置自动通知。
配置通知设置对于长时间运行的索引操作非常有用,例如 open
、reindex
、resize
和 force merge
。当您发送这些操作的请求并将 wait_for_completion
参数设置为 false
时,操作会立即返回,响应中包含一个任务 ID。您可以使用该任务 ID 来配置此操作的通知。
配置通知设置
您可以使用 task_id
和 action_name
参数通过 API 配置长时间运行的操作通知。
- 一次性设置:如果您在
lron_config
对象中传入task_id
,任务将运行一次,并且在任务结束时自动删除该设置。如果您同时传入task_id
和action_name
,则action_name
将被忽略,但可能对您搜索和调试通知设置有用。 - 全局持久设置:如果您在
lron_config
对象中传入action_name
而不传入task_id
,则该任务是全局且持久的,并适用于此操作类型的所有操作。
下表列出了长时间运行索引操作通知的参数。
参数 | 类型 | 描述 |
---|---|---|
lron_config | 对象 | 长时间运行索引操作通知配置。 |
task_id | 字符串 | 您希望收到通知的任务的任务 ID。可选。必须指定 task_id 和 action_name 中的一个。 |
action_name | 字符串 | 您希望收到通知的操作类型。提供 action_name 但不提供 task_id 可接收此类型所有操作的通知。支持的值包括 indices:data/write/reindex 、indices:admin/resize 、indices:admin/forcemerge 和 indices:admin/open 。可选。必须指定 task_id 和 action_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.success 或 lron_condition.failure 为 true ,则 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