首页 > 解决方案 > 如何使用 aws-cdk 在 EC2 和 RDS 之间创建 DependsOn 关系

问题描述

我目前正在使用aws-cdk (TypeScript) 创建一个由EC2实例和RDS数据库实例组成的堆栈。

需要先设置RDS实例,然后才能启动EC2实例并执行 userdata。

我遇到的问题是,我找不到DepensOn在两个资源之间定义 (Cloudformation) 属性的方法。

解决方法是,我正在使用 netsted 堆栈。

代码看起来像这样:

const instance = new ec2.Instance(this, 'Instance', {...})
const rdsInstance = new rds.DatabaseInstance(this, 'DbInstance', {...})

现在我想定义类似instance.dependsOn(rdsInstance).

有人遇到同样的问题吗?

标签: amazon-web-servicesamazon-ec2amazon-rdsaws-cdk

解决方案


这里的解决方案是在addDependency()上使用node,这将为您处理所有必要的 CloudFormation DependsOn

const instance = new ec2.Instance(this, 'Instance', {...});
const rdsInstance = new rds.DatabaseInstance(this, 'DbInstance', {...});

rdsInstance.node.addDependency(instance);

来自 JSDoc addDependency()添加对另一个 Construct 的排序依赖。依赖项范围内的所有构造都将在此构造范围内的任何构造之前部署。


推荐阅读