Указание файла, который запускает событие в лямбда-коде

проблема: Я не могу указать файл, вызывающий событие. Цель состоит в том, чтобы добавить водяной знак к загружаемым видеофайлам. Я успешно сделал это в эластичном транскодере, создав конвейер и задание, но теперь цель состоит в том, чтобы автоматизировать этот процесс после загрузки файлов.

Теперь я хочу автоматизировать этот процесс загрузки файлов в корзину s3.

Это моя попытка (объясню мою проблему после кода):

require 'json'
require 'aws-sdk-elastictranscoder'
require "aws-sdk-s3"


def lambda_handler(event:, context:)
  client = Aws::ElasticTranscoder::Client.new(region: 'us-east-1')

  s3 = Aws::S3::Resource.new()
  # object = s3.bucket(bucket_name).object(object_name)
  # bucket_name = event["s3"]["bucket"]["name"]
  # object_name = event["s3"]["object"]["key"]

    resp = client.create_job({
  pipeline_id: "1552343938210-qevnz1", # required
  input: {
    key: "#{s3}",
    },
  output: {
    key: "#{s3}",
   preset_id: "1351620000001-000001",
    watermarks: [
      {
        preset_watermark_id: "TopRight",
        input_key: "uploads/listing/image/10/listing_howard-stern.jpg",
       },
    ],
  }
  })

end

см., где:

key: "#{s3}",
    },

Вот тут у меня проблемы. Я не уверен, как вызвать точный файл, который вызывает событие. Я хочу, чтобы к загружаемому файлу был добавлен водяной знак, а затем выводился в то же имя файла в том же месте.

это возвращает меня:

input=#<Aws::S3::Resource:0x000055bc11bb4388>\ и ничего не происходит, задание не выполняется из-за того, что ввод не указан.

Как я могу определить или указать файл?

Я не могу найти способ до сих пор.

Зачем вы создаете ресурс S3 внутри лямбды, если цель состоит в том, чтобы обрабатывать уже загруженные материалы? Насколько я понял, сама лямбда срабатывает по загруженному файлу, да? В этом случае вы должны использовать полезную нагрузку события S3, которая содержит имя файла (см. здесь docs.aws.amazon.com/en_us/lambda/latest/dg/with-s3.html)

Konstantin Strukov 14.03.2019 11:37

Хм, так вы говорите, что даже если бы я мог указать файл, я бы даже не смог его изменить, потому что его еще нет в ведре s3, так как лямбда впереди этого?

uno 14.03.2019 20:01
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
2
50
0

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