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á.
Configure ambientes para usar com o AWS CDK
Você pode configurar AWS ambientes de várias maneiras de usar com AWS Cloud Development Kit (AWS CDK) o. O melhor método de gerenciamento de AWS ambientes varia de acordo com suas necessidades específicas.
Cada CDK pilha em seu aplicativo deve eventualmente ser associada a um ambiente para determinar onde a pilha será implantada.
Para uma introdução aos AWS ambientes, consulteAmbientes para o AWS CDK.
Tópicos
Onde você pode especificar ambientes de
Você pode especificar ambientes em credenciais e arquivos de configuração ou usando a env
propriedade da Stack
construção da Construct Library. AWS
Credenciais e arquivos de configuração
Você pode usar o AWS Command Line Interface (AWS CLI) para criar credentials
config
arquivos que armazenam, organizam e gerenciam as informações do seu AWS ambiente. Para saber mais sobre esses arquivos, consulte Configurações e configurações do arquivo de credenciais no Guia do AWS Command Line Interface usuário.
Os valores armazenados nesses arquivos são organizados por perfis. A forma como você nomeia seus perfis e os pares de valores-chave nesses arquivos variará de acordo com seu método de configuração do acesso programático. Para saber mais sobre os diferentes métodos, consulteConfigure as credenciais de segurança para o AWS CDKCLI.
Em geral, o AWS CDK resolve as Conta da AWS informações do seu credentials
arquivo e Região da AWS as informações do seu config
arquivo.
Depois de configurar seus config
arquivos credentials
e, você pode especificar o ambiente a ser usado com o AWS CDK CLI e por meio de variáveis de ambiente.
propriedade env da construção Stack
Você pode especificar o ambiente para cada pilha usando a env
propriedade da Stack
construção. Essa propriedade define uma conta e uma região a serem usadas. Você pode passar valores codificados para essa propriedade ou passar variáveis de ambiente que são oferecidas pelo. CDK
Para passar variáveis de ambiente, use AWS_DEFAULT_ACCOUNT
as variáveis de AWS_DEFAULT_REGION
ambiente e. Essas variáveis de ambiente podem passar valores de seus config
arquivos credentials
e. Você também pode usar a lógica em seu CDK código para determinar os valores dessas variáveis de ambiente.
Precedência ambiental com o AWS CDK
Se você usa vários métodos de especificação de ambientes, AWS CDK segue a seguinte precedência:
-
Valores codificados especificados com a
env
propriedade da construção.Stack
-
AWS_DEFAULT_ACCOUNT
e variáveis deAWS_DEFAULT_REGION
ambiente especificadas com aenv
propriedade daStack
construção. -
Informações do ambiente associadas ao perfil de seus
config
arquivoscredentials
e passadas para o CDK CLI usando a--profile
opção. -
O
default
perfil do seucredentials
econfig
dos arquivos.
Quando especificar ambientes
Ao desenvolver com oCDK, você começa definindo CDK pilhas, que contêm construções que representam AWS recursos. Em seguida, você sintetiza cada CDK pilha em um modelo. AWS CloudFormation Em seguida, você implanta o CloudFormation modelo em seu ambiente. A forma como você especifica os ambientes determina quando as informações do ambiente são aplicadas e pode afetar o CDK comportamento e os resultados.
Especifique ambientes na síntese do modelo
Quando você especifica as informações do ambiente usando a env
propriedade da Stack
construção, as informações do ambiente são aplicadas na síntese do modelo. Executando cdk synth
ou cdk
deploy
produzindo um modelo específico do ambiente CloudFormation .
Se você usar variáveis de ambiente dentro da env
propriedade, deverá usar a --profile
opção com CDK CLI comandos para passar no perfil contendo as informações do ambiente a partir de suas credenciais e arquivos de configuração. Essas informações serão então aplicadas na síntese do modelo para produzir um modelo específico do ambiente.
As informações do ambiente no CloudFormation modelo têm precedência sobre outros métodos. Por exemplo, se você fornecer um ambiente diferente comcdk deploy --profile
, o perfil será ignorado.profile
Ao fornecer informações sobre o ambiente dessa forma, você pode usar código e lógica dependentes do ambiente em seu aplicativo. CDK Isso também significa que o modelo sintetizado pode ser diferente, com base na máquina, no usuário ou na sessão em que está sintetizado. Essa abordagem geralmente é aceitável ou desejável durante o desenvolvimento, mas não é recomendada para uso em produção.
Especifique ambientes na implantação da pilha
Se você não especificar um ambiente usando a env
propriedade da Stack
construção, o CDK CLI produzirá um modelo independente do ambiente na síntese CloudFormation . Em seguida, você pode especificar o ambiente no qual implantar usandocdk deploy --profile
.profile
Se você não especificar um perfil ao implantar um modelo independente do ambiente, o CDK CLI tentará usar os valores do ambiente do seu default
perfil credentials
e dos config
arquivos na implantação.
Se as informações do ambiente não estiverem disponíveis na implantação, AWS CloudFormation tentará resolver as informações do ambiente na implantação por meio de atributos relacionados ao ambientestack.account
, comostack.region
, e. stack.availabilityZones
Para pilhas independentes do ambiente, as construções dentro da pilha não podem usar informações do ambiente e você não pode usar a lógica que exija informações do ambiente. Por exemplo, você não pode escrever código como if (stack.region ====
'us-east-1')
ou usar métodos de construção que exijam informações do ambiente, comoVpc.fromLookup
. Para usar esses recursos, você deve especificar um ambiente com a env
propriedade.
Para pilhas independentes do ambiente, qualquer construção que use zonas de disponibilidade verá duas zonas de disponibilidade, permitindo que a pilha seja implantada em qualquer região.
Como especificar ambientes com o AWS CDK
Especifique ambientes codificados para cada pilha
Use a env
propriedade da Stack
construção para especificar valores de AWS ambiente para sua pilha. Veja um exemplo a seguir:
Recomendamos essa abordagem para ambientes de produção. Ao especificar explicitamente o ambiente dessa forma, você pode garantir que a pilha seja sempre implantada no ambiente específico.
Especifique ambientes usando variáveis de ambiente
O AWS CDK fornece duas variáveis de ambiente que você pode usar em seu CDK código: CDK_DEFAULT_ACCOUNT
CDK_DEFAULT_REGION
e. Ao usar essas variáveis de ambiente na env
propriedade de sua instância de pilha, você pode passar informações de ambiente de suas credenciais e arquivos de configuração usando o CDK CLI --profile
opção.
Veja a seguir um exemplo de como especificar essas variáveis de ambiente:
Ao especificar ambientes usando variáveis de ambiente, você pode ter a mesma CDK pilha sintetizada em AWS CloudFormation modelos para ambientes diferentes. Isso significa que você pode implantar a mesma CDK pilha em AWS ambientes diferentes sem precisar modificar seu CDK código. Você só precisa especificar o perfil a ser usado durante a execuçãocdk synth
.
Essa abordagem é ótima para ambientes de desenvolvimento ao implantar a mesma pilha em ambientes diferentes. No entanto, não recomendamos essa abordagem para ambientes de produção, pois o mesmo CDK código pode sintetizar modelos diferentes, dependendo da máquina, do usuário ou da sessão em que está sintetizado.
Especifique ambientes a partir de suas credenciais e arquivos de configuração com o CDK CLI
Ao implantar um modelo independente do ambiente, use a opção com qualquer --profile
CDK CLI comando para especificar o perfil a ser usado. Veja a seguir um exemplo que implanta uma CDK pilha chamada myStack
usando o prod
perfil definido nos arquivos credentials
andconfig
:
$
cdk deploy
myStack
--profileprod
Para obter mais informações sobre a --profile
opção, juntamente com outras CDK CLI comandos e opções, consulteAWS CDK CLI Referência de comando.
Considerações ao configurar ambientes com o AWS CDK
Os serviços que você define usando construções em suas pilhas devem oferecer suporte à região na qual você está implantando. Para obter uma lista de suporte Serviços da AWS por região, consulte AWS Serviços por região
Você deve ter credenciais válidas AWS Identity and Access Management (IAM) para realizar implantações de pilha com o AWS CDK em seus ambientes especificados.
Exemplos
Sintetize um modelo independente do ambiente a partir de uma pilha CloudFormation CDK
Neste exemplo, criamos um CloudFormation modelo independente do ambiente a partir da nossa pilha. CDK Em seguida, podemos implantar esse modelo em qualquer ambiente.
A seguir está nossa CDK pilha de exemplos. Essa pilha define um bucket do Amazon S3 e CloudFormation uma saída de pilha para a região do bucket. Para este exemplo, não env
está definido:
Quando corremoscdk synth
, o CDK CLI produz um CloudFormation modelo com o pseudoparâmetro AWS::Region
como valor de saída para a região do bucket. Esse parâmetro será resolvido na implantação:
Outputs: BucketRegion: Value: Ref: AWS::Region
Para implantar essa pilha em um ambiente especificado no dev
perfil de nossas credenciais e arquivos de configuração, executamos o seguinte:
$
cdk deploy CdkAppStack --profile dev
Se não especificarmos um perfil, o CDK CLI tentaremos usar as informações do ambiente do default
perfil em nossas credenciais e arquivos de configuração.
Use a lógica para determinar as informações do ambiente na síntese do modelo
Neste exemplo, configuramos a env
propriedade da nossa stack
instância para usar uma expressão válida. Especificamos duas variáveis de ambiente adicionais CDK_DEPLOY_ACCOUNT
CDK_DEPLOY_REGION
e. Essas variáveis de ambiente podem substituir os padrões no momento da síntese, se existirem:
Com o ambiente da nossa pilha declarado dessa forma, podemos escrever um script curto ou arquivo em lote, definir variáveis a partir dos argumentos da linha de comando e, em seguida, chamarcdk deploy
. Veja um exemplo a seguir. Todos os argumentos além dos dois primeiros são passados cdk deploy
para especificar as opções ou argumentos da linha de comando:
Em seguida, podemos escrever scripts adicionais que usam o cdk-deploy-to
script para implantar em ambientes específicos. Veja um exemplo a seguir:
Veja a seguir um exemplo que usa o cdk-deploy-to
script para implantar em vários ambientes. Se a primeira implantação falhar, o processo será interrompido: