移动到生命周期步骤 API

编辑

触发生命周期策略中特定步骤的执行。

请求

编辑

POST _ilm/move/<index>

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须对正在管理的索引拥有 manage_ilm 权限才能使用此 API。有关更多信息,请参阅安全权限

描述

编辑

此操作可能会导致数据丢失。即使某个步骤已经执行过,手动将索引移动到特定步骤也会执行该步骤。这是一个潜在的破坏性操作,应将其视为专家级 API。

手动将索引移动到指定的步骤并执行该步骤。您必须在请求正文中指定当前步骤和要执行的步骤。

如果当前步骤与索引当前正在执行的步骤不匹配,则请求将失败。这是为了防止索引从意外步骤移动到下一步。

指定索引将移动到的目标(next_step)时,nameactionname 字段都是可选的。如果只指定阶段,则索引将移动到目标阶段中第一个操作的第一个步骤。如果指定了阶段和操作,则索引将移动到指定阶段中指定操作的第一个步骤。只有 ILM 策略中指定的操作才被认为是有效的,索引不能移动到不属于其策略的步骤。

路径参数

编辑
<index>
(必需,字符串)索引的标识符。

查询参数

编辑
master_timeout
(可选,时间单位)等待主节点的时间段。如果主节点在超时到期之前不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1,表示请求永远不应超时。
timeout
(可选,时间单位)在更新集群元数据后,等待来自集群中所有相关节点响应的时间段。如果在超时到期之前未收到任何响应,则集群元数据更新仍然适用,但响应将表明它未被完全确认。默认为 30s。也可以设置为 -1,表示请求永远不应超时。

请求正文

编辑
current_step

(必需,对象)

current_step 的属性
phase
(必需,字符串)当前阶段的名称。必须与explain API 返回的阶段匹配。
action
(必需,字符串)当前操作的名称。必须与explain API 返回的操作匹配。
name
(必需,字符串)当前步骤的名称。必须与explain API 返回的步骤匹配。如果 ILM 在执行操作时遇到问题,它将停止策略的执行并转换为 ERROR 步骤。如果您正在尝试在排除故障后推进策略,则将此 ERROR 步骤指定为当前步骤。有关更多信息,请参阅ILM 错误处理
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"
  }
}