Как начать конвертацию мультимедиа с помощью Ruby в AWS Lambda? - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь запустить задание MediaConvert с Ruby в AWS Lambda после того, как файл был загружен в корзину.Событие начинается нормально, но у меня возникают проблемы при запуске задания.

Я пытался следовать инструкциям отсюда, чтобы инициировать клиента: https://docs.aws.amazon.com/sdkforruby/api/Aws/MediaConvert/Client.html

И отсюда, чтобы начатьработа: https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/MediaConvert/Client.html#create_job-instance_method

# Event to kick off the media conversion: file uploaded to a bucket
sourceS3Bucket = event['Records'][0]['s3']['bucket']['name']
sourceS3Key = event['Records'][0]['s3']['object']['key']
sourceS3 = 's3://'+ sourceS3Bucket + '/' + sourceS3Key
jobMetadata['input'] = sourceS3

# Loading the MediaConvert settings
json_from_file = File.read('job.json')
jobSettings = JSON.parse(json_from_file)

# Initiating a client
client = Aws::MediaConvert::Client.new(
  access_key_id: ENV['ACCESS_KEY_ID'],
  secret_access_key: ENV['SECRET_ACCESS_KEY']
)

# Kicking off a job
response = client.create_job({
  Role: ENV['MediaConvertRole'],
  UserMetadata: jobMetadata,
  Settings: jobSettings
})

Я получаю эту ошибку:

Critical exception from handler
{
  "errorMessage": "uninitialized constant Aws::MediaConvert",
  "errorType": "Function<NameError>",
  "stackTrace": [
    "/var/task/convert.rb:38:in `rescue in call'",
    "/var/task/convert.rb:6:in `call'"
  ]
}

Я не уверен, почему функция не работает, у вас есть какие-либо подсказки, пожалуйста?

1 Ответ

2 голосов
/ 24 июня 2019

Вам необходимо установить aws-sdk-mediaconvert gem.Добавьте это в Gemfile:

gem 'aws-sdk-mediaconvert'

и запустите

bundle

Если вы все еще получаете эту ошибку, укажите ее в верхней части вашего задания MediaConvert:

require 'aws-sdk-mediaconvert'
...