Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gli aspetti sono un modo per applicare un'operazione a tutti i costrutti in un determinato ambito. L'aspetto potrebbe modificare i costrutti, ad esempio aggiungendo tag. Oppure potrebbe verificare qualcosa sullo stato dei costrutti, ad esempio assicurarsi che tutti i bucket siano crittografati.
Per applicare un aspetto a un costrutto e a tutti i costrutti nello stesso ambito, chiamate Aspects
.of(
con un nuovo aspetto, come mostrato nell'esempio seguente.SCOPE
).add()
Aspects.of(myConstruct).add(new SomeAspect(...));
AWS CDK Utilizza gli aspetti per etichettare le risorse, ma il framework può essere utilizzato anche per altri scopi. Ad esempio, potete usarlo per convalidare o modificare le AWS CloudFormation risorse definite per voi da costrutti di livello superiore.
Aspetti in dettaglio
Gli aspetti utilizzano lo schema dei visitatori.
interface IAspect {
visit(node: IConstruct): void;}
Quando si chiamaAspects.of(
, il costrutto aggiunge l'aspetto a un elenco interno di aspetti. È possibile ottenere l'elenco conSCOPE
).add(...)Aspects.of(
.SCOPE
)
Durante la fase di preparazione, AWS CDK chiama il visit
metodo dell'oggetto per il costrutto e ciascuno dei suoi figli in ordine dall'alto verso il basso.
Il visit
metodo è libero di modificare qualsiasi cosa nel costrutto. In linguaggi fortemente tipizzati, trasmetti il costrutto ricevuto a un tipo più specifico prima di accedere a proprietà o metodi specifici del costrutto.
Gli aspetti non si propagano oltre i confini del Stage
costrutto, perché dopo la definizione Stages
sono autonomi e immutabili. Applica gli aspetti sul Stage
costrutto stesso (o inferiore) se vuoi che visitino i costrutti all'interno di. Stage
Esempio
L'esempio seguente verifica che tutti i bucket creati nello stack abbiano il controllo delle versioni abilitato. L'aspetto aggiunge un'annotazione di errore ai costrutti che non superano la convalida. Ciò comporta il fallimento dell'synthoperazione e impedisce la distribuzione dell'assemblaggio cloud risultante.
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());