通知设置
你可以使用通知设置来配置关于长时间运行的索引操作的通知。当长时间运行的索引操作完成时,通过 在 UDB-SX Dashboards 中使用通知 或 API 设置自动 通知。
配置通知设置对于长时间运行的索引操作非常有用,例如 open、reindex、resize 和 force merge。当你发送这些操作的请求并将 wait_for_completion 参数设置为 false 时,操作会立即返回,响应中包含一个任务 ID。你可以使用该任务 ID 为此操作配置通知。
配置通知设置
你可以通过 API 使用 task_id 和 action_name 参数配置长时间运行的操作通知:
一次性设置:如果你在
lron_config对象中传递task_id,任务会运行一次,任务结束时设置会自动删除。如果你同时传递task_id和action_name,action_name会被忽略,但可能对你搜索和调试通知设置有用。全局持久设置:如果你在
lron_config对象中传递action_name而不是task_id,任务是全局且持久的,并适用于此操作类型的所有操作。
下表列出了长时间运行的索引操作通知的参数。
| 参数 | 类型 | 描述 |
|---|---|---|
lron_config |
Object | 长时间运行的索引操作通知配置。 |
task_id |
String | 你希望接收通知的任务的任务 ID。可选。必须指定 task_id 和 action_name 中的一个。 |
action_name |
String | 你希望接收通知的操作类型。提供 action_name 但不提供 task_id 以接收此类型所有操作的通知。支持的值有 indices:data/write/reindex、indices:admin/resize、indices:admin/forcemerge 和 indices:admin/open。可选。必须指定 task_id 和 action_name 中的一个。 |
lron_condition |
Object | 指定你希望接收通知的事件。可选。如果未提供,你将收到操作成功和失败的通知。 |
lron_condition.success |
Boolean | 将此参数设置为 true 以在操作成功时接收通知。可选。默认值为 true。 |
lron_condition.failure |
Boolean | 将此参数设置为 true 以在操作失败或超时時接收通知。可选。默认值为 true。 |
channels |
Object | 支持的通信渠道包括 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 可能包含斜杠字符(/),如果你在 Dev Tools 控制台中使用它,必须 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