Este é o Guia do Desenvolvedor AWS CDK v2. A CDK v1 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á.
Implemente AWS CDK aplicativos
Uma AWS Cloud Development Kit (AWS CDK) implantação é o processo de provisionamento de sua infraestrutura. AWS
Como as AWS CDK implantações funcionam
Ele AWS CDK utiliza o AWS CloudFormation serviço para realizar implantações. Antes de implantar, você sintetiza suas CDK pilhas. Isso cria um CloudFormation modelo e artefatos de implantação para cada CDK pilha no seu aplicativo. As implantações são iniciadas a partir de uma máquina de desenvolvimento local ou a partir de um ambiente de integração e entrega contínuas (CI/CD). Durante a implantação, os ativos são enviados para os recursos inicializados e o CloudFormation modelo é enviado para CloudFormation provisionar seus recursos. AWS
Para que uma implantação seja bem-sucedida, é necessário o seguinte:
-
A interface de linha de AWS CDK comando (AWS CDK CLI) deve ser fornecido com permissões válidas.
-
O AWS ambiente deve ser inicializado.
-
Eles AWS CDK devem conhecer os recursos inicializados para os quais fazer upload de ativos.
Pré-requisitos para implantações CDK
Antes de implantar um AWS CDK aplicativo, você deve concluir o seguinte:
-
Configure as credenciais de segurança para o CDK CLI.
-
Inicialize seu AWS ambiente.
-
Configure um AWS ambiente para cada uma das suas CDK pilhas.
-
Desenvolva seu CDK aplicativo.
Configurar credenciais de segurança
Para usar a CDK CLI para interagir AWS, você deve configurar as credenciais de segurança em sua máquina local. Para obter instruções, consulte Configurar as credenciais de segurança para o AWS CDK CLI.
Inicialize seu ambiente AWS
Uma implantação está sempre associada a um ou mais AWS ambientes. Antes de implantar, o ambiente deve primeiro receber o bootstrapping. O bootstrapping provisiona recursos em seu ambiente que ele CDK usa para realizar e gerenciar implantações. Esses recursos incluem um bucket do Amazon Simple Storage Service (Amazon S3) e um repositório Amazon Elastic Container Registry (ECRAmazon) para armazenar e gerenciar ativos. Esses recursos também incluem AWS Identity and Access Management (IAM) funções que são usadas para fornecer permissões durante o desenvolvimento e a implantação.
Recomendamos que você use a interface de linha de AWS CDK comando (AWS CDK CLI) cdk bootstrap
comando para inicializar seu ambiente. Você pode personalizar o bootstrapping ou criar manualmente esses recursos em seu ambiente, se necessário. Para obter instruções, consulte Inicialize seu ambiente para uso com o AWS CDK.
Configurar AWS ambientes
Cada CDK pilha deve estar associada a um ambiente para determinar onde a pilha é implantada. Para obter instruções, consulte Configurar ambientes para usar com o AWS CDK.
Desenvolva seu CDK aplicativo
Em um CDK projeto, você cria e desenvolve seu CDK aplicativo. No seu aplicativo, você cria uma ou mais CDK pilhas. Em suas pilhas, você importa e usa construções da AWS Construct Library para definir sua infraestrutura. Antes de implantar, seu CDK aplicativo deve conter pelo menos uma pilha.
CDKsíntese de aplicativos
Para realizar a síntese, recomendamos que você use o CDK CLI comando cdk synth
. O comando cdk
deploy
também realizará a síntese antes de iniciar a implantação. No entanto, usandocdk
synth
, você pode validar seu CDK aplicativo e detectar erros antes de iniciar a implantação.
O comportamento da síntese é determinado pelo sintetizador de pilha que você configura para sua pilha. CDK Se você não configurar um sintetizador, DefaultStackSynthesizer
será usado. Você também pode configurar e personalizar a síntese para atender às suas necessidades. Para obter instruções, consulte Configurar e realizar a síntese de pilhas do CDK.
Para que seu CloudFormation modelo sintetizado seja implantado com êxito em seu ambiente, ele deve ser compatível com a forma como seu ambiente foi inicializado. Por exemplo, seu CloudFormation modelo deve especificar o bucket correto do Amazon S3 no qual implantar ativos. Se você usar o método padrão de inicializar seu ambiente, o sintetizador de pilha padrão funcionará. Se você personalizar o CDK comportamento, como personalizar a inicialização ou a síntese, o comportamento da CDK implantação poderá variar.
O ciclo de vida da aplicação
Quando você realiza a síntese, seu CDK aplicativo passa pelas seguintes fases, conhecidas como ciclo de vida do aplicativo:
- Construção (ou inicialização)
-
Seu código instancia todos os constructos definidos e, em seguida, vincula-os. Nesse estágio, todos os constructos (aplicação, pilhas e seus constructos secundários) são instanciados e a cadeia de construtores é executada. A maior parte do código da sua aplicação é executada nesse estágio.
- Preparação
-
Todos os constructos que implementaram o método
prepare
participam de uma rodada final de modificações, para configurar seu estado final. A fase de preparação acontece automaticamente. Como usuário, você não vê nenhum feedback dessa fase. É raro precisar usar o hook de “preparação” e geralmente não é recomendado. Tenha muito cuidado ao alterar a árvore de constructos durante essa fase, pois a ordem das operações pode afetar o comportamento.Durante essa fase, depois que a árvore de constructos for construída, todos os aspectos que você configurou também serão aplicados.
- Validação
-
Todos os constructos que implementaram o método
validate
podem se validar para garantir que estejam em um estado que será implantado corretamente. Você será notificado sobre quaisquer falhas de validação que ocorram durante essa fase. Geralmente, recomendamos a realização da validação o mais rápido possível (geralmente assim que você receber alguma informação) e o lançamento de exceções o mais rápido possível. A validação antecipada melhora a confiabilidade, pois os rastreamentos de pilha serão mais precisos e garantirão que seu código possa continuar sendo executado com segurança. - Síntese
-
Essa é a etapa final da execução do seu CDK aplicativo. É acionado por uma chamada para
app.synth()
, percorre a árvore de constructos e invoca o métodosynthesize
em todos os constructos. Os constructos que implementamsynthesize
podem participar da síntese e produzir artefatos de implantação no conjunto de nuvem resultante. Esses artefatos incluem CloudFormation modelos, pacotes de AWS Lambda aplicativos, arquivos e Docker ativos de imagem e outros artefatos de implantação. Na maioria dos casos, não é preciso implementar o métodosynthesize
.
Executar sua aplicação
A CDK CLI precisa saber como executar seu CDK aplicativo. Se você criou o projeto a partir de um modelo usando o comando cdk init
, o arquivo cdk.json
da sua aplicação inclui uma chave app
. Essa chave especifica o comando necessário para a linguagem em que a aplicação está escrita. Se sua linguagem exigir compilação, a linha de comando executará essa etapa antes de executar a aplicação automaticamente.
Se você não criou seu projeto usando o CDK CLI, ou se quiser substituir a linha de comando fornecida emcdk.json
, você pode fornecer a --app
opção ao executar o cdk
comando.
$
cdk --app 'executable
'cdk-command
...
A executable
parte do comando indica o comando que deve ser executado para executar seu CDK aplicativo. Use aspas conforme mostrado, pois esses comandos contêm espaços. O cdk-command
é um subcomando como synth
ou deploy
que informa o CDK CLI o que você quer fazer com seu aplicativo. Siga isso com todas as opções adicionais necessárias para esse subcomando.
A CDK CLI também pode interagir diretamente com um conjunto de nuvem já sintetizado. Para fazer isso, passe o diretório no qual o conjunto de nuvem está armazenado em --app
. O exemplo a seguir lista as pilhas definidas no conjunto de nuvem armazenado em ./my-cloud-assembly
.
$
cdk --app./my-cloud-assembly
ls
Conjuntos de nuvem
A chamada para app.synth()
é o que diz AWS CDK para sintetizar uma montagem em nuvem a partir de um aplicativo. Normalmente, você não interage diretamente com os conjuntos de nuvem. São arquivos que incluem tudo o que é necessário para implantar sua aplicação em um ambiente de nuvem. Por exemplo, ele inclui um AWS CloudFormation modelo para cada pilha em seu aplicativo. Também inclui uma cópia de qualquer ativo de arquivo ou Docker imagens que você faz referência no seu aplicativo.
Consulte a especificação de conjunto de nuvem
Para interagir com o conjunto de nuvem que seu AWS CDK aplicativo cria, você normalmente usa o AWS CDK CLI. No entanto, qualquer ferramenta que possa ler o formato de montagem em nuvem pode ser usada para implantar seu aplicativo.
Implantar a aplicação
Para implantar seu aplicativo, recomendamos que você use o CDK CLI cdk deploy
comando para iniciar implantações ou configurar implantações automatizadas.
Quando você correcdk deploy
, o CDK CLI inicia a preparação cdk synth
para a implantação. O diagrama a seguir ilustra o ciclo de vida da aplicação no contexto de uma implantação:

Durante a implantação, o CDK CLI pega a montagem da nuvem produzida pela síntese e a implanta em um AWS ambiente. Os ativos são enviados para o Amazon S3 e para a Amazon ECR e o CloudFormation modelo é enviado AWS CloudFormation para implantação.
Quando a fase de AWS CloudFormation implantação começa, seu CDK aplicativo já terminou de ser executado e foi encerrado. Isso ocasiona o seguinte:
-
O CDK aplicativo não pode responder a eventos que acontecem durante a implantação, como a criação de um recurso ou o término de toda a implantação. Para executar o código durante a fase de implantação, você deve injetá-lo no AWS CloudFormation modelo como um recurso personalizado. Para obter mais informações sobre como adicionar um recurso personalizado aa sua aplicação, consulte o módulo do AWS CloudFormation ou o exemplo de recurso personalizado
. Você também pode configurar o módulo Acionadores para executar código durante as implantações. -
Talvez o CDK aplicativo precise funcionar com valores que não podem ser conhecidos no momento em que é executado. Por exemplo, se a aplicação do AWS CDK define um bucket do Amazon S3 com um nome gerado automaticamente e você recupera o atributo
bucket.bucketName
(Python:bucket_name
), esse valor não é o nome do bucket implantado. Em vez disso, você obtém um valor deToken
. Para determinar se um valor específico está disponível, chamecdk.isUnresolved(value)
(Python:is_unresolved
). Para mais detalhes, consulte Tokens e o AWS CDK.
Permissões de implantação
Antes da execução da implantação, as permissões devem ser estabelecidas. O diagrama a seguir ilustra as permissões que são usadas durante uma implantação padrão, ao usar o processo de bootstrapping padrão e o sintetizador de pilha:

- O ator inicia a implantação
-
As implantações são iniciadas por um ator, usando o CDK CLI. Um ator pode ser uma pessoa ou um serviço como AWS CodePipeline.
Se necessário, o CDK CLI corre
cdk synth
quando você correcdk deploy
. Durante a síntese, a AWS identidade pressupõeLookupRole
a realização de pesquisas de contexto no AWS ambiente. - As permissões são estabelecidas
-
Primeiro, as credenciais de segurança do ator são usadas para autenticar AWS e obter a primeira IAM identidade no processo. Para atores humanos, a forma como as credenciais de segurança são configuradas e obtidas depende de como você ou sua organização gerencia os usuários. Para obter mais informações, consulte Configurar as credenciais de segurança para o AWS CDK CLI. Para agentes de serviços, por exemplo CodePipeline, uma função de IAM execução é assumida e usada.
Em seguida, as IAM funções criadas em seu AWS ambiente durante a inicialização são usadas para estabelecer permissões para realizar as ações necessárias para a implantação. Para obter mais informações sobre esses perfis e quais são as suas permissões, consulte IAMfunções criadas durante a inicialização. Esse processo inclui o seguinte:
-
A AWS identidade assume a
DeploymentActionRole
função e aCloudFormationExecutionRole
passa para CloudFormation, garantindo que ela CloudFormation assuma a função ao realizar qualquer ação em seu AWS ambiente.DeploymentActionRole
concede permissão para realizar implantações em seu ambiente eCloudFormationExecutionRole
determina quais ações CloudFormation podem ser executadas. -
A AWS identidade assume o
FilePublishingRole
, que determina as ações que podem ser executadas no bucket do Amazon S3 criado durante a inicialização. -
A AWS identidade assume o
ImagePublishingRole
, que determina as ações que podem ser executadas no ECR repositório da Amazon criado durante a inicialização. -
Se necessário, a AWS identidade pressupõe
LookupRole
a realização de pesquisas de contexto no AWS ambiente. Essa ação também pode ser executada durante a síntese do modelo.
-
- A implantação é executada
-
Durante a implantação, o CDK CLI lê o parâmetro da versão do bootstrap para confirmar o número da versão do bootstrap. AWS CloudFormation também lê esse parâmetro no momento da implantação para confirmar. Se as permissões em todo o fluxo de trabalho de implantação forem válidas, a implantação será executada. Os ativos são enviados para os recursos inicializados e o CloudFormation modelo produzido na síntese é implantado usando o CloudFormation serviço como uma CloudFormation pilha para provisionar seus recursos.