Как настроить сборку sam, чтобы она передавалась как sh и имела доступ к моему частному репо на GitHub? - PullRequest
3 голосов
/ 16 июня 2020

Я создал стек лямбда-функций и использую ide pycharm для их тестирования на моем локальном хосте. В файле requirements.txt я добавил ссылку на частный репозиторий на github.

Репозиторий работает, и я смог установить его через файл requirements.txt других проектов.

Но когда я запускаю локальный тест, используя aws sam cli, sam build не работает, потому что в контейнере нет ключа s sh для доступа к репозиторию.

Есть ли способ настроить процесс сборки sam и дать ему мой s sh ключ для доступа к контейнеру моего частного репо и установки пакета?

Или какое-нибудь другое решение?

1 Ответ

1 голос
/ 31 августа 2020

Это решение написано для Python, но, вероятно, оно так или иначе применимо к node.js, Java et c.

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

grep -v "git+" requirements.txt > public_requirements.txt 
sam build --template-file "$TEMPLATE_FILE" --build-dir build --use-container --manifest public_requirements.txt

echo "Adding private dependencies"
grep "git+" requirements.txt | xargs python -m pip install --no-deps -t build/LambdaFunction/

Если ваши частные зависимости зависят от библиотек, которые скомпилированы изначально, вы можете добавить их во временные public_requirements.txt, или установите их в другой контейнер, а затем скопируйте в build/LambdaFunction/.

...