Развертывание безсерверной инфраструктуры с проблемой внешних зависимостей

У меня есть две лямбда-функции: lambda_fn_1 и lambda_fn_2 со следующими зависимостями: 1. lambda_fn_1 имеет модуль "запросы" в качестве внешней зависимости 2. lambda_fn_2 имеет модуль "psycopg2" в качестве внешней зависимости

Я хочу развернуть эти функции в AWS Lambda, используя безсерверный фреймворк. Вот мой файл шаблона serverless.yaml:

Я создал файл require.txt, который имеет обе зависимости. Теперь я хочу развернуть lambda_fn_1 только с модулем зависимости "запросы" и lambda_fn_2 только с модулями зависимости "psycopg2". Какие изменения следует внести в файл шаблона без сервера?

1 ответ

Решение

Вместо того, чтобы иметь один единственный файл require.txt, который имеет обе зависимости, подобные этой:

- requirements.txt:
    - requests
    - psycopg2

Имейте два отдельных файла require.txt, каждый для одной лямбда-функции, которая имеет только необходимые зависимости для этой лямбда-функции. Это будет новая структура папок:

- lambda_fn_1:
    - requirements.txt (requests)
    - handler.py
- lambda_fn_2:
    - requirements.txt (psycopg2)
    - handler.py

и это будет модификация в безсерверном шаблоне:

- lambda_fn_1:
    handler: handler.lambda_handler
    module: lambda_fn_1
- lambda_fn_2:
    handler: handler.lambda_handler
    module: lambda_fn_2

"Модуль" отображает место, где фреймворк выбирает файл require.txt, и, таким образом, он берет этот файл только в этой конкретной папке.

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