без сервера - aws - SecureLambdaFunction env - PullRequest
0 голосов
/ 15 февраля 2019

У меня следующий случай:

Я установил несколько переменных окружения в моем файле serverless.yml, например:

ONE_CLIENT_SECRET=${ssm:/one/key_one~true}
ONE_CLIENT_PUBLIC=${ssm:/one/key_two~true}

ANOTHER_SERVICE_KEY=${ssm:/two/key_one~true}
ANOTHER_SERVICE_SECRET=${ssm:/two/key_two~true}

Позвольте мне сказать, что у меня есть 10 envs, когда япри попытке развертывания я получаю следующую ошибку:

An error occurred: SecureLambdaFunction - Lambda was unable to configure your environment variables because the environment variables you have provided exceeded the 4KB limit. String measured: JSON_WITH_MY_VARIABLES_HERE

Так что я не могу развернуть, у меня есть представление о проблеме, но у меня нет четкого пути ее решения, поэтому мои вопросы:

1) Как я могу расширить лимит 4Kb?
2) предполагая, что мои переменные установлены с использованием SSM, я использую хранилище параметров EC2 для их сохранения.(это больше относится к команде без сервера или кому-то, кто знает тему) как это работает за кулисами?- когда я запускаю sls deploy, он выбирает значения и включается в файл .zip?(это то, что, я думаю, так и есть, я просто хочу уточнить) или оно извлекает значения, когда я запускаю лямбды?Я спрашиваю, потому что я иду к лямбда-консоли AWS, и я вижу их там.

Спасибо!

1 Ответ

0 голосов
/ 24 февраля 2019

После глубокого осмотра я пришел к следующему выводу:

Использование этого шаблона ONE_CLIENT_SECRET=${ssm:/one/key_one~true} означает, что среда sls собирается загружать значения во время компиляции и вставлять в проект,вот где возникает проблема, вы можете увидеть это после загрузки проекта, ваши переменные будут установлены в виде простого текста на лямбда-консоли.

Мое решение состояло в том, чтобы использовать промежуточное промежуточное ПО для загрузки значений ssm, когдавыполнение лямбдаЭто означает, что вам нужно кодировать свой проект так, чтобы он не вызывал никакого кода, пока переменные не стали доступны, и найти хорошую стратегию для перехвата переменных (холодный запуск), в противном случае это увеличит время выполнения.

Предел 4Kb не может быть изменен, и после прочтения об этом, это кажется очевидным.

Итак, коротко, найдите стратегию промежуточного программного обеспечения и вставьте значения, которые лучше всего подходят для вас, если вы обнаружите эту проблему.

...