Используя aws.sdk, как узнать, когда Elemental MediaConvert завершает работу?
Я хотел бы добавить возможность пользователям загружать видео на веб-сайт. Меня интересует AWS Elemental MediaConvert для обработки необходимого транскодирования.
Используя aws sdk, я могу отправить задание в aws Elemental MediaConvert для перекодирования, например так...
const result = await new AWS.MediaConvert({apiVersion: '2017-08-29'}).createJob(params).promise()
... Однако это только возвращает вновь созданную работу. Кажется, я нигде не вижу, как на самом деле узнать, когда работа закончится. Я задаюсь вопросом: существует ли простой способ узнать, когда задание действительно завершается (или не удается), чтобы я мог отправить ответ клиенту?
1 ответ
Один из способов сделать это - использовать CloudWatch Events и Simple Notification Service ( SNS).
Вы должны были бы:
- Настройте конечную точку HTTP на вашем веб-сервере для обработки входящих уведомлений.
- Создайте тему SNS и подпишите свою конечную точку HTTP на эту тему.
- Настройте правило события CloudWatch, как описано в zolaemil, и задайте цель события в теме SNS.
Когда ваше задание MediaConvert завершится, оно вызовет событие CloudWatch и отправит результат задания в SNS, который затем перенаправит его на ваш веб-сервер. Таким образом, вы фактически нажимаете MediaConvert на свой веб-сервер, а не опрашиваете.
Вы можете настроить правила Cloudwatch на основе событий MediaConvert. Например
{
"source": [
"aws.mediaconvert"
],
"detail-type": [
"MediaConvert Job State Change"
],
"detail": {
"status": [
"COMPLETE"
]
}
}
которые могут быть нацелены на множество вещей, включая лямбда-функции, темы SNS и многое другое.