我正在研究CI / CD AWS lambda。我的管道中的构建步骤将使用该模板,并生成一个引用新源代码的输出模板。当原始模板与lambda的源代码一起存储时,此方法有效,但这是有问题的,因为然后我需要原始模板的两个副本(一个在我的cloudformation git repo中,一个带有lambda源代码)。我曾经有一个错误,在那里我更新了模板的一个副本,却忘了更新另一个。让管道从S3下载lambda而不是将其保存在git中似乎很简单,但是当我这样做时,我在CodeBuild的DOWNLOAD_SOURCE阶段遇到一个奇怪的错误:
CLIENT_ERROR: found duplicate source location for secondary source LambdaTemplate
我不知道这是怎么回事。这个错误甚至意味着什么?我还有其他管道,它们以完全相同的方式使用辅助资源,没有任何问题。这个错误在我的buildspec甚至运行之前就已经发生了,所以这不是一个错误。有想法吗?
答案 0 :(得分:0)
如果管道中的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.com/codebuild/latest/userguide/sample-pipeline-multi-input-output.html
答案 1 :(得分:0)