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

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

Справочник по новым API

Для получения самых последних данных об API, обратитесь к API управления жизненным циклом индексов.

Создаёт или обновляет политику жизненного цикла. См. Жизненный цикл индексов для определений компонентов политики.

Запрос

PUT _ilm/policy/<policy_id>

Предварительные требования

  • Если в Elasticsearch включены функции безопасности, вам необходимо иметь право manage_ilm кластера, чтобы использовать этот API. Вам также необходимо право manage на все индексы, управляемые policy. ILM выполняет операции от имени пользователя, который последний раз обновил политику. У ILM есть только роли, назначенные пользователю в момент последнего обновления политики.

Описание

Создаёт политику жизненного цикла. Если указанная политика существует, она заменяется, а версия политики увеличивается.

Хранится только последняя версия политики, вернуться к предыдущим версиям нельзя.

Параметры пути

<policy_id>

(Обязательно, строка) Идентификатор политики.

Чтобы избежать коллизий имён с встроенными и управляемыми Fleet политиками ILM, не используйте @ в качестве части идентификатора собственных политик ILM.

Параметры запроса

master_timeout
(Необязательно, единицы времени) Период ожидания главного узла. Если главный узел недоступен до истечения времени ожидания, запрос завершается ошибкой. По умолчанию 30s. Также может быть установлен на -1, чтобы указать, что запрос никогда не должен истекать.
timeout
(Необязательно, единицы времени) Период ожидания ответа от всех соответствующих узлов кластера после обновления метаданных кластера. Если ответ не получен до истечения времени ожидания, обновление метаданных кластера всё равно применяется, но ответ укажет, что оно не было полностью подтверждено. По умолчанию 30s. Также может быть установлен на -1, чтобы указать, что запрос никогда не должен истекать.

Примеры

В следующем примере создаётся новая политика с именем my_policy. Кроме того, вы можете использовать параметр _meta, чтобы добавить произвольные метаданные в политику, параметр _meta необязателен и не генерируется или используется Elasticsearch автоматически. Чтобы сбросить _meta, замените политику без указания значения. Чтобы проверить _meta, вы можете использовать API получения политики жизненного цикла.

resp = client.ilm.put_lifecycle(
    name="my_policy",
    policy={
        "_meta": {
            "description": "used for nginx log",
            "project": {
                "name": "myProject",
                "department": "myDepartment"
            }
        },
        "phases": {
            "warm": {
                "min_age": "10d",
                "actions": {
                    "forcemerge": {
                        "max_num_segments": 1
                    }
                }
            },
            "delete": {
                "min_age": "30d",
                "actions": {
                    "delete": {}
                }
            }
        }
    },
)
print(resp)
response = client.ilm.put_lifecycle(
  policy: 'my_policy',
  body: {
    policy: {
      _meta: {
        description: 'used for nginx log',
        project: {
          name: 'myProject',
          department: 'myDepartment'
        }
      },
      phases: {
        warm: {
          min_age: '10d',
          actions: {
            forcemerge: {
              max_num_segments: 1
            }
          }
        },
        delete: {
          min_age: '30d',
          actions: {
            delete: {}
          }
        }
      }
    }
  }
)
puts response
const response = await client.ilm.putLifecycle({
  name: "my_policy",
  policy: {
    _meta: {
      description: "used for nginx log",
      project: {
        name: "myProject",
        department: "myDepartment",
      },
    },
    phases: {
      warm: {
        min_age: "10d",
        actions: {
          forcemerge: {
            max_num_segments: 1,
          },
        },
      },
      delete: {
        min_age: "30d",
        actions: {
          delete: {},
        },
      },
    },
  },
});
console.log(response);
PUT _ilm/policy/my_policy
{
  "policy": {
    "_meta": {
      "description": "used for nginx log",
      "project": {
        "name": "myProject",
        "department": "myDepartment"
      }
    },
    "phases": {
      "warm": {
        "min_age": "10d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          }
        }
      },
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Если запрос успешен, вы получите следующий результат:

{
  "acknowledged": true
}

© 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/ilm-put-lifecycle.html

Spec-Zone.ru

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