Qu’est-ce qu’une application CDK ? #
L’App dans CDK représente le point d’entrée pour l’ensemble de l’application CDK. L’application
application CDK est composée d’une ou plusieurs piles (comme une pile CloudFormation).
).
Étant donné que l’application AWS CDK est compilée dans CloudFormation, nous devons définir nos
constructions dans le cadre d’une pile. La pile représente une seule
pile CloudFormation (une unité de déploiement).
À l’intérieur de la pile racine, nous utilisons des constructions
constructions, qui sont
composants du nuage utilisés pour encapsuler la logique et fournir un niveau d’abstraction
d’abstraction (que CloudFormation) pour le provisionnement des ressources AWS.
Exemple complet de CDK App #
Voyons un exemple complet des composants d’une application CDK.
Tout d’abord, nous allons définir notre pile CDK.
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as cdk from 'aws-cdk-lib';
export class CdkStarterStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const bucket = new s3.Bucket(this, 'uploads-bucket', {
removalPolicy: cdk.RemovalPolicy.DESTROY,
});
}
}
Si vous utilisez toujours la version 1 de CDK, passez à la branche cdk-v1 dans le dépôt GitHub.
La pile doit être instanciée dans la portée de notre CDK App.
import * as cdk from 'aws-cdk-lib';
import {CdkStarterStack} from '../lib/cdk-starter-stack';
const app = new cdk.App();
new CdkStarterStack(app, 'cdk-stack-dev', {
stackName: 'cdk-stack-dev',
env: {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
},
});
L’application CDK est le point d’entrée d’un projet CDK. Nous devons instancier l’application
App en appelant new cdk.App()
et passer le résultat comme premier argument à la classe
définissant notre pile.
Dans ce cas, nous n’avons qu’une seule pile à l’intérieur de notre CDK App. cdk-stack-dev
,
Cependant, nous pourrions fournir un deuxième prod
pile à l’intérieur de notre application, comme ceci :
const app = new cdk.App();
new CdkStarterStack(app, 'cdk-stack-dev', {
stackName: 'cdk-stack-dev',
env: {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
},
});
new CdkStarterStack(app, 'cdk-stack-prod', {
stackName: 'cdk-stack-prod',
env: {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
},
});
À l’intérieur de notre pile, nous pouvons utiliser des constructions. Les constructions nous aident à définir
les ressources qui composent notre infrastructure.
C’est l’arbre complet des constructions CDK :
- Nous commençons par la construction App
- Nous définissons et instancions notre construction Stack
- Nous imbriquons toutes nos autres constructions à l’intérieur de la pile.
Notez que la construction App est la seule construction qui ne nécessite aucun
arguments.
Toutes les autres constructions, y compris la pile CDK, requièrent 2 arguments – l’élémentscope
et id
avec un troisième argument facultatif – le props
(objet de configuration).
Lorsque nous initialisons notre application en appelant sa méthode de construction, toutes les constructions que nous avons définies dans nos applications sont instanciées.
constructions que nous avons définies dans nos applications sont instanciées et la chaîne de
fonctions de constructeur est exécutée.