

Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo 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á.

# Referência do AWS CDK
<a name="reference"></a>

Esta seção contém informações de referência para o kit de desenvolvimento em nuvem da AWS (CDK da AWS).

## Referência de API
<a name="reference-api"></a>

A [Referência de API](https://docs.aws.amazon.com/cdk/api/v2) contém informações sobre a Biblioteca de Constructos da AWS e outras APIs fornecidas pelo kit de desenvolvimento em nuvem da AWS (CDK da AWS). A maior parte da Biblioteca de Constructos da AWS está contida em um único pacote chamado pelo seu nome de TypeScript: `aws-cdk-lib`. O nome real do pacote varia de acordo com a linguagem. Versões separadas da referência de API são fornecidas para cada linguagem de programação compatível.

A referência de API do CDK é organizada em submódulos. Há um ou mais submódulos para cada serviço da AWS.

Cada submódulo tem uma visão geral que inclui informações sobre como usar suas APIs. Por exemplo, a visão geral do [S3](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3-readme.html) demonstra como definir criptografia padrão em um bucket do Amazon Simple Storage Service (Amazon S3).

# AWS Controle de versão do CDK
<a name="versioning"></a>

Este tópico fornece informações de referência sobre como o AWS Cloud Development Kit (AWS CDK) lida com o controle de versão.

Os números das versões consistem em três partes numéricas da versão: *principal*.*secundária*.*patch*, e segue amplamente os princípios de [versionamento semântico](https://semver.org) com algumas ressalvas descritas nos [Esclarecimentos sobre o versionamento semântico da Biblioteca de Constructos da AWS](https://docs.aws.amazon.com/cdk/v2/guide/versioning.html#aws-construct-lib-semver). Isso significa que as mudanças significativas que APIs consideramos estáveis estão limitadas aos principais lançamentos.

As versões minor e patch são compatíveis com versões anteriores. O código escrito em uma versão anterior com a mesma versão major pode ser atualizado para uma versão mais recente dentro da mesma versão major. Ele continuará a ser construído e executado, produzindo um resultado funcionalmente equivalente. Para alguns casos de uso avançados, pequenas alterações em seu código serão necessárias, conforme observado no próximo tópico.

## AWS Compatibilidade com o CDK Toolkit
<a name="cdk-toolkit-versioning"></a>

Cada versão da AWS Construct Library (`aws-cdk-lib`) principal é compatível com a versão CLI () e a Toolkit Library (`aws-cdk-cli`) do AWS CDK Toolkit Library (`@aws-cdk/toolkit-lib`) que estava em vigor na época do lançamento da AWS Construct Library. Também é compatível com qualquer versão mais recente do AWS CDK Toolkit. Cada versão da AWS Construct Library mantém essa compatibilidade até a data de *fim da vida útil da* biblioteca. Portanto, desde que você esteja usando uma versão compatível do AWS Construct Library, é sempre seguro atualizar sua versão do AWS CDK Toolkit.

Cada versão da AWS Construct Library também pode funcionar com versões do AWS CDK Toolkit anteriores à versão atual na época do lançamento da AWS Construct Library. No entanto, isso não é garantido. A compatibilidade depende da versão do esquema de montagem em nuvem da AWS Construct Library. O AWS CDK gera uma montagem em nuvem durante a síntese e o AWS CDK Toolkit a consome para implantação. O esquema que define o formato do conjunto de nuvem é estritamente especificado e versionado. Portanto, uma versão mais antiga do AWS CDK Toolkit precisaria oferecer suporte à versão do esquema de montagem em nuvem da AWS Construct Library para que elas fossem compatíveis.

Quando a versão de montagem em nuvem exigida pela AWS Construct Library não é compatível com a versão suportada pelo AWS CDK Toolkit, você recebe uma mensagem de erro como a seguinte:

```
Cloud assembly schema version mismatch: Maximum schema version supported is 3.0.0, but found 4.0.0.
    Please upgrade your CLI in order to interact with this app.
```

Para resolver esse erro, atualize o AWS CDK Toolkit para uma versão compatível com a versão de montagem em nuvem necessária ou para a versão mais recente disponível. A alternativa (fazer o downgrade dos módulos da AWS Construct Library que seu aplicativo usa) geralmente não é recomendada.

**nota**  
Para obter mais informações sobre as combinações exatas de versões que funcionam juntas, consulte a [tabela de compatibilidade](https://github.com/aws/aws-cdk-cli/blob/main/COMPATIBILITY.md) no *aws-cdk-cli GitHub repositório*.

## AWS Controle de versão da Construct Library
<a name="aws-construct-lib-stability"></a>

Os módulos na AWS Construct Library passam por vários estágios à medida que são desenvolvidos, do conceito à API madura. Estágios diferentes oferecem vários graus de estabilidade da API nas versões subsequentes do AWS CDK.

Exceto nos cenários em que as advertências documentadas no próximo tópico se aplicam, APIs na AWS Construct Library (`aws-cdk-lib`) principal são estáveis e a biblioteca segue amplamente os princípios de versionamento semântico. A biblioteca inclui construções AWS CloudFormation (L1) para todos os AWS serviços, que são geradas automaticamente a partir de [esquemas de provedores de CloudFormation recursos](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/resource-type-schemas.html) e, às vezes, podem incluir atualizações incompatíveis com versões anteriores. Ele também inclui construções de nível superior (L2 e L3) e as classes principais do CDK, como `App` e`Stack`, que são todas estáveis. APIs não serão removidos desse pacote (embora possam estar obsoletos) até a próxima versão principal do CDK. Quando uma alteração significativa for necessária em uma API estável, uma API totalmente nova será adicionada.

Os novos APIs em desenvolvimento para um serviço já incorporado `aws-cdk-lib` são identificados usando um `Beta<N>` sufixo, que `N` começa em 1 e é incrementado a cada alteração significativa na nova API. `Beta<N>` APIs nunca são removidos, apenas obsoletos, portanto, seu aplicativo existente continua funcionando com versões mais recentes do. `aws-cdk-lib` Quando a API é considerada estável, uma nova API sem o sufixo `Beta<N>` é adicionada.

Quando os níveis superiores (L2 ou L3) APIs começam a ser desenvolvidos para um AWS serviço que antes tinha apenas L1 APIs, eles APIs são inicialmente distribuídos em um pacote separado. O nome desse pacote tem um sufixo “Alpha” e sua versão corresponde à primeira versão de `aws-cdk-lib` com a qual é compatível, com uma subversão `alpha`. Quando o módulo oferece suporte aos casos de uso pretendidos, APIs eles são adicionados`aws-cdk-lib`.

## AWS Esclarecimentos sobre o versionamento semântico da Construct Library
<a name="aws-construct-lib-semver"></a>

Embora a AWS Construct Library siga amplamente os princípios de versionamento semântico, há algumas ressalvas importantes específicas para nossa implementação. Em geral, a AWS Construct Library mantém a estabilidade para os consumidores de API, mas às vezes adiciona encargos adicionais aos autores da construção para permitir a evolução necessária da estrutura.
+  **Mudanças que afetam a segurança** 

  Para cumprir nossa barreira de segurança, talvez precisemos fazer alterações APIs de formas incompatíveis com versões anteriores ou removê-las completamente. Isso evita que os afetados APIs sejam usados e força as implementações a serem atualizadas.
+  **As características são descritas por intenção** 

  Nosso objetivo é minimizar mudanças inesperadas, mas favoreceremos a *intenção mais que a estabilidade da implementação*. A AWS Construct Library não garante que as construções sempre sejam sintetizadas exatamente no mesmo CloudFormation modelo ou usem exatamente o mesmo conjunto de recursos. Isso se aplica especialmente a constructos de nível superior, nas quais o mesmo objetivo geralmente pode ser alcançado de maneiras diferentes.
+  **Implementação de interfaces e classes abstratas** 

  As interfaces e classes abstratas na AWS Construct Library são estáveis para **consumidores**, mas não para **implementadores.** Isso significa que você pode confiar com segurança em interfaces que fornecem pelo menos `s3.IBucket` a mesma funcionalidade da época (versão AWS Construct Library) em que você começou a consumir a interface ou a classe abstrata. No entanto, periodicamente, novos membros (abstratos) serão adicionados às interfaces e classes abstratas. Para qualquer pessoa que as **implemente**, isso cria uma carga adicional de implementação a ser considerada ao atualizar, já que a implementação ainda não implementaria os novos membros. Tratar rigorosamente as adições às interfaces e classes abstratas para implementadores como mudanças significativas limitaria indevidamente a capacidade de evolução da Construct Library. AWS Na maioria dos casos, os implementadores devem preferir estender classes concretas, como `s3.Bucket`.
+  **Construções L1, código gerado e outros APIs marcados como externos** 

  Partes da AWS Construct Library são geradas a partir de fontes de dados provenientes diretamente dos AWS serviços. Para mantê-los APIs alinhados com a realidade, o código gerado pode conter alterações incompatíveis com versões anteriores. Na maioria das vezes, as fontes de dados são atualizadas para refletir corretamente a realidade e corrigir a representação incorreta. *Seus IDEs IntelliSense serão exibidos externamente APIs com a `@stability — external` anotação.* 
+  **Somente programas semanticamente corretos** 

  Garantimos que os programas corretos continuem funcionando com as versões mais recentes. Os programas que estão formalmente incorretos, mas funcionam devido aos detalhes da implementação, não são abordados. Por exemplo, se seu programa se basear nas [regras TypeScript de tipagem estrutural](https://www.typescriptlang.org/docs/handbook/type-compatibility.html) para transmitir tipos de objetos inesperados ou se sintetizar com êxito, mas produzir um CloudFormation modelo que falha na implantação, podemos introduzir alterações que façam com que esses programas falhem sem considerá-las alterações significativas.
+  **Associações específicas da linguagem** 

  As associações de linguagem podem conter alterações incompatíveis com versões anteriores em um número muito limitado de situações. Elas são causadas por alterações de tipo upstream que são compatíveis com versões anteriores em outras linguagens com suporte. Essas mudanças de tipo são permitidas, pois fazer o contrário limitaria severamente a capacidade de evolução da biblioteca.

  A lista a seguir descreve todas as instâncias conhecidas:
  +  **Golang - Mudando de uma fatia digitada para qualquer fatia:** uma lista de um único tipo está mudando para uma lista de vários tipos (tipos de união em). TypeScript Em `Go`, eles são digitados como uma fatia de qualquer (`*[]any`). Devido às regras de atribuição de digitação do Go, mudar de `*[]string ` para `` não é uma conversão automática. Portanto, esse tipo de ampliação exige que o código do consumidor seja alterado. Consulte [Trabalho com qualquer fatia](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-go.html#go-cdk-idioms) para ver as estratégias.

## Estabilidade de vinculação de linguagem
<a name="aws-construct-lib-versioning-binding"></a>

Com o tempo, poderemos adicionar suporte ao AWS CDK para linguagens de programação adicionais. Embora a API descrita em todas as linguagens seja a mesma, a forma como a API é expressa varia de acordo com a linguagem e pode mudar à medida que o suporte à linguagem evolui. Por esse motivo, as vinculações de linguagem são consideradas experimentais por um tempo até serem consideradas prontas para uso em produção.


| Linguagem | Estabilidade | 
| --- | --- | 
|  TypeScript  |  Stable  | 
|  JavaScript  |  Stable  | 
|  Python  |  Stable  | 
|  Java  |  Stable  | 
|  C\$1/.NET  |  Stable  | 
|  Go  |  Stable  | 

# Versões do Node.js com suporte no AWS CDK
<a name="node-versions"></a>

O kit de desenvolvimento em nuvem da AWS (CDK da AWS) depende do Node.js para sua funcionalidade. Isso inclui os principais componentes do CDK, como a CLI do AWS CDK (`aws-cdk-cli`), a Biblioteca de Constructos da AWS (`aws-cdk-lib`), bem como ferramentas mais amplas, como o JSII, o Projen e o CDK8s. Esta página documenta as versões de runtime do Node.js com suporte no AWS CDK, ajudando você a manter um ambiente de desenvolvimento com suporte.

O AWS CDK visa manter a compatibilidade com as versões de Long Term Support (LTS) do Node.js com suporte ativo. À medida que as versões do Node.js chegam ao fim da vida útil, o AWS CDK também elimina gradualmente o suporte a essas versões para garantir segurança, performance e acesso aos recursos mais recentes.

Manter os componentes e Ferramentas CDK nas versões com suporte do Node.js garante que você receba atualizações de segurança, correções de bugs e acesso aos recursos e melhorias mais recentes do CDK.

## Cronograma de suporte da versão Node.js
<a name="node-version-timeline"></a>

O AWS CDK oferece suporte às versões do Node.js além das datas oficiais de fim da vida útil (EOL) para que você tenha tempo de atualizar seu ambiente. Esse suporte se estende por 6 meses (por exemplo, quando as versões do Node.js atingem o EOL em abril, o suporte permanece até outubro). A tabela do cronograma de suporte da versão abaixo documenta as datas específicas de término do suporte do CDK conforme determinadas. Essa abordagem oferece uma janela definida para planejar e implementar atualizações de versão, mantendo o acesso às funcionalidades e atualizações do CDK.


| Versão do Node.js | Data de EOL do Node | Status de suporte do CDK | 
| --- | --- | --- | 
|  22.x  |  30-04-2027  |  Suporte esperado até outubro de 2027.  | 
|  20.x  |  30-04-2026  |  Suporte esperado até outubro de 2026.  | 
|  18.x  |  2025-05-30  |  O suporte termina em 30/11/2025.  | 
|  16.x  |  11-09-2023  |  O suporte termina em 30/05/2025.  | 
|  14.x  |  30-04-2023  |  O suporte termina em 30/05/2025.  | 

# Recursos de vídeo do AWS CDK
<a name="videos"></a>

Aproveite esses vídeos apresentados por membros da equipe do AWS CDK.

**nota**  
Como o AWS CDK está sempre evoluindo, alguns dos códigos apresentados nesses vídeos podem não funcionar exatamente da mesma forma que funcionavam quando o vídeo foi gravado. Isso é especialmente verdadeiro para módulos que estavam em desenvolvimento ativo na época. Também é possível que, desde então, tenhamos adicionado uma maneira melhor de alcançar o mesmo resultado. Consulte este Guia do desenvolvedor e a [Referência de API do AWS CDK](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html) para obter informações atualizadas.

## A infraestrutura *é* código com o AWS CDK
<a name="videos-infrastructure-is-code"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/ZWCvNFUN-sU?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/ZWCvNFUN-sU?rel=0)


## Mergulhe profundamente no kit de desenvolvimento em nuvem da AWS (CDK da AWS)
<a name="videos-deep-dive"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9As_ZIjUGmY?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9As_ZIjUGmY?rel=0)


## Contribuindo para a Biblioteca de Constructos da AWS
<a name="videos-contributing"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/LsYlf7ggyrY?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/LsYlf7ggyrY?rel=0)


## Implantações mais rápidas com o CDK Pipelines
<a name="videos-pipelines"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/1ps0Wh19MHQ?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/1ps0Wh19MHQ?rel=0)


## Como contribuir para o AWS CDK usando o GitPod
<a name="videos-gitpod"></a>

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/u6XcIgs-Nok?rel=0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/u6XcIgs-Nok?rel=0)
