移动到生命周期步骤 API
编辑移动到生命周期步骤 API
编辑触发生命周期策略中特定步骤的执行。
请求
编辑POST _ilm/move/<index>
描述
编辑此操作可能会导致数据丢失。即使某个步骤已经执行过,手动将索引移动到特定步骤也会执行该步骤。这是一个潜在的破坏性操作,应将其视为专家级 API。
手动将索引移动到指定的步骤并执行该步骤。您必须在请求正文中指定当前步骤和要执行的步骤。
如果当前步骤与索引当前正在执行的步骤不匹配,则请求将失败。这是为了防止索引从意外步骤移动到下一步。
指定索引将移动到的目标(next_step
)时,name
或 action
和 name
字段都是可选的。如果只指定阶段,则索引将移动到目标阶段中第一个操作的第一个步骤。如果指定了阶段和操作,则索引将移动到指定阶段中指定操作的第一个步骤。只有 ILM 策略中指定的操作才被认为是有效的,索引不能移动到不属于其策略的步骤。
路径参数
编辑-
<index>
- (必需,字符串)索引的标识符。
查询参数
编辑请求正文
编辑-
current_step
-
(必需,对象)
-
next_step
-
(必需,对象)
next_step
的属性-
phase
- (必需,字符串)包含您要执行或恢复的操作的阶段的名称。
-
action
- (可选,字符串)您要执行或恢复的操作的名称。如果使用
name
,则为必需。 -
name
- (可选,字符串)要移动并执行的步骤的名称。如果使用
action
,则为必需。
-
示例
编辑以下示例将 my-index-000001
从初始步骤移动到 forcemerge
步骤
resp = client.ilm.move_to_step( index="my-index-000001", current_step={ "phase": "new", "action": "complete", "name": "complete" }, next_step={ "phase": "warm", "action": "forcemerge", "name": "forcemerge" }, ) print(resp)
const response = await client.ilm.moveToStep({ index: "my-index-000001", current_step: { phase: "new", action: "complete", name: "complete", }, next_step: { phase: "warm", action: "forcemerge", name: "forcemerge", }, }); console.log(response);
POST _ilm/move/my-index-000001 { "current_step": { "phase": "new", "action": "complete", "name": "complete" }, "next_step": { "phase": "warm", "action": "forcemerge", "name": "forcemerge" } }
如果请求成功,您将收到以下结果
{ "acknowledged": true }
如果索引不在 current_step
指定的 new
阶段,则请求将失败。
以下示例将 my-index-000001
从热阶段的末尾推到温暖阶段的开始
resp = client.ilm.move_to_step( index="my-index-000001", current_step={ "phase": "hot", "action": "complete", "name": "complete" }, next_step={ "phase": "warm" }, ) print(resp)
const response = await client.ilm.moveToStep({ index: "my-index-000001", current_step: { phase: "hot", action: "complete", name: "complete", }, next_step: { phase: "warm", }, }); console.log(response);
POST _ilm/move/my-index-000001 { "current_step": { "phase": "hot", "action": "complete", "name": "complete" }, "next_step": { "phase": "warm" } }