创建快照 API

编辑

获取集群或指定数据流和索引的快照。

resp = client.snapshot.create(
    repository="my_repository",
    snapshot="my_snapshot",
)
print(resp)
response = client.snapshot.create(
  repository: 'my_repository',
  snapshot: 'my_snapshot'
)
puts response
const response = await client.snapshot.create({
  repository: "my_repository",
  snapshot: "my_snapshot",
});
console.log(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 的快照。

resp = client.snapshot.create(
    repository="my_repository",
    snapshot="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"
    },
)
print(resp)
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
const response = await client.snapshot.create({
  repository: "my_repository",
  snapshot: "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",
  },
});
console.log(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
    }
  }
}