Вам просто нужно установить событие в контейнере s3 - поставить объект - для запуска лямбда-функции (вы получите доступ к описанию объекта, загруженного в этот сегмент S3 через первый параметр лямбда-функции).
Если вы можете преобразовать видеофайл в аудио на вашем локальном компьютере, используя некоторые внешние библиотеки, то вам нужно создать zip-файл, содержащий вашу лямбда-функцию (в корне zip-файла), а также зависимости.
Это довольно просто в случае с Node.Создайте новую папку, запустите npm init
, установите необходимые модули, создайте файл index.js, куда вы поместите свой код Node.Zip все содержимое этой папки (не сама папка).Когда вы создаете новую лямбда-функцию, выберите загрузку этого zip-файла.
Если вам интересно, как программно обмениваться данными с ресурсами AWS и манипулировать ими, отметьте aws-sdk
, который можно импортировать как модуль и использоватьэто для этой цели.
Так что в основном вам нужно внутри вашей лямбда-функции разобрать аргумент event
(первый параметр), чтобы получить ведро и ключ загруженного объекта.Затем вы вызовете метод s3.getObject
, чтобы получить данные.Обработайте данные с вашей собственной логикой.Вызовите s3.putObject
, чтобы сохранить вновь преобразованные данные в новом местоположении S3.
Lambda имеет доступ к собственной локальной файловой системе, если ваш код должен хранить там некоторые данные.Вам просто нужно указать абсолютный путь к файлу, например /tmp/output.mp3
.Чтобы получить его, вы можете использовать модуль fs
.Затем вы можете продолжить с s3.putObject
.