Вызовите скрипт .py из пакета развертывания (добавленного как слой) в AWS лямбда, используя python - PullRequest
1 голос
/ 06 мая 2020

Я добавил zip-файл в качестве пакета развертывания, который включает сценарий xxx.py.

Моя лямбда-функция должна вызывать сценарий xxx.py из пакета.

Моя лямбда-функция, как показано ниже:

libdir = os.path.join(os.getcwd(), 'local', 'lib')
download_path = '/tmp/{}{}'.format(uuid.uuid4(), key)
command = 'LD_LIBRARY_PATH={} python xxx.py "{}"'.format(libdir, download_path)
output_path = subprocess.check_output(command, shell=True)

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

Command 'LD_LIBRARY_PATH=/var/task/local/lib python xxx.py "/tmp/52513240-a9 returned non-zero exit status 2.: CalledProcessError

В моем пакете развертывания есть файл xxx.py в нескольких подпапках в zip-файле. .

Нужно ли мне устанавливать переменную окружения в лямбда-функции? Если да, то каковы могут быть ключ и значение в моем случае.

Есть ли другой способ вызвать сценарий python из пакета развертывания в лямбда-выражении?

Пожалуйста, помогите. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

перепишите ваш main в .py как функцию, которая принимает параметр и в основном lamba передает триггер s3 классу на втором уровне.

псевдокод

внутри ваш второй слой

___main(s3_event)___ # or rename from main to some_function
# some code

в вашей основной лямбда

import xxx.py as xxx
xxx.___main(s3_event)___
0 голосов
/ 07 мая 2020

Спасибо Mayank, но все же - как мне вызвать основную функцию файла .py из моей лямбда-функции после импорта.

Моя лямбда-функция будет фактически срабатывать на основе события s3, которое, в свою очередь, должно вызывать основная функция из .py скрипта в пакете, а вывод должен быть возвращен в другую корзину. Это мое общее намерение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...