AWS CDK:如何在不失去更新能力的情况下重命名现有堆栈?

AWS CDK: How to rename existing stacks without losing the ability to update?

我已经创建并部署了一个生产堆栈:

const app = new cdk.App();
const stack = new cdk.Stack(app, 'myorg-production-api');

现在更改命名模式很重要,我需要这个堆栈是 myorg-api-production-root

当然,我可以通过手动销毁旧的,并部署新的来实现(两者不能同时存在,因为像 DNS 记录这样的“单例”资源),但这意味着一个巨大的停机时间,我需要不惜一切代价避免。

我能否以某种方式干预 CDK 的堆栈身份确定过程并在不停机的情况下更改堆栈名称?

不,无论有无 CDK,都无法更改现有堆​​栈的名称。

在幕后,cdk deploy 在创建时使用 CloudFormation CreateChangeSet API (then ExecuteChangeSet) 设置堆栈名称。堆栈名称是 CloudFormation 中唯一的、不可变的 ID。