Ceci est le guide du AWS CDK développeur de la version 2. L'ancien CDK v1 est entré en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Les aspects permettent d'appliquer une opération à toutes les constructions d'une portée donnée. L'aspect peut modifier les constructions, par exemple en ajoutant des balises. Il peut également vérifier l'état des constructions, par exemple s'assurer que tous les compartiments sont chiffrés.
Pour appliquer un aspect à une construction et à toutes les constructions de la même portée, appelez Aspects
.of(
avec un nouvel aspect, comme indiqué dans l'exemple suivant.SCOPE
).add()
Aspects.of(myConstruct).add(new SomeAspect(...));
Il AWS CDK utilise des aspects pour étiqueter les ressources, mais le framework peut également être utilisé à d'autres fins. Par exemple, vous pouvez l'utiliser pour valider ou modifier les AWS CloudFormation ressources définies pour vous par des constructions de niveau supérieur.
Aspects en détail
Les aspects utilisent le modèle des visiteurs
interface IAspect {
visit(node: IConstruct): void;}
Lorsque vous appelezAspects.of(
, la construction ajoute l'aspect à une liste interne d'aspects. Vous pouvez obtenir la liste avecSCOPE
).add(...)Aspects.of(
.SCOPE
)
Pendant la phase de préparation, il AWS CDK appelle la visit
méthode de l'objet pour la construction et chacun de ses enfants dans l'ordre du haut vers le bas.
La visit
méthode est libre de changer quoi que ce soit dans la construction. Dans les langages fortement typés, convertissez la construction reçue en un type plus spécifique avant d'accéder aux propriétés ou méthodes spécifiques à la construction.
Les aspects ne se propagent pas au-delà des limites de la Stage
construction, car ils Stages
sont autonomes et immuables une fois définis. Appliquez des aspects à la Stage
construction elle-même (ou à une valeur inférieure) si vous souhaitez qu'ils visitent les constructions situées à l'intérieur duStage
.
exemple
L'exemple suivant confirme que le versionnement est activé pour tous les compartiments créés dans la pile. L'aspect ajoute une annotation d'erreur aux constructions qui échouent à la validation. Cela entraîne l'échec de l'synthopération et empêche le déploiement de l'assemblage cloud obtenu.
class BucketVersioningChecker implements IAspect {
public visit(node: IConstruct): void {
// See that we're dealing with a CfnBucket
if (node instanceof s3.CfnBucket) {
// Check for versioning property, exclude the case where the property
// can be a token (IResolvable).
if (!node.versioningConfiguration
|| (!Tokenization.isResolvable(node.versioningConfiguration)
&& node.versioningConfiguration.status !== 'Enabled')) {
Annotations.of(node).addError('Bucket versioning is not enabled');
}
}
}
}
// Later, apply to the stack
Aspects.of(stack).add(new BucketVersioningChecker());