Build/CodeBuild 不能有超过 5 个输入工件

Build/CodeBuild cannot have more than 5 input artifacts

我正在尝试部署一个基础设施堆栈,我想在其中使用 5 个额外回购的工件作为输入。我有 5 个额外存储库的原因是因为我试图将业务逻辑与主要基础设施堆栈分开。

我的 CodePipeline 的 CDK 代码如下所示:

deploy_acc.add_action(
    actions.CodeBuildAction(
        input=artifact_infra_code,
        extra_inputs=[
            artifact_extra_1,
            artifact_extra_2,
            artifact_extra_3,
            artifact_extra_4,
            artifact_extra_5,
        ],
        action_name="deploy_data_pipeline",
        project=deploy_data_processing_project,
    )
)

但是,当我 运行 cdk synth 时出现以下错误:“Build/CodeBuild 不能有超过 5 个输入工件”。不幸的是,当我查找 documentation 时,我只看到可以有多个输入源的声明。没有规定上限。

有没有人对这个限制有好的作品around/solution?或者我应该接受我应该合并几个 repo 还是将我的主要基础代码拆分成两个单独的 CodeBuildActions?

可以通过 Action.actionProperties.artifactBounds 属性.

以编程方式访问这些限制

描述了限制 here,并且 CodeBuild 操作确实有 5 个输入项目的限制。要解决此问题,您可以使用中间 CodeBuild 操作将输入工件合并为一个。您可以使用其中的两个,为每个提供工件的一个子集,并将生成的两个提供给构建操作。或者你可以只进行一次合并操作,直接传递其余的工件。不过,我会考虑合并一些回购协议。