Actualmente estoy usando aws-cdk (TypeScript) para crear una pila que consta de una instancia EC2 y una instancia de base de datos RDS .
La instancia RDS debe configurarse antes de que se pueda iniciar la instancia EC2 y se ejecuten los datos de usuario.
El problema que tengo es que no pude encontrar una manera de definir el DepensOn (Cloudformation) entre los dos recursos.
La solución es que estoy usando pilas en red.
El código se parece a esto:
const instance = new ec2.Instance(this, 'Instance', {...}) const rdsInstance = new rds.DatabaseInstance(this, 'DbInstance', {...}) Ahora me gustaría definir algo como instance.dependsOn(rdsInstance) .
¿Alguien se encontró con el mismo problema?
La solución aquí es usar addDependency() en el node , esto manejará todos los DependsOn de CloudFormation necesarios para usted:
const instance = new ec2.Instance(this, 'Instance', {...}); const rdsInstance = new rds.DatabaseInstance(this, 'DbInstance', {...}); rdsInstance.node.addDependency(instance); Desde el JSDoc de addDependency() : agregue una dependencia de orden en otro Construct. Todas las construcciones en el ámbito de la dependencia se implementarán antes que cualquier construcción en el ámbito de esta construcción.
Espero que lo siguiente te ayude.
const instance = new ec2.Instance(this, 'Instance', { /* ... */ }).getInstance(); const rdsInstance = new rds.DatabaseInstance(this, 'DbInstance', { /* ... */ }).getInstance(); instance.addDependsOn(rdsInstance);