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

Este é o Guia do Desenvolvedor AWS CDK v2. A versão CDK 1 mais antiga entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS CDK aplicativos

O AWS Cloud Development Kit (AWS CDK) aplicativo ou aplicativo é uma coleção de uma ou mais CDK pilhas. As pilhas são uma coleção de uma ou mais construções, que definem AWS recursos e propriedades. Portanto, o agrupamento geral de suas pilhas e construções é conhecido como seu aplicativo. CDK

Como criar um CDK aplicativo

Você cria um aplicativo definindo uma instância do aplicativo no arquivo do seu projeto. Para fazer isso, você importa e usa a Appconstrução da AWS Construct Library. A App construção não requer nenhum argumento de inicialização. É a única construção que pode ser usada como raiz.

As Stack classes App e da AWS Construct Library são construções exclusivas. Em comparação com outras construções, elas não configuram AWS recursos sozinhas. Em vez disso, eles são usados para fornecer contexto para suas outras construções. Todas as construções que representam AWS recursos devem ser definidas, direta ou indiretamente, dentro do escopo de uma Stack construção. Stackconstruções são definidas dentro do escopo de uma App construção.

Os aplicativos são então sintetizados para criar AWS CloudFormation modelos para suas pilhas. Veja um exemplo a seguir:

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)

As pilhas em um único aplicativo podem se referir facilmente aos recursos e propriedades umas das outras. Ele AWS CDK infere dependências entre as pilhas para que elas possam ser implantadas na ordem correta. Você pode implantar qualquer uma ou todas as pilhas em um aplicativo com um único cdk deploy comando.

A árvore de construção

As construções são definidas dentro de outras construções usando o scope argumento que é passado para cada construção, com a App classe como raiz. Dessa forma, um AWS CDK aplicativo define uma hierarquia de construções conhecida como árvore de construção.

A raiz dessa árvore é seu aplicativo, que é uma instância da App classe. Dentro do aplicativo, você instancia uma ou mais pilhas. Nas pilhas, você instancia construções, que podem elas mesmas instanciar recursos ou outras construções, e assim por diante na árvore.

As construções são sempre definidas explicitamente dentro do escopo de outra construção, o que cria relacionamentos entre as construções. Quase sempre, você deve passar this (em Python,self) como escopo, indicando que a nova construção é filha da construção atual. O padrão pretendido é derivar sua construção e, em seguida Construct, instanciar as construções que ela usa em seu construtor.

Passar o escopo explicitamente permite que cada construção se adicione à árvore, com esse comportamento inteiramente contido na classe Construct base. Funciona da mesma forma em todos os idiomas suportados pelo AWS CDK e não requer personalização adicional.

Importante

Tecnicamente, é possível passar algum escopo além this da instanciação de uma construção. Você pode adicionar construções em qualquer lugar da árvore ou até mesmo em outra pilha no mesmo aplicativo. Por exemplo, você pode escrever uma função no estilo mixin que adiciona construções a um escopo passado como argumento. A dificuldade prática aqui é que você não pode garantir facilmente que as IDs escolhas para suas construções sejam exclusivas no escopo de outra pessoa. A prática também torna seu código mais difícil de entender, manter e reutilizar. Portanto, recomendamos que você use a estrutura geral da árvore de construção.

O AWS CDK usa todas as construções no caminho da raiz da árvore até cada construção secundária para gerar a exclusividade IDs exigida por AWS CloudFormation. IDs Essa abordagem significa que a construção IDs só precisa ser exclusiva em seu escopo, e não em toda a pilha, como na nativa AWS CloudFormation. No entanto, se você mover uma construção para um escopo diferente, a ID exclusiva da pilha gerada será alterada e AWS CloudFormation não a considerará o mesmo recurso.

A árvore de construção é separada das construções que você define no seu AWS CDK código. No entanto, é acessível por meio de qualquer node atributo de construção, que é uma referência ao nó que representa essa construção na árvore. Cada nó é uma Nodeinstância, cujos atributos fornecem acesso à raiz da árvore e aos escopos e filhos principais do nó.

  1. node.children— Os filhos diretos da construção.

  2. node.id— O identificador da construção dentro de seu escopo.

  3. node.path— O caminho completo da construção, incluindo o IDs de todos os seus pais.

  4. node.root— A raiz da árvore de construção (o aplicativo).

  5. node.scope— O escopo (pai) da construção ou indefinido se o nó for a raiz.

  6. node.scopes— Todos os pais da construção, até a raiz.

  7. node.uniqueId— O identificador alfanumérico exclusivo para essa construção na árvore (por padrão, gerado a partir de node.path e um hash).

A árvore de construção define uma ordem implícita na qual as construções são sintetizadas em recursos no modelo final. AWS CloudFormation Onde um recurso deve ser criado antes do outro, AWS CloudFormation ou a AWS Construct Library geralmente infere a dependência. Em seguida, eles garantem que os recursos sejam criados na ordem correta.

Você também pode adicionar uma dependência explícita entre dois nós usando. node.addDependency() Para obter mais informações, consulte Dependências na AWS CDK APIReferência.

Isso AWS CDK fornece uma maneira simples de visitar cada nó na árvore de construção e realizar uma operação em cada um. Para obter mais informações, consulte Aspectos e o AWS CDK.