簡體   English   中英

如何將 AWS CDK 堆棧部署到多個賬戶?

[英]How to deploy AWS CDK stacks to multiple accounts?

AWS CDK 堆棧基於環境以賬戶或區域為目標,詳情請參見 此處 以下是將一個堆棧部署到多個目標帳戶的應用示例:

const envEU  = { account: '2383838383', region: 'eu-west-1' };
const envUSA = { account: '8373873873', region: 'us-west-2' };

new MyFirstStack(app, 'first-stack-eu', { env: envEU });
new MyFirstStack(app, 'first-stack-us', { env: envUSA });

我的問題是如何部署這兩個堆棧——是否可以將它們部署為單個操作? 如果是這樣,使用什么憑據以及這 2 個帳戶需要什么角色?

理想情況下,我希望能夠執行一個命令來跨所有帳戶部署所有堆棧:

cdk deploy ...

或者只能通過 2 個步驟進行部署?

cdk deploy first-stack-eu --profile=profile_for_account_2383838383
cdk deploy first-stack-us --profile=profile_for_account_8373873873

在 cloudformation 中,您可以使用Stack Sets進行多賬戶和多區域部署。

但是,根據 GitHub 問題,CDK 尚不支持此功能:

我最終使用cdk-assume-role-credential-plugin來執行任務。 該插件的描述指出:

此插件允許 CDK CLI 從堆棧的目標 AWS 賬戶自動獲取 AWS 憑證。 這意味着您可以使用一組 AWS 憑證運行單個命令(即 cdk synth),CLI 將為每個堆棧確定目標 AWS 賬戶,並通過在賬戶中擔任角色自動獲取目標 AWS 賬戶的臨時憑證.

我在此處編寫了有關如何使用此插件使用 CDK 執行 AWS 跨賬戶部署的詳細教程: https://johntipper.org/aws-cdk-cross-account-deployments-with-cdk-pipelines-and-cdk -假設角色憑據插件/

如果您的應用程序中有多個堆棧,則必須將每個堆棧傳遞給 cdk deploy 命令,例如cdk deploy WmStackRouteCertStack004BE231 WmStackUploadStackF8C20A98

我不知道在應用程序中部署所有堆棧的方法,我不喜歡這種行為,這就是我嘗試避免創建多個堆棧的原因

CDKv2開始,這是默認可用的:

現在默認情況下,當您啟動 AWS 賬戶時,它會為您創建一組 IAM 角色,CDK 在該賬戶中執行操作時將承擔這些角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM