这个问题源自这个问题。现在我对那里出了什么问题有了更好的理解,并且有了一个可行但不完美的解决方案,我正在提交一个更加专注的后续问题(我在StackOverflow上还是个新手-请告诉我这是否违反了礼仪,我应该跟进原始问题)。
此页面建议:“您可以使用AWS CodeBuild构建、本地测试和打包无服务器应用程序”。但是,当我在我的
此外,如果我使用
这让我想知道是否我正在尝试做错了什么。 在AWS的CI/CD工作流程中,构建SAM服务的推荐方法是什么?
buildspec.yml
中包含sam build
命令时,我会得到以下日志输出,表明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
此外,如果我使用
pip install aws-sam-cli
安装SAM,并在CodeBuild中运行sam build --use-container
,会出现错误。虽然sam build
本身成功了,但由于它没有安装测试依赖项,我仍然需要使用pip install -r tests/requirements-test.txt -t .
才能在CodeBuild中运行测试。此外,这篇文章表明"具有本地编译程序的包"需要使用--use-container
。这让我想知道是否我正在尝试做错了什么。 在AWS的CI/CD工作流程中,构建SAM服务的推荐方法是什么?
requests-mock
,pytest
等),那么在构建期间如何运行测试?此设置是否允许您使用“具有本地编译程序的软件包”(通常需要sam build --use-container
)?您为什么要将“cloudformation-packaged.yaml”文件导出到S3,而不是直接在CodePipeline的“部署”阶段中引用它? - scubbosam package
命令而是使用 cfn package/s3 copy 命令的原因是什么? - abbottdevsam package
命令作为你的最后一步呢? - Stefano Messina