我正在尝试部署一个基础设施堆栈,在那里我想使用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个的输入工件";。不幸的是,当我查找文档时,我只看到可以有一个以上输入源的声明。没有规定上限。
有人能很好地解决这个限制吗?还是我应该接受合并几个回购,或者将我的主要基础设施代码拆分为两个单独的CodeBuildActions?
可以通过Action.actionProperties.artifactBounds
属性以编程方式访问这些限制。
这里描述了限制,CodeBuild操作的限制是5个输入工件。为了解决这个问题,您可以使用将输入工件合并为一个工件的中间CodeBuild操作。您可以使用其中的两个,为每个工件提供一个子集,并将生成的两个工件提供给构建操作。或者,您可以只执行一个合并操作,然后直接传递其余的工件。不过,我会考虑合并一些回购。