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á.
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 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 fornecida 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 o CDK CLI para interagir AWS, você deve configurar as credenciais de segurança em sua máquina local. Para obter instruções, consulte Configure as credenciais de segurança para o AWS CDKCLI.
Inicialize seu ambiente AWS
Uma implantação está sempre associada a um ou mais AWS ambientes. Antes que você possa implantar, o ambiente deve primeiro ser inicializado. 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 o AWS CDK comando Command Line Interface (AWS CDK CLI) cdk bootstrap
para inicializar seu ambiente. Você pode personalizar a inicialização 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 Configure ambientes para usar com o AWS CDK.
Desenvolva seu CDK aplicativo
Dentro de 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 cdk synth
comando. O cdk
deploy
comando 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 CDK da pilha.
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 do aplicativo
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 todas as construções definidas e, em seguida, as vincula. Nesse estágio, todas as construções (aplicativo, pilhas e suas construções secundárias) são instanciadas e a cadeia de construtores é executada. A maior parte do código do seu aplicativo é executada nesse estágio.
- Preparação
-
Todas as construções que implementaram o
prepare
método 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 gancho de “preparação” e geralmente não é recomendado. Tenha muito cuidado ao alterar a árvore de construção durante essa fase, pois a ordem das operações pode afetar o comportamento.Durante essa fase, depois que a árvore de construção for construída, todos os aspectos que você configurou também serão aplicados.
- Validação
-
Todas as construções que implementaram o
validate
método podem se validar para garantir que estejam em um estado que seja implantado corretamente. Você será notificado sobre quaisquer falhas de validação que ocorram durante essa fase. Geralmente, recomendamos realizar a validação o mais rápido possível (geralmente assim que você receber alguma informação) e lançar 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 construção e invoca osynthesize
método em todas as construções. As construções implementadassynthesize
podem participar da síntese e produzir artefatos de implantação na montagem de nuvem resultante. Esses artefatos incluem CloudFormation modelos, pacotes de AWS Lambda aplicativos, ativos de arquivos e Docker imagens e outros artefatos de implantação. Na maioria dos casos, você não precisará implementar osynthesize
método.
Executando seu aplicativo
A CDK CLI necessidade de saber como executar seu CDK aplicativo. Se você criou o projeto a partir de um modelo usando o cdk init
comando, o cdk.json
arquivo do seu aplicativo inclui uma app
chave. Essa chave especifica o comando necessário para o idioma em que o aplicativo está escrito. Se sua linguagem exigir compilação, a linha de comando executará essa etapa antes de executar o aplicativo 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 ferramenta 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. A ferramenta cdk-command
é um subcomando como synth
or deploy
que informa o CDK CLI que você quer fazer com seu aplicativo. Siga isso com todas as opções adicionais necessárias para esse subcomando.
Eles também CDK CLI podem interagir diretamente com um conjunto de nuvem já sintetizado. Para fazer isso, passe o diretório no qual o conjunto de nuvem está armazenado--app
. O exemplo a seguir lista as pilhas definidas no conjunto de nuvem armazenado em./my-cloud-assembly
.
$
cdk --app./my-cloud-assembly
ls
Montagens em 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 seu aplicativo 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 todos os ativos de arquivo ou Docker imagens que você referenciar no seu aplicativo.
Consulte a especificação de montagem em nuvem
Para interagir com o conjunto de nuvem que seu AWS CDK aplicativo cria, você normalmente usa AWS CDK CLI o. No entanto, qualquer ferramenta que possa ler o formato de montagem em nuvem pode ser usada para implantar seu aplicativo.
Implantar o aplicativo
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ê executacdk deploy
, ele CDK CLI inicia a preparação cdk synth
para a implantação. O diagrama a seguir ilustra o ciclo de vida do aplicativo no contexto de uma implantação:
Durante a implantação, ele 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 ao seu aplicativo, consulte o AWS CloudFormation módulo ou o exemplo de recurso personalizado
. Você também pode configurar o módulo Triggers 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 o AWS CDK aplicativo 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 umToken
valor. 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 que a implantação possa ser executada, 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 inicialização 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, CDK CLI ele é executado
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 Configure as credenciais de segurança para o AWS CDKCLI. 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 essas funções e para o que elas concedem permissões, consulteIAMfunçõ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 de 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.