我正在研究一个CICD AWS lambda。我的流水线中的一个构建步骤需要模板并生成一个输出模板,并引用新的源代码。当原始模板与lambda的源代码一起存储时,这样做是可行的,但这是有问题的,因为我需要两个原始模板的副本(一个在我的cloudformation git repo中,一个与lambda源代码一起)。我已经出现过一次错误,我更新了一个模板副本,却忘记更新另一个。让管道从S3下载lambda而不是把它保存在git中似乎很直接,但当我这样做时,我在CodeBuild的DOWNLOAD_SOURCE阶段得到一个奇怪的错误。
CLIENT_ERROR: found duplicate source location for secondary source LambdaTemplate
我不明白这是怎么回事。这个错误到底是什么意思?我有其他的流水线也是以同样的方式使用二级源,没有任何问题。这个错误在我的buildpec运行之前就发生了,所以这不是一个错误。有什么办法吗?
如果你在流水线中的CodeBuild动作配置是采取多个源码输入,能否检查一下输入工件的名称是否不一样。
{
"name": "Build",
"actions": [
{
"inputArtifacts": [
{
"name": "source1" <================ Check this
},
{
"name": "source2" <================ and this
}
],
"name": "Build",
"actionTypeId": {
"category": "Build",
"owner": "AWS",
"version": "1",
"provider": "AWS CodeBuild"
},
"outputArtifacts": [
{
"name": "artifact1"
},
{
"name": "artifact2"
}
],
"configuration": {
"ProjectName": "my-build-project-name",
"PrimarySource": "source1"
},
"runOrder": 1
}
]
}
],
完整的参考资料在这里。https:/docs.aws.amazon.comcodebuildlatestuserguidesample-pipeline-multi-input-output.html。