Используя 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).

Вы должны были бы:

  1. Настройте конечную точку HTTP на вашем веб-сервере для обработки входящих уведомлений.
  2. Создайте тему SNS и подпишите свою конечную точку HTTP на эту тему.
  3. Настройте правило события CloudWatch, как описано в zolaemil, и задайте цель события в теме SNS.

Когда ваше задание MediaConvert завершится, оно вызовет событие CloudWatch и отправит результат задания в SNS, который затем перенаправит его на ваш веб-сервер. Таким образом, вы фактически нажимаете MediaConvert на свой веб-сервер, а не опрашиваете.

Вы можете настроить правила Cloudwatch на основе событий MediaConvert. Например

{
  "source": [
    "aws.mediaconvert"
  ],
  "detail-type": [
    "MediaConvert Job State Change"
  ],
  "detail": {
    "status": [
      "COMPLETE"
    ]
  }
}

которые могут быть нацелены на множество вещей, включая лямбда-функции, темы SNS и многое другое.

Другие вопросы по тегам