Этот вопрос возник из этого .Теперь, когда я лучше понимаю, что там происходит, и работоспособное, хотя и несовершенное, решение , я отправляю более сфокусированное продолжение (я все еще новичок в StackOverflow- пожалуйста, дайте мне знать, если это противоречит этикету, и я должен продолжить на оригинале).
Эта страница предполагает, что " Вы используете AWS CodeBuild для сборки, локального тестированияи упакуйте ваше безсерверное приложение".Однако, когда я включаю команду sam build
в свой buildspec.yml
, я получаю следующий вывод журнала, предполагая, что sam
не установлен на образах CodeBuild:
[Container] 2018/12/31 11:41:49 Running command sam build --use-container
sh: 1: sam: not found
[Container] 2018/12/31 11:41:49 Command did not exit successfully sam build --use-container exit status 127
[Container] 2018/12/31 11:41:49 Phase complete: BUILD Success: false
[Container] 2018/12/31 11:41:49 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: sam build --use-container. Reason: exit status 127
Более того, если я установлю SAMс pip install aws-sam-cli
, выполнение sam build --use-container
в CodeBuild дает ошибку .sam build
само по себе успешно, но так как он не устанавливает тестовые зависимости, мне все равно нужно использовать pip install -r tests/requirements-test.txt -t .
, чтобы иметь возможность запускать тесты в CodeBuild.Более того, this предполагает, что --use-container
требуется для " пакетов, которые имеют встроенные программы ").
Это заставляет меня задуматься, пытаюсь ли я это сделатьчто-то не так. Каков рекомендуемый способ построения сервисов SAM в рабочем процессе CI / CD на AWS ?