解决AWS CDK中依赖无法跨Stage边界的S3部署问题
解决AWS CDK跨账号CodePipeline的"dependency cannot cross stage boundaries"错误
问题场景
我创建了负责生成S3 Bucket的ApplicationStack,并将其封装进ApplicationStage中。在跨账号CI/CD的CodePipelineStack里,需要为Alpha、Gamma、Prod三个AWS账号分别实例化ApplicationStage,通过S3DeployAction把网站制品部署到对应账号的S3 Bucket中。
触发的错误
执行cdk synthesize时抛出错误:
"dependency cannot cross stage boundaries"
错误核心提示:无法从App中的CodePipeline栈向Stage内部的资源添加依赖关系。
尝试过的无效方案
我尝试通过ApplicationStage暴露S3 Bucket的引用,将其传递给部署动作,但问题并未得到解决。
有效解决方案
将S3 Bucket及CloudFront分发的创建逻辑拆分到独立栈中,直接部署到目标账号;让管道栈仅承担代码跟踪和S3内容更新的职责,以此规避跨Stage的依赖问题,最终解决了报错。
内容的提问来源于stack exchange,提问作者Yang Liu
相关产品推荐
相关产品推荐

