Как проверить, изменить и удалить правила жизненного цикла в AWS CLI

Политика жизненного цикла хранится в бакете целиком, поэтому в командной строке любое изменение — это выгрузка текущей конфигурации, правка и повторное применение. Ниже разобран этот цикл, а также временное отключение правила и полное удаление политики. О создании правил читайте в статье «Как настроить правило жизненного цикла через AWS CLI».

Во всех примерах используется профиль rtcloud и эндпоинт https://s3-msk2.rtcloud.ru — подставляйте свои значения.


Просмотр действующих правил

aws s3api get-bucket-lifecycle-configuration \
  --bucket <ИМЯ_БАКЕТА> \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru

Ответ содержит все правила бакета в том виде, в каком их хранит сервис. Ошибка NoSuchLifecycleConfiguration означает, что для бакета не задано ни одного правила, — это не сбой.

Чтобы быстро оценить состав политики, выведите только идентификаторы и статусы:

aws s3api get-bucket-lifecycle-configuration \
  --bucket <ИМЯ_БАКЕТА> \
  --query "Rules[*].[ID, Status]" \
  --output table \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru

Изменение правила

Шаг 1. Выгрузите текущую конфигурацию в файл

aws s3api get-bucket-lifecycle-configuration \
  --bucket <ИМЯ_БАКЕТА> \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru > lifecycle.json

Откройте файл и убедитесь, что он содержит только блок Rules. Если клиент вернул дополнительные поля, удалите их: команда применения принимает документ, в котором на верхнем уровне есть только Rules.

Шаг 2. Сохраните резервную копию

cp lifecycle.json lifecycle.json.bak

Шаг 3. Отредактируйте и примените документ целиком

Внесите правку — например, измените срок хранения с 30 дней на 60 — и примените файл:

aws s3api put-bucket-lifecycle-configuration \
  --bucket <ИМЯ_БАКЕТА> \
  --lifecycle-configuration file://lifecycle.json \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru
Важно! Правила, отсутствующие в новом документе, будут удалены из политики. Именно поэтому конфигурацию всегда правят целиком, а не отправляют одно изменённое правило.

Шаг 4. Проверьте результат

aws s3api get-bucket-lifecycle-configuration \
  --bucket <ИМЯ_БАКЕТА> \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru

Временное отключение правила

Чтобы приостановить действие правила, удалять его не нужно — достаточно изменить статус в выгруженном файле:

"Status": "Disabled"

и применить конфигурацию заново. Правило останется в политике, но применяться не будет: настройки фильтров и сроков сохранятся, и при необходимости правило можно включить обратно одной правкой.


Удаление правил

Команда удаляет все правила бакета сразу:

aws s3api delete-bucket-lifecycle \
  --bucket <ИМЯ_БАКЕТА> \
  --profile rtcloud \
  --endpoint-url https://s3-msk2.rtcloud.ru

Выборочного удаления одного правила в API нет. Чтобы убрать одно правило, выгрузите конфигурацию, удалите из файла соответствующий блок и примените документ заново.

Объекты, ранее удалённые по этим правилам, не восстанавливаются: прекращается только дальнейшая автоматическая очистка.


Как убедиться, что правило работает

Правила выполняются фоново, поэтому проверить их сразу после применения нельзя. Практичный способ:

  • Создайте отдельный тестовый префикс, например lifecycle-test/.
  • Настройте для него правило с минимальным сроком — один день.
  • Загрузите туда несколько небольших файлов.
  • Через двое суток проверьте содержимое префикса командой aws s3 ls:
aws s3 ls s3://<ИМЯ_БАКЕТА>/lifecycle-test/ \
  --profile rtcloud --endpoint-url https://s3-msk2.rtcloud.ru

Если файлы исчезли — механизм работает и правило составлено корректно. После проверки правило и тестовый префикс можно удалить.

Двое суток берутся с запасом: сутки составляют минимальный срок хранения, ещё до суток занимает фоновая обработка.


Изменение правил в S3 Browser

В S3 Browser выгружать и редактировать конфигурацию вручную не требуется: правила изменяются и удаляются в том же диалоге, где создаются (см. «Как настроить правило жизненного цикла через S3 Browser»).


Смотрите также:

к Работе с S3 RTCloud


Рейтинг@Mail.ru Яндекс.Метрика