创建或更新快照生命周期策略 API
编辑创建或更新快照生命周期策略 API
编辑创建或更新快照生命周期策略。
请求
编辑PUT /_slm/policy/<snapshot-lifecycle-policy-id>
路径参数
编辑-
<snapshot-lifecycle-policy-id>
- (必需,字符串)要创建或更新的快照生命周期策略的 ID。
查询参数
编辑请求体
编辑-
config
-
(必需,对象)策略创建的每个快照的配置。
config
的属性-
expand_wildcards
-
(可选,字符串)确定
indices
参数中的通配符模式如何匹配数据流和索引。支持逗号分隔的值,例如open,hidden
。默认为all
。有效值为-
all
- 匹配任何数据流或索引,包括关闭的和隐藏的。
-
open
- 匹配打开的索引和数据流。
-
closed
- 匹配关闭的索引和数据流。
-
hidden
- 匹配隐藏的数据流和索引。必须与
open
、closed
或两者组合使用。 -
none
- 不展开通配符模式。
-
-
ignore_unavailable
- (可选,布尔值)如果为
false
,则如果indices
中的任何数据流或索引丢失,快照将失败。如果为true
,则快照将忽略丢失的数据流和索引。默认为false
。 -
include_global_state
-
(可选,布尔值)如果为
true
,则在快照中包含集群状态。默认为true
。集群状态包括 -
indices
-
(可选,字符串或字符串数组)要包含在快照中的数据流和索引的逗号分隔列表。支持多目标语法。默认为空数组(
[]
),其中包括所有常规数据流和常规索引。要排除所有数据流和索引,请使用-*
。您不能使用此参数在快照中包含或排除系统索引或系统数据流。请改用
feature_states
。
-
feature_states
-
(可选,字符串数组)要包含在快照中的特性状态。要获取可能的值及其描述的列表,请使用获取特性 API。
如果
include_global_state
为true
,则快照默认包含所有特性状态。如果include_global_state
为false
,则快照默认不包含任何特性状态。请注意,指定空数组将导致默认行为。要排除所有特性状态,无论
include_global_state
值如何,请指定一个仅包含值none
的数组(["none"]
)。 -
metadata
- (可选,对象)将任意元数据附加到快照,例如拍摄快照的人员记录、拍摄原因或任何其他有用的数据。元数据必须小于 1024 字节。
-
-
name
- (必需,字符串)策略创建的每个快照自动分配的名称。支持日期数学。为防止快照名称冲突,每个快照名称都会自动附加一个 UUID。
-
repository
- (必需,字符串)用于存储此策略创建的快照的存储库。此存储库必须在策略创建之前存在。您可以使用快照存储库 API 创建存储库。
-
retention
-
(可选,对象)用于保留和删除策略创建的快照的保留规则。
retention
的属性-
expire_after
- (可选,时间单位)快照被视为过期并有资格删除的时间段。SLM 根据
slm.retention_schedule
删除过期的快照。 -
max_count
- (可选,整数)要保留的最大快照数,即使快照尚未过期。如果存储库中的快照数量超过此限制,则该策略将保留最新的快照并删除较旧的快照。此限制仅包括
state
为SUCCESS
的快照。 -
min_count
- (可选,整数)要保留的最小快照数,即使快照已过期。
-
-
schedule
- (必需,Cron 语法 或 时间单位)策略创建快照的周期性或绝对计划。SLM 立即应用
schedule
更改。计划可以是 Cron 计划,也可以是描述快照之间间隔的时间单位。使用时间单位间隔时,第一个快照计划在策略修改时间之后的一个间隔处,然后再次在每个间隔之后。
示例
编辑创建策略
编辑创建 daily-snapshots
生命周期策略
resp = client.slm.put_lifecycle( policy_id="daily-snapshots", schedule="0 30 1 * * ?", name="<daily-snap-{now/d}>", repository="my_repository", config={ "indices": [ "data-*", "important" ], "ignore_unavailable": False, "include_global_state": False }, retention={ "expire_after": "30d", "min_count": 5, "max_count": 50 }, ) print(resp)
const response = await client.slm.putLifecycle({ policy_id: "daily-snapshots", schedule: "0 30 1 * * ?", name: "<daily-snap-{now/d}>", repository: "my_repository", config: { indices: ["data-*", "important"], ignore_unavailable: false, include_global_state: false, }, retention: { expire_after: "30d", min_count: 5, max_count: 50, }, }); console.log(response);
PUT /_slm/policy/daily-snapshots { "schedule": "0 30 1 * * ?", "name": "<daily-snap-{now/d}>", "repository": "my_repository", "config": { "indices": ["data-*", "important"], "ignore_unavailable": false, "include_global_state": false }, "retention": { "expire_after": "30d", "min_count": 5, "max_count": 50 } }
使用间隔计划
编辑使用间隔计划创建 hourly-snapshots
生命周期策略
resp = client.slm.put_lifecycle( policy_id="hourly-snapshots", schedule="1h", name="<hourly-snap-{now/d}>", repository="my_repository", config={ "indices": [ "data-*", "important" ] }, ) print(resp)
const response = await client.slm.putLifecycle({ policy_id: "hourly-snapshots", schedule: "1h", name: "<hourly-snap-{now/d}>", repository: "my_repository", config: { indices: ["data-*", "important"], }, }); console.log(response);
PUT /_slm/policy/hourly-snapshots { "schedule": "1h", "name": "<hourly-snap-{now/d}>", "repository": "my_repository", "config": { "indices": ["data-*", "important"] } }
每小时创建一个快照。第一个快照将在策略修改后一小时创建,随后的快照将在之后每小时创建一次。