Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST APIs ›APIs управления жизненным циклом снимков

API создания или обновления политики жизненного цикла снимков

Новая справка API

Для получения самых актуальных данных API обратитесь к 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API