API создания или обновления политики жизненного цикла снимков
Создаёт или обновляет политику жизненного цикла снимков.
Запрос
PUT /_slm/policy/<snapshot-lifecycle-policy-id>
Предварительные условия
Если в Elasticsearch включены функции безопасности, вам необходимо иметь право manage_slm кластера и право manage индекса для любого включённого индекса для использования этого API. Дополнительную информацию см. в разделе Права доступа.
Описание
Используйте API создания или обновления политики жизненного цикла снимков для создания или обновления политики жизненного цикла снимков.
Если политика уже существует, этот запрос увеличивает версию политики. Только последняя версия политики сохраняется.
Параметры пути
-
<snapshot-lifecycle-policy-id> - (Обязательно, строка) Идентификатор политики жизненного цикла снимка, которую вы хотите создать или обновить.
Параметры запроса
-
master_timeout - (Необязательно, единицы времени) Период ожидания узла-мастера. Если узел-мастер недоступен до истечения срока ожидания, запрос завершается неудачей и возвращает ошибку. По умолчанию значение
30s. Также может быть установлено значение-1, чтобы указать, что запрос никогда не должен истекать. -
timeout - (Необязательно, единицы времени) Период ожидания ответа от всех соответствующих узлов кластера после обновления метаданных кластера. Если ответ не получен до истечения срока ожидания, обновление метаданных кластера всё ещё применяется, но ответ укажет, что он не был полностью подтверждён. По умолчанию значение
30s. Также может быть установлено значение-1, чтобы указать, что запрос никогда не должен истекать.
Тело запроса
-
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. Состояние кластера включает:- Постоянные настройки кластера
- Шаблоны индексов
- Шаблоны индексов (старого формата)
- Потоки обработки
- Политики жизненного цикла индексов
- Сохранённые скрипты
- Для снимков, сделанных после 7.12.0, состояния функций
-
indices -
(Необязательно, строка или массив строк) Список потоков данных и индексов, разделяемых запятыми, которые следует включить в снимок. Поддерживает синтаксис множественных целей. По умолчанию пустой массив (
[]), который включает все обычные потоки данных и индексы. Для исключения всех потоков данных и индексов используйте-*.Вы не можете использовать этот параметр для включения или исключения системных индексов или системных потоков данных из снимка. Используйте
feature_statesвместо этого.
-
feature_states -
(Необязательно, массив строк) Состояния функций для включения в снимок. Чтобы получить список возможных значений и их описаний, используйте API получения функций.
Если
include_global_stateравноtrue, снимок включает все состояния функций по умолчанию. Еслиinclude_global_stateравноfalse, снимок не включает никаких состояний функций по умолчанию.Обратите внимание, что указание пустого массива приведёт к поведению по умолчанию. Для исключения всех состояний функций, независимо от значения
include_global_state, укажите массив только со значениемnone(["none"]). -
metadata - (Необязательно, объект) Прикрепляет произвольные метаданные к снимку, такие как запись о том, кто сделал снимок, почему он был сделан или любые другие полезные данные. Метаданные должны быть меньше 1024 байтов.
-
partial -
(Необязательно, булево) Если
false, весь снимок завершится неудачей, если один или несколько индексов, включённых в снимок, не имеют всех первичных фрагментов доступными. По умолчаниюfalse.Если
true, разрешает создание частичного снимка индексов с недоступными фрагментами.
-
-
name - (Обязательно, строка) Имя, автоматически присваиваемое каждому снимку, созданному политикой. Поддерживается математика дат. Для предотвращения конфликтов имён снимков к каждому имени снимка автоматически добавляется UUID.
-
repository - (Обязательно, строка) Репозиторий, используемый для хранения снимков, созданных этой политикой. Этот репозиторий должен существовать до создания политики. Вы можете создать репозиторий, используя API репозитория снимков.
-
retention -
(Необязательно, объект) Правила хранения, используемые для сохранения и удаления снимков, созданных политикой.
Свойства
retention-
expire_after - (Необязательно, единицы времени) Период времени, после которого снимок считается просроченным и подлежит удалению. SLM удаляет просроченные снимки в соответствии с
slm.retention_schedule. -
max_count - (Необязательно, целое число) Максимальное количество снимков для сохранения, даже если снимки ещё не истекли. Если количество снимков в репозитории превышает это значение, политика сохраняет самые последние снимки и удаляет более старые. Это ограничение включает только снимки с
stateв состоянииSUCCESS. -
min_count - (Необязательно, целое число) Минимальное количество снимков для сохранения, даже если они истекли.
-
-
schedule - (Обязательно, синтаксис Cron или единицы времени) Периодическое или абсолютное расписание создания снимков политикой. SLM применяет
scheduleизменения сразу. Расписание может быть либо расписанием Cron, либо единицей времени, описывающей интервал между снимками. При использовании интервала единиц времени первый снимок планируется через один интервал после времени изменения политики, а затем — через каждый интервал после этого.
Примеры
Создание политики
Создайте политику жизненного цикла:
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
}
} | Время создания моментального снимка, в данном случае, ежедневно в 1:30. | |
| Имя, которое должно быть присвоено каждому моментальному снимку. | |
| Репозиторий, в котором должен быть создан моментальный снимок. | |
| Дополнительные параметры конфигурации моментального снимка. | |
| Потоки данных и индексы, которые должны быть включены в моментальный снимок. | |
| Дополнительная конфигурация хранения. | |
| Хранить моментальные снимки в течение 30 дней. | |
| Всегда сохранять как минимум 5 успешных моментальных снимков, даже если они старше 30 дней. | |
| Хранить не более 50 успешных моментальных снимков, даже если они младше 30 дней. |
Использование интервального планирования
Создайте политику жизненного цикла с использованием интервального планирования:
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"]
}
} Создаёт моментальный снимок один раз в час. Первый снимок будет создан через час после изменения политики, а последующие — каждый час.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/slm-api-put-policy.html