AWS CDK - 如何实现跨账户和跨区域部署 (TypeScript)

问题描述 投票:0回答:1

我正在尝试使用 TypeScript 设置 CDK (v2) 堆栈来创建包含阶段的管道堆栈(帐户 A,区域 A)。第一阶段是账户 B、区域 B 的

CloudFormationCreateUpdateStackAction()

很难在网上找到此设置的示例。以前有人尝试过吗?

这个 github 解决方案对我不起作用:

我不确定正确的配置。阻止程序/问题与工件存储桶和 KMS 密钥有关。根据设置,我看到了以下错误:

  1. Error: Cannot add assets to a Stack that uses the BootstraplessSynthesizer
  2. 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.
  3. 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 构造的属性进行部署。

typescript amazon-s3 pipeline aws-cdk aws-regions
1个回答
0
投票

如果您分享您使用的配置,会更容易提供帮助。 看来您正在尝试避免引导,失败后您尝试手动提供存储桶,最后您没有但没有添加

crossAccountKeys: true

我在这里一片黑暗,但似乎是这样。 像最后一样使用引导,但使用 crossAccountKeys 进行配置,确保帐户的角色为 cloudFormationExcusingPolicies 管理员,并且帐户 B 配置为信任管道。

如果我错了,请提供代码示例。

将其添加为评论,但太差了,抱歉。

© www.soinside.com 2019 - 2024. All rights reserved.