Автоматическое удаление фрагментов OBS
Фрагменты OBS — это неполные данные, которые генерируются в результате сбоя во время загрузки объектов в бакет. Основные причины их возникновения:
-
Прерывания связи с сервером OBS из-за плохого соединения с сетью.
-
Ручная приостановка загрузки.
-
Неисправность или внезапное отключение устройства, с которого идет загрузка.
Если при загрузке произошел сбой, ее следует повторить, а сгенерированные фрагменты удалить, так как они занимают место в хранилище и тарифицируются так же, как и полноценные объекты.
С помощью этой инструкции можно создать функцию, которая будет автоматически удалять фрагменты из хранилища.
Создание политики и представительства в IAM
-
В списке сервисов выберите Identity and Access Management.
-
В боковом меню выберите Permissions.
-
Нажмите Create Custom Policy.
-
Заполните параметры политики:
-
Policy Name — укажите название политики.
-
Policy view — выберите JSON.
-
Policy Content — введите следующий код:
{"Version": "1.1","Statement": [{"Action": ["obs:*"],"Effect": "Allow"}]}
-
-
Сохраните политику — нажмите OK.
-
В боковом меню выберите Agencies.
-
Нажмите Create Agency.
-
Заполните параметры представительства:
-
Agency Name — укажите название представительства.
-
Agency Type — выберите Cloud service.
-
Cloud Service — нажмите Select и выберите FunctionGraph.
-
Validity Period — выберите из списка Unlimited.
-
Permissions — нажмите Assign Permissions. В выпадающем списке All policies/roles нажмите Custom policies и выберите созданную ранее политику.
-
-
Сохраните представительство — нажмите OK.
Создание функции
-
Для создания функции скачайте Java-файл с кодом и настройки для функции в YAML-формате.
-
В списке сервисов выберите FunctionGraph.
-
В боковом меню выберите Functions.
-
Нажмите Import Function.
-
Заполните параметры импорта:
-
App — выберите default.
-
Нажмите Select File и выберите скачанные файлы (clean_obs_fragments.jar, clean_obs_fragments.yaml).
-
В блоке Functions в поле Name укажите имя функции или оставьте значение по умолчанию.
-
-
Сохраните параметры — нажмите OK.
-
Перейдите на вкладку Configuration.
-
Agency — выберите из списка созданное ранее представительство.
-
Environment Variables — в строке с Key, равным age_hours, отредактируйте значение Value — возраст фрагмента в часах. Например, 24.
ПримечаниеПо умолчанию возраст фрагмента установлен на 0. Это означает, что все фрагменты будут немедленно удалены после срабатывания триггера функции.
-
-
В правом верхнем углу нажмите Save.
-
Перейдите на вкладку Triggers.
-
Нажмите Create Trigger и заполните параметры триггера:
-
Trigger Type — выберите из списка тип Timer.
-
Timer Name — укажите название триггера.
-
Rule — выберите и настройте правило удаления фрагментов:
-
Fixed rate — заданная периодичность запуска триггера.
-
Cron Expression — периодичность задается с помощью cron-выражения.
-
-
-
Сохраните триггер — нажмите OK.
Функция удаления фрагментов OBS готова.
- Создание политики и представительства в IAM
- Создание функции