gpt4 book ai didi

aws-codepipeline - CDK 中 Code Pipeline 的跨账户访问

转载 作者:行者123 更新时间:2023-12-05 02:07:16 25 4
gpt4 key购买 nike

我正在尝试使用 CDK 和 CodePipeline 设置跨账户部署管道。

我从 AWS 文档构建了示例 CodePipeline 示例,并能够使用 cdk 成功部署到单个账户中。( https://docs.aws.amazon.com/cdk/latest/guide/codepipeline_example.html )

$ cdk deploy PipelineDeployingLambdaStack --profile=111111111111

返回成功。

然后使用 cdk-codepipeline-actions 文档中的跨账户说明,我将 account 属性添加到我的部署操作中。( https://docs.aws.amazon.com/cdk/api/latest/docs/aws-codepipeline-actions-readme.html#cross-account-actions )

        {
stageName: 'Deploy',
actions: [
new codepipeline_actions.CloudFormationCreateUpdateStackAction({
account: '222222222222', // introduce cross-account deployment
......
}),
],
},

在此更改并再次运行 cdk synth 后,它会按预期生成一个名为 cross-account-support-stack-222222222222.template.json 的新堆栈。

到目前为止一切顺利。

当我尝试运行 cdk deploy 时,它会立即抛出跨账户引用错误:

$ cdk deploy PipelineDeployingLambdaStack --profile=111111111111
Including dependency stacks: cross-account-support-stack-222222222222
cross-account-support-stack-222222222222 (PipelineDeployingLambdaStack-support-222222222222)
cross-account-support-stack-222222222222 (PipelineDeployingLambdaStack-support-222222222222): deploying...

❌ cross-account-support-stack-222222222222 (PipelineDeployingLambdaStack-support-222222222222) failed: Error: Need to perform AWS calls for account 222222222222, but the current credentials are for 111111111111.

我不明白这是怎么回事,因为我一次只能提供一组凭据。我找不到任何关于它的文档,这让我认为它应该是显而易见的。

我错过了什么?

最佳答案

关键在输出的那一行:

Including dependency stacks: cross-account-support-stack-222222222222

您可以在部署支持堆栈时使用-e/--exclusively 命令行开关,然后是主 CodePipeline 堆栈,您可以使用 --profile 选项,用于为那些不同的 cdk deploy 调用切换凭据。

关于aws-codepipeline - CDK 中 Code Pipeline 的跨账户访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61937782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com