Ajout des relations Depends on dans l’AWS CDK #
Parfois CDK ne peut pas déduire le bon ordre pour provisionner nos ressources. Par exemple,
Par exemple, si nous avons une passerelle Internet EC2, elle va dépendre de notre ressource VPC.
ressource.
Un autre exemple serait si nous avons une instance Postgres RDS et une instance EC2.
Nous aimerions que notre instance EC2 soit créée après la base de données. Cela nous permet
d’exécuter le code d’initialisation, de créer les tables et d’ensemencer les données si nécessaire.
Dans CDK, en ajoutant l’attribut DependsOn sur la ressource A
nous spécifions que la
création de la création de la ressource A
doit suivre la création de la ressource B
.
Pour spécifier une dépendance dans CDK, nous utilisons la fonction addDependency()
sur
le nœud –
docs.
Par exemple, précisons qu’un client Cognito User Pool dépend de la création d’un fournisseur OAuth Cognito Identity Pool
création d’un fournisseur OAuth de Cognito Identity Pool :
const userPoolClient = new cognito.UserPoolClient(this, 'userpool-client', {
});
const identityProviderFacebook = new cognito.UserPoolIdentityProviderFacebook(
this,
'idp-facebook',
{
},
);
userPoolClient.node.addDependency(identityProviderFacebook);
Avec cet extrait de code, nous indiquons à CDK qu’il ne doit créer notre client User Pool qu’après la création du fournisseur d’identité Facebook.
Dans le pseudo-code spécifiant qu’une instance EC2 ne doit être créée qu’après la création de notre
base de données a été créée :
const ec2Instance = new EC2Instance();
const database = new DatabaseConstruct();
ec2Instance.node.addDependency(database);
Discussion #
En utilisant le constructA.node.addDependency(constructB)
méthode, nous sommes en mesure de
spécifier l’ordre de création des ressources dans AWS CDK.
La plupart du temps, CDK peut déduire l’ordre de création des ressources à partir de notre code,
Cependant, dans certains cas, nous devons être explicites.