【发布时间】:2022-06-28 17:41:38
【问题描述】:
我在 CDK 项目中管理 RDS 数据库。有时需要从快照中恢复数据库的旧状态。
为了使这成为可能,我使用 CDK 上下文参数指定应从中恢复数据库的快照。如果给出,快照将基于 RDS 构造。这会导致数据库被替换(这很好)。
现在,如果数据库已从快照中恢复,并且我在 CDK 项目中进行了一些其他更新并想要更新项目(通过 CD 管道完成),我通常会在不提供任何快照的情况下开始更新。这导致数据库被一个空的替换,这当然不是我想要的。
总而言之,这就是它目前的工作方式:
| Current state of the stack | Deployment Paramter | Result |
|---|---|---|
| Not created from snapshot | No snapshot | DB is not replaced |
| Not created from snapshot | snapshot | DB is replaced |
| created from snapshot | No snapshot | DB is replaced |
| created from snapshot | snapshot (same) | DB is not replaced |
| created from snapshot | snapshot (different) | DB is replaced |
恕我直言,这是无法管理的。
但我想要的是这样的:
| Current state of the stack | Deployment Paramter | Result |
|---|---|---|
| Not created from snapshot | No snapshot | DB is not replaced |
| Not created from snapshot | snapshot | DB is replaced |
| created from snapshot | No snapshot | DB is not replaced |
| created from snapshot | snapshot (same) | DB is replaced |
| created from snapshot | snapshot (different) | DB is replaced |
或者,换句话说:
- 如果我没有指定快照,请不要替换数据库
- 如果我指定快照,请替换数据库
这可能吗?或者还有其他使用 CDK 管理 RDS 数据库的好方法吗?
【问题讨论】:
标签: amazon-web-services amazon-rds aws-cdk