cdk deploy - 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á.

cdk deploy

Implante uma ou mais AWS CDK pilhas em seu AWS ambiente.

Durante a implantação, o CDK CLI produzirá indicadores de progresso, semelhantes aos que podem ser observados no AWS CloudFormation console.

Se o AWS ambiente não for inicializado, somente pilhas sem ativos e com modelos sintetizados com menos de 51.200 bytes serão implantadas com sucesso.

Uso

$ cdk deploy <arguments> <options>

Argumentos

ID lógica da pilha CDK

O ID lógico da pilha de CDK do seu aplicativo a ser implantado.

Tipo: string

Obrigatório: não

Opções

Para obter uma lista das opções globais que funcionam com todos os CLI comandos do CDK, consulteOpções globais.

--all BOOLEAN

Implante todas as pilhas em seu aplicativo CDK.

Valor padrão: false

--asset-parallelism BOOLEAN

Especifique se deseja criar e publicar ativos em paralelo.

--asset-prebuild BOOLEAN

Especifique se deseja criar todos os ativos antes de implantar a primeira pilha. Essa opção é útil para Docker compilações com falha.

Valor padrão: true

--build-exclude, -E ARRAY

Não reconstrua o ativo com o ID fornecido.

Essa opção pode ser especificada várias vezes em um único comando.

Valor padrão: []

--change-set-name STRING

O nome do conjunto de AWS CloudFormation alterações a ser criado.

Essa opção não é compatível com o --method='direct'.

--concurrency NUMBER

Implante várias pilhas em paralelo enquanto contabiliza as dependências entre pilhas. Use essa opção para acelerar as implantações. Você ainda deve considerar qualquer outra limitação Conta da AWS de taxa. AWS CloudFormation

Forneça um número para especificar o número máximo de implantações simultâneas (se a dependência permitir) a serem executadas.

Valor padrão: 1

--exclusively, -e BOOLEAN

Implante somente as pilhas solicitadas e não inclua dependências.

--force, -f BOOLEAN

Quando você implanta para atualizar uma pilha existente, o CDK CLI compara o modelo e as tags da pilha implantada com a pilha prestes a ser implantada. Se nenhuma alteração for detectada, o CDK CLI ignorará a implantação.

Para ignorar esse comportamento e sempre implantar pilhas, mesmo que nenhuma alteração seja detectada, use essa opção.

Valor padrão: false

--help, -h BOOLEAN

Mostra as informações de referência do cdk deploy comando.

--hotswap BOOLEAN

Implantações de Hotswap para um desenvolvimento mais rápido. Essa opção tenta realizar uma implantação de hotswap mais rápida, se possível. Por exemplo, se você modificar o código de uma função Lambda em seu aplicativo CDK, o CDK CLI atualizará o recurso diretamente por meio de APIs de serviço em vez de realizar uma implantação. CloudFormation

Se o CDK CLI detectar alterações que não oferecem suporte ao hotswapping, essas alterações serão ignoradas e uma mensagem será exibida. Se você preferir realizar uma CloudFormation implantação completa como alternativa, use --hotswap-fallback em vez disso.

O CDK CLI usa suas AWS credenciais atuais para realizar as chamadas de API. Ele não assume as funções de sua pilha de bootstrap, mesmo se o sinalizador de @aws-cdk/core:newStyleStackSynthesis recurso estiver definido como. true Essas funções não têm as permissões necessárias para atualizar AWS recursos diretamente, sem usar CloudFormation. Por esse motivo, certifique-se de que suas credenciais sejam para as mesmas pilhas nas quais você está realizando implantações Conta da AWS de hotswap e que elas tenham as permissões de IAM necessárias para atualizar os recursos.

Atualmente, o Hotswapping é compatível com as seguintes alterações:

  • Ativos de código (incluindo Docker imagens e código embutido), alterações de tags e alterações de configuração (somente descrição e variáveis de ambiente são suportadas) das funções Lambda.

  • Versões do Lambda e alterações de alias.

  • Mudanças na definição de máquinas de AWS Step Functions estado.

  • Alterações de ativos de contêineres dos serviços do Amazon ECS.

  • Alterações nos ativos do site nas implantações de buckets do Amazon S3.

  • Mudanças na origem e no ambiente dos AWS CodeBuild projetos.

  • Alterações no modelo de mapeamento de VTL para AWS AppSync resolvedores e funções.

  • Mudanças no esquema das AWS AppSync GraphQL APIs.

O uso de determinadas funções CloudFormation intrínsecas é suportado como parte de uma implantação com troca automática. Isso inclui:

  • Ref

  • Fn::GetAtt— Suportado apenas parcialmente. Consulte essa implementação para obter recursos e atributos compatíveis.

  • Fn::ImportValue

  • Fn::Join

  • Fn::Select

  • Fn::Split

  • Fn::Sub

Essa opção também é compatível com pilhas aninhadas.

nota
  • Essa opção introduz deliberadamente o desvio nas CloudFormation pilhas para acelerar as implantações. Por esse motivo, use-o apenas para fins de desenvolvimento. Não use essa opção para suas implantações de produção.

  • Essa opção é considerada experimental e pode ter alterações significativas no futuro.

  • Os padrões para determinados parâmetros podem ser diferentes com o parâmetro hotswap. Por exemplo, a porcentagem íntegra mínima de um serviço Amazon ECS será atualmente definida em0. Revise a fonte adequadamente se isso ocorrer.

Valor padrão: false

--hotswap-fallback BOOLEAN

Essa opção é semelhante --hotswap a. A diferença é que --hotswap-fallback recorrerá à execução de uma CloudFormation implantação completa se for detectada uma alteração que a exija.

Para obter mais informações sobre essa opção, consulte --hotswap.

Valor padrão: false

--ignore-no-stacks BOOLEAN

Execute uma implantação mesmo que seu aplicativo CDK não contenha nenhuma pilha.

Essa opção é útil no seguinte cenário: Você pode ter um aplicativo com vários ambientes, como dev prod e. Ao iniciar o desenvolvimento, seu aplicativo de produção pode não ter nenhum recurso ou os recursos podem ser comentados. Isso resultará em um erro de implantação com uma mensagem informando que o aplicativo não tem pilhas. Use --ignore-no-stacks para ignorar esse erro.

Valor padrão: false

--logs BOOLEAN

Mostra o CloudWatch registro da Amazon na saída padrão (stdout) para todos os eventos de todos os recursos nas pilhas selecionadas.

Esta opção só é compatível com--watch.

Valor padrão: true

--method, -m STRING

Configure o método para realizar uma implantação.

  • change-set— Método padrão. O CDK CLI cria um conjunto de CloudFormation alterações com as alterações que serão implantadas e, em seguida, executa a implantação.

  • direct— Não crie um conjunto de alterações. Em vez disso, aplique a alteração imediatamente. Normalmente, isso é mais rápido do que criar um conjunto de alterações, mas você perde as informações de progresso.

  • prepare-change-set— Crie um conjunto de alterações, mas não realize a implantação. Isso é útil se você tiver ferramentas externas que inspecionarão o conjunto de alterações ou se você tiver um processo de aprovação para conjuntos de alterações.

Valores válidos: change-set, direct, prepare-change-set

Valor padrão: change-set

--notification-arns ARRAY

Os ARNs dos tópicos do Amazon SNS CloudFormation que notificarão sobre eventos relacionados à pilha.

--outputs-file, -O STRING

O caminho para onde as saídas da pilha das implantações são gravadas.

Após a implantação, as saídas da pilha serão gravadas no arquivo de saída especificado no formato JSON.

Você pode configurar essa opção no cdk.json arquivo do projeto ou ~/.cdk.json em sua máquina de desenvolvimento local:

{ "app": "npx ts-node bin/myproject.ts", // ... "outputsFile": "outputs.json" }

Se várias pilhas forem implantadas, as saídas serão gravadas no mesmo arquivo de saída, organizadas por chaves que representam o nome da pilha.

--parameters ARRAY

Passe parâmetros adicionais para CloudFormation durante a implantação.

Esta opção aceita uma matriz no seguinte formato:STACK:KEY=VALUE.

  • STACK— O nome da pilha à qual associar o parâmetro.

  • KEY— O nome do parâmetro da sua pilha.

  • VALUE— O valor a ser repassado na implantação.

Se o nome da pilha não for fornecido, ou se * for fornecido como o nome da pilha, os parâmetros serão aplicados a todas as pilhas que estão sendo implantadas. Se uma pilha não usar o parâmetro, a implantação falhará.

Os parâmetros não se propagam para pilhas aninhadas. Para passar parâmetros para pilhas aninhadas, use a NestedStack construção.

Valor padrão: {}

--previous-parameters BOOLEAN

Use valores anteriores para os parâmetros existentes.

Quando essa opção é definida comofalse, você deve especificar todos os parâmetros em cada implantação.

Valor padrão: true

--progress STRING

Configure como o CDK CLI exibe o progresso da implantação.

  • bar— Exiba os eventos de implantação da pilha como uma barra de progresso, com os eventos do recurso que está sendo implantado no momento.

  • events— Forneça um histórico completo, incluindo todos os CloudFormation eventos.

Você também pode configurar essa opção no cdk.json arquivo do projeto ou ~/.cdk.json em sua máquina de desenvolvimento local:

{ "progress": "events" }

Valores válidos: bar, events

Valor padrão: bar

--require-approval STRING

Especifique quais alterações sensíveis à segurança exigem aprovação manual.

  • any-change — É necessária aprovação manual para qualquer alteração na pilha.

  • broadening— É necessária aprovação manual se as alterações envolverem uma ampliação das permissões ou das regras do grupo de segurança.

  • never— A aprovação não é necessária.

Valores válidos: any-change, broadening, never

Valor padrão: broadening

--rollback BOOLEAN

Durante a implantação, se um recurso não for criado ou atualizado, a implantação voltará ao estado estável mais recente antes que o CDK CLI retorne. Todas as alterações feitas até esse ponto serão desfeitas. Os recursos criados serão excluídos e as atualizações feitas serão revertidas.

Especifique false para desativar esse comportamento. Se um recurso não for criado ou atualizado, o CDK CLI manterá as alterações feitas até aquele momento e retornará. Isso pode ser útil em ambientes de desenvolvimento em que você está iterando rapidamente.

Para--rollback=false, você pode usar --no-rollback ou-R.

nota

Quandofalse, implantações que causam substituições de recursos sempre falharão. Você só pode usar esse valor de opção para implantações que atualizam ou criam novos recursos.

Valor padrão: true

--toolkit-stack-name STRING

O nome da pilha existente do CDK Toolkit.

Essa opção é usada somente para aplicativos CDK que usam síntese legada.

--watch BOOLEAN

Observe continuamente os arquivos de projeto do CDK e implante automaticamente as pilhas especificadas quando as alterações forem detectadas.

Essa opção implica --hotswap por padrão.

Essa opção tem um CLI comando CDK equivalente. Para ter mais informações, consulte cdk watch.

Exemplos

Implante a pilha chamada MyStackName

$ cdk deploy MyStackName --app='node bin/main.js'

Implante várias pilhas em um aplicativo

Use cdk list para listar suas pilhas:

$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3

Para implantar todas as pilhas, use a --all opção:

$ cdk deploy --all

Para escolher quais pilhas implantar, forneça os nomes das pilhas como argumentos:

$ cdk deploy CdkHelloWorldStack CdkStack3

Implemente pilhas de pipeline

Use cdk list para mostrar os nomes das pilhas como caminhos, mostrando onde elas estão na hierarquia do pipeline:

$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService

Use a --all opção ou o curinga * para implantar todas as pilhas. Se você tiver uma hierarquia de pilhas, conforme descrito acima, --all e só * combinará as pilhas no nível superior. Para combinar todas as pilhas na hierarquia, use. **

Você pode combinar esses padrões. O seguinte implementa todas as pilhas no Prod estágio:

$ cdk deploy PipelineStack/Prod/**

Passe os parâmetros na implantação

Defina parâmetros em sua pilha de CDK. Veja a seguir um exemplo que cria um parâmetro com o nome TopicNameParam de um tópico do Amazon SNS:

new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });

Para fornecer um valor de parâmetro deparameterized, execute o seguinte:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"

Você pode substituir os valores dos parâmetros usando a --force opção. Veja a seguir um exemplo de como substituir o nome do tópico de uma implantação anterior:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force

Grave as saídas da pilha em um arquivo após a implantação

Defina as saídas em seu arquivo de pilha CDK. Veja a seguir um exemplo que cria uma saída para uma função ARN:

const fn = new lambda.Function(this, "fn", { handler: "index.handler", code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`), runtime: lambda.Runtime.NODEJS_LATEST }); new cdk.CfnOutput(this, 'FunctionArn', { value: fn.functionArn, });

Implante a pilha e grave as saídas em: outputs.json

$ cdk deploy --outputs-file outputs.json

Veja a seguir um exemplo de outputs.json após a implantação:

{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }

Neste exemplo, a chave FunctionArn corresponde ao ID lógico da CfnOutput instância.

Veja a seguir um exemplo de outputs.json após a implantação, quando várias pilhas são implantadas:

{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" }, "AnotherStack": { "VPCId": "vpc-z0mg270fee16693f" } }

Modificar o método de implantação

Para implantar com mais rapidez, sem usar conjuntos de alterações, use--method='direct':

$ cdk deploy --method='direct'

Para criar um conjunto de alterações, mas não implantar, use--method='prepare-change-set'. Por padrão, um conjunto de alterações chamado cdk-deploy-change-set será criado. Se existir um conjunto de alterações anterior com esse nome, ele será substituído. Se nenhuma alteração for detectada, um conjunto de alterações vazio ainda será criado.

Você também pode nomear seu conjunto de alterações. Veja um exemplo a seguir:

$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'