移动到生命周期步骤 API编辑

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

请求编辑

POST _ilm/move/<index>

先决条件编辑

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

描述编辑

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

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

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

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

路径参数编辑

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

查询参数编辑

master_timeout
(可选,时间单位) 等待主节点的时间。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以指示请求永不超时。
timeout
(可选,时间单位) 等待响应的时间。如果在超时到期之前未收到任何响应,则请求失败并返回错误。默认为 30s

请求正文编辑

current_step

(必填,对象)

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

(必填,对象)

next_step 的属性
phase
(必填,字符串) 包含您要执行或恢复的操作的阶段的名称。
action
(可选,字符串) 您要执行或恢复的操作的名称。如果使用了 name,则为必填项。
name
(可选,字符串) 要移动到并执行的步骤的名称。如果使用了 action,则为必填项。

示例编辑

以下示例将 my-index-000001 从初始步骤移至 forcemerge 步骤

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 从热阶段的末尾推送到暖阶段的开头

POST _ilm/move/my-index-000001
{
  "current_step": {
    "phase": "hot",
    "action": "complete",
    "name": "complete"
  },
  "next_step": {
    "phase": "warm"
  }
}