AWS отправляет имя видео в серверный API после завершения mediaconvert

#amazon-web-services #aws-lambda #aws-media-convert

#amazon-веб-сервисы #aws-lambda #aws-media-convert

Вопрос:

В моем проекте пользователи могут загружать видео. Таким образом, когда пользователь загружает видео, название видео сохраняется в таблице, для поля «is_processed» по умолчанию установлено значение false.

Затем загруженное видео сохраняется в S3. Когда видео a поступает в S3, запускается лямбда-выражение, и видео передается в media convert. После преобразования видео в формат HLS оно снова сохраняется в отдельной корзине S3.

Теперь я хочу, чтобы мое поле «is_processed» было истинным, когда видео будет успешно преобразовано mediaconvert в HLS.

Итак, как я могу связаться с моим бэкэндом Laravel из AWS и сделать поле «is_processed» истинным для этого конкретного видео.

Ответ №1:

Один из способов сделать это — использовать комбинацию тегов метаданных, cloudwatch и другой функции Lambda.

  1. В MediaConvert для каждого задания можно использовать тег метаданных для присвоения уникального идентификатора. Например:

Ключ = uuid

Значение =< название видео>

Это значение необходимо будет вставить в вашу таблицу БД вместе с is_processed=false

Дополнительные сведения о тегах метаданных см. в разделе https://docs.aws.amazon.com/mediaconvert/latest/ug/user-metadata-tags.html

  1. Лямбда-функция, которую вы уже создали, запускает задание в MediaConvert. Следующим шагом в цепочке будет создание события cloudwatch для запуска другой лямбда-функции по завершении задания. Например:

Cloudwatch -> События -> Правила —> Создать правило

Имя службы = MediaConvert

Тип события = Изменение состояния задания MediaConvert

Конкретное состояние = завершено

Цели —> Лямбда-функция

Для получения дополнительной информации о событиях cloudwatch см. https://docs.aws.amazon.com/mediaconvert/latest/ug/cloudwatch_events.html

  1. После завершения задания MediaConvert будет отправлено событие CloudWatch, которое запустит вашу лямбда-функцию, чтобы показать, что задание выполнено. Вы можете использовать пару ключей uuid, определенную в метаданных пользователя, чтобы найти запись в базе данных, обновите с is_processed=false на is_processed= true.