AWS CDK app - AWS Cloud Development Kit (AWS CDK) v2

Questa è la guida per sviluppatori AWS CDK v2. La versione precedente della CDK versione 1 è entrata 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à.

AWS CDK app

L' AWS Cloud Development Kit (AWS CDK) applicazione o l'app è una raccolta di uno o più CDK stack. Gli stack sono una raccolta di uno o più costrutti che definiscono AWS risorse e proprietà. Pertanto, il raggruppamento complessivo degli stack e dei costrutti è noto come app. CDK

Come creare un'app CDK

Puoi creare un'app definendo un'istanza dell'app nel file dell'applicazione del tuo progetto. A tale scopo, importate e utilizzate il Appcostrutto dalla AWS Construct Library. Il App costrutto non richiede alcun argomento di inizializzazione. È l'unico costrutto che può essere usato come radice.

Le Stack classi App e della AWS Construct Library sono costrutti unici. Rispetto ad altri costrutti, non configurano AWS le risorse da soli. Vengono invece utilizzati per fornire un contesto agli altri costrutti. Tutti i costrutti che rappresentano AWS risorse devono essere definiti, direttamente o indirettamente, nell'ambito di un costrutto. Stack Stacki costrutti sono definiti nell'ambito di un costrutto. App

Le app vengono quindi sintetizzate per creare AWS CloudFormation modelli per gli stack. Di seguito è riportato un esempio:

TypeScript
const app = new App(); new MyFirstStack(app, 'hello-cdk'); app.synth();
JavaScript
const app = new App(); new MyFirstStack(app, 'hello-cdk'); app.synth();
Python
app = App() MyFirstStack(app, "hello-cdk") app.synth()
Java
App app = new App(); new MyFirstStack(app, "hello-cdk"); app.synth();
C#
var app = new App(); new MyFirstStack(app, "hello-cdk"); app.Synth();
Go
app := awscdk.NewApp(nil) MyFirstStack(app, "MyFirstStack", &MyFirstStackProps{ awscdk.StackProps{ Env: env(), }, }) app.Synth(nil)

Gli stack all'interno di una singola app possono facilmente fare riferimento alle risorse e alle proprietà reciproche. AWS CDK Deduce le dipendenze tra gli stack in modo che possano essere distribuiti nell'ordine corretto. Puoi distribuire uno o tutti gli stack all'interno di un'app con un solo comando. cdk deploy

L'albero di costruzione

I costrutti vengono definiti all'interno di altri costrutti utilizzando l'scopeargomento passato a ogni costrutto, con la App classe come radice. In questo modo, un' AWS CDK app definisce una gerarchia di costrutti nota come albero dei costrutti.

La radice di questo albero è la tua app, che è un'istanza della classe. App All'interno dell'app, crei un'istanza di uno o più stack. All'interno degli stack, si creano delle istanze di costrutti, che possono a loro volta creare istanze di risorse o altri costrutti, e così via lungo l'albero.

I costrutti sono sempre definiti esplicitamente nell'ambito di un altro costrutto, che crea relazioni tra i costrutti. Quasi sempre, dovresti passare this (in Python,self) come ambito, indicando che il nuovo costrutto è figlio del costrutto corrente. Lo schema previsto è quello da cui si ricava il costrutto Construct, quindi si istanziano i costrutti che utilizza nel suo costruttore.

Il passaggio esplicito dell'ambito consente a ciascun costrutto di aggiungersi all'albero, con questo comportamento interamente contenuto nella classe base. Construct Funziona allo stesso modo in tutte le lingue supportate da AWS CDK e non richiede personalizzazioni aggiuntive.

Importante

Tecnicamente, è possibile passare a un ambito diverso da this quando si istanzia un costrutto. Puoi aggiungere costrutti ovunque nell'albero o anche in un altro stack nella stessa app. Ad esempio, potete scrivere una funzione in stile mixin che aggiunga costrutti a un ambito passato come argomento. La difficoltà pratica qui è che non potete facilmente assicurarvi che i costrutti che IDs scegliete per i vostri costrutti siano unici nell'ambito di qualcun altro. Questa pratica rende anche il codice più difficile da comprendere, gestire e riutilizzare. Pertanto, si consiglia di utilizzare la struttura generale dell'albero di costruzione.

AWS CDK Utilizza tutti i costrutti presenti nel percorso dalla radice dell'albero a ogni costrutto figlio per generare l'univoco IDs richiesto da. IDs AWS CloudFormation Questo approccio significa che i costrutti devono essere unici IDs solo all'interno del loro ambito, anziché all'interno dell'intero stack come in nativo. AWS CloudFormation Tuttavia, se spostate un costrutto in un ambito diverso, l'ID univoco dello stack generato cambia e AWS CloudFormation non lo considererà la stessa risorsa.

L'albero dei costrutti è separato dai costrutti definiti nel codice. AWS CDK Tuttavia, è accessibile tramite l'nodeattributo di qualsiasi costrutto, che è un riferimento al nodo che rappresenta quel costrutto nell'albero. Ogni nodo è un'Nodeistanza, i cui attributi forniscono l'accesso alla radice dell'albero e agli ambiti principali e secondari del nodo.

  1. node.children— I figli diretti del costrutto.

  2. node.id— L'identificatore del costrutto all'interno del suo ambito.

  3. node.path— Il percorso completo del costrutto, compresi quelli IDs di tutti i suoi genitori.

  4. node.root— La radice dell'albero di costruzione (l'app).

  5. node.scope— L'ambito (genitore) del costrutto o non definito se il nodo è la radice.

  6. node.scopes— Tutti i genitori del costrutto, fino alla radice.

  7. node.uniqueId— L'identificatore alfanumerico univoco per questo costrutto all'interno dell'albero (per impostazione predefinita, generato da node.path e un hash).

L'albero dei costrutti definisce un ordine implicito in cui i costrutti vengono sintetizzati nelle risorse del modello finale. AWS CloudFormation Dove una risorsa deve essere creata prima di un'altra, AWS CloudFormation oppure la AWS Construct Library generalmente deduce la dipendenza. Quindi si assicurano che le risorse vengano create nell'ordine giusto.

È inoltre possibile aggiungere una dipendenza esplicita tra due nodi utilizzando. node.addDependency() Per ulteriori informazioni, consulta Dipendenze nel riferimento.AWS CDK API

AWS CDK Fornisce un modo semplice per visitare ogni nodo dell'albero di costruzione ed eseguire un'operazione su ciascuno di essi. Per ulteriori informazioni, consulta Aspetti e AWS CDK.