Использование pydub и AWS Lambda - PullRequest
2 голосов
/ 07 мая 2020

После полудня -

Так что я думаю, что название действительно говорит большую часть этого, но здесь начинается. Я новичок в стране AWS и Lambda и получаю массу удовольствия от изучения этого. Я работаю над проектом, в котором я хочу автоматически объединить два хранилища файлов в S3. Я нашел эту лямбда-функцию у людей по поиску по адресу AWS (https://github.com/aws-samples/chime-voiceconnector-agent-assist/blob/master/infrastructure/function/src/retrieveMergedAudioUrl/lambda_function.py), и она ссылается на:

из pydub import AudioSegment

Так что у меня нет удалось выяснить, как вы импортируете / строите pydub в мире лямбда / бессерверного кода.

Спасибо,

Ричард

Ответы [ 3 ]

1 голос
/ 09 мая 2020

Один из вариантов - связать pydub вместе со своим кодом. У нас была похожая ситуация, и нам пришлось связать все зависимости. Уродливо, но работает.

0 голосов
/ 14 июня 2020

Я бы рекомендовал загрузить pydub как слой Lambda, следуя этим инструкциям (но добавив pydub в файл requirements.txt). Если вы запускаете pydub локально, вы можете узнать, какую версию вы используете:

import pydub
print(pydub.__version__)

Полные инструкции здесь: https://medium.com/@qtangs / create-new- aws -lambda- слой для- python - pandas -библиотека-348b126e9f3e

0 голосов
/ 14 июня 2020

Я чувствую тебя. Я в таком же положении. «Я просто хочу объединить несколько аудиофайлов» ограничено тем фактом, что объединение ffmpeg и ffprobe составляет около 150 МБ. Добавьте boto3 для python, и вам не останется больше ничего, чтобы втиснуть в сегодняшние комбинированные изображения слоя Lambda + размером 250 МБ. Так что, хотя в какой-то момент вам это может сойти с рук, как только вы достигнете этого жесткого предела, у вас возникнут проблемы.

Я подозреваю, что лучшим решением является создание отдельной лямбда-функции pydub с параметрами для адресов S3 источника и назначения + путей. Как только кто-то это сделает и у вас будет открытый исходный код, вы можете развернуть его в своей учетной записи и вызвать из функции c, специфичной для вашего приложения.

Если удастся это сделать, поделюсь ссылкой на него.

...