创建快照 API编辑

创建集群或指定数据流和索引的快照。

response = client.snapshot.create(
  repository: 'my_repository',
  snapshot: 'my_snapshot'
)
puts response
PUT /_snapshot/my_repository/my_snapshot

请求编辑

PUT /_snapshot/<repository>/<snapshot>

POST /_snapshot/<repository>/<snapshot>

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,则您必须拥有 create_snapshotmanage 集群权限 才能使用此 API。

路径参数编辑

<repository>
(必填,字符串)快照存储库的名称。
<snapshot>
(必填,字符串)快照的名称。支持 日期数学。在快照存储库中必须是唯一的。

查询参数编辑

master_timeout
(可选,时间单位)等待主节点的时间。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以指示请求永不超时。
wait_for_completion
(可选,布尔值)如果为 true,则请求在快照完成时返回响应。如果为 false,则请求在快照初始化时返回响应。默认为 false

请求正文编辑

expand_wildcards

(可选,字符串)确定 indices 参数中的通配符模式如何匹配数据流和索引。支持逗号分隔的值,例如 open,hidden。默认为 all。有效值为

all
匹配任何数据流或索引,包括已关闭和 隐藏的 数据流或索引。
open
匹配打开的索引和数据流。
closed
匹配已关闭的索引和数据流。
hidden
匹配隐藏的数据流和索引。必须与 openclosed 或两者结合使用。
none
不扩展通配符模式。
ignore_unavailable
(可选,布尔值)如果为 false,则如果 indices 中的任何数据流或索引丢失,则快照失败。如果为 true,则快照会忽略丢失的数据流和索引。默认为 false
include_global_state

(可选,布尔值)如果为 true,则在快照中包含集群状态。默认为 true。集群状态包括

indices

(可选,字符串或字符串数组)要包含在快照中的数据流和索引的逗号分隔列表。支持 多目标语法。默认为空数组 ([]),其中包括所有常规数据流和常规索引。要排除所有数据流和索引,请使用 -*

您不能使用此参数在快照中包含或排除 系统索引或系统数据流。请改用 feature_states

feature_states

(可选,字符串数组)要包含在快照中的 功能状态。要获取可能值的列表及其说明,请使用 获取功能 API

如果 include_global_statetrue,则快照默认包含所有功能状态。如果 include_global_statefalse,则快照默认不包含任何功能状态。

请注意,指定空数组将导致默认行为。要排除所有功能状态,无论 include_global_state 值如何,请指定一个仅包含值 none (["none"]) 的数组。

metadata
(可选,对象)将任意元数据附加到快照,例如创建快照的人员的记录、创建快照的原因或任何其他有用数据。元数据必须小于 1024 字节。
partial

(可选,布尔值)如果为 false,则如果快照中包含的一个或多个索引没有所有主分片可用,则整个快照将失败。默认为 false

如果为 true,则允许对分片不可用的索引进行部分快照。

示例编辑

以下请求创建 index_1index_2 的快照。

response = client.snapshot.create(
  repository: 'my_repository',
  snapshot: 'snapshot_2',
  wait_for_completion: true,
  body: {
    indices: 'index_1,index_2',
    ignore_unavailable: true,
    include_global_state: false,
    metadata: {
      taken_by: 'user123',
      taken_because: 'backup before upgrading'
    }
  }
)
puts response
PUT /_snapshot/my_repository/snapshot_2?wait_for_completion=true
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false,
  "metadata": {
    "taken_by": "user123",
    "taken_because": "backup before upgrading"
  }
}

API 返回以下响应

{
  "snapshot": {
    "snapshot": "snapshot_2",
    "uuid": "vdRctLCxSketdKb54xw67g",
    "repository": "my_repository",
    "version_id": <version_id>,
    "version": <version>,
    "indices": [],
    "data_streams": [],
    "feature_states": [],
    "include_global_state": false,
    "metadata": {
      "taken_by": "user123",
      "taken_because": "backup before upgrading"
    },
    "state": "SUCCESS",
    "start_time": "2020-06-25T14:00:28.850Z",
    "start_time_in_millis": 1593093628850,
    "end_time": "2020-06-25T14:00:28.850Z",
    "end_time_in_millis": 1593094752018,
    "duration_in_millis": 0,
    "failures": [],
    "shards": {
      "total": 0,
      "failed": 0,
      "successful": 0
    }
  }
}