我正在尝试使用 TypeScript 设置 CDK (v2) 堆栈来创建包含阶段的管道堆栈(帐户 A,区域 A)。第一阶段是账户 B、区域 B 的
CloudFormationCreateUpdateStackAction()
。
很难在网上找到此设置的示例。以前有人尝试过吗?
这个 github 解决方案对我不起作用:
我不确定正确的配置。阻止程序/问题与工件存储桶和 KMS 密钥有关。根据设置,我看到了以下错误:
Error: Cannot add assets to a Stack that uses the BootstraplessSynthesizer
An error occurred while validating the artifact bucket 'ACCOUNT_B_BUCKET_NAME':The bucket named ACCOUNT_B_BUCKET_NAME is not located in the REGION_B AWS region. Choose a valid artifact bucket in 'REGION_B', or create a new artifact bucket to use in your pipeline.
Error: Artifact Bucket must have a KMS Key to add cross-account action 'ACTION_STAGE_NAME' (pipeline account: 'ACCOUNT_A', action account: 'ACCOUNT_B'). Create Pipeline with 'crossAccountKeys: true' (or pass an existing Bucket with a key)
我希望 CDK 堆栈足够智能,能够创建/允许创建跨账户和跨区域资源,以便根据 CDK 构造的属性进行部署。
如果您分享您使用的配置,会更容易提供帮助。 看来您正在尝试避免引导,失败后您尝试手动提供存储桶,最后您没有但没有添加
crossAccountKeys: true
。
我在这里一片黑暗,但似乎是这样。 像最后一样使用引导,但使用 crossAccountKeys 进行配置,确保帐户的角色为 cloudFormationExcusingPolicies 管理员,并且帐户 B 配置为信任管道。
如果我错了,请提供代码示例。
将其添加为评论,但太差了,抱歉。