Этот вопрос возник из этот. Теперь, когда я лучше понимаю, что там происходило не так, и нашел работоспособное, хотя и несовершенное, решение, я отправка более целенаправленных последующих действий (я все еще новичок в 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. Более того, это предполагает, что --use-container
требуется для «пакетов, которые содержат программы, скомпилированные в собственном коде»).
Это заставляет меня задуматься, пытаюсь ли я сделать что-то не так. Какой рекомендуемый способ создания сервисов SAM в рабочем процессе CI / CD на AWS?