View a markdown version of this page

cdk diff - AWS Kit de desenvolvimento em nuvem (AWS CDK) v2

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

cdk diff

Faça uma comparação para ver as mudanças na infraestrutura entre as pilhas de AWS CDK.

Esse comando geralmente é usado para comparar as diferenças entre o estado atual das pilhas em sua aplicação CDK local e as pilhas implantadas. No entanto, você também pode comparar uma pilha implantada com qualquer modelo local AWS CloudFormation .

Usage

$ cdk diff <arguments> <options>

Argumentos

ID da pilha CDK

O ID de constructo da pilha do CDK da sua aplicação para realizar uma comparação.

Tipo: string

Obrigatório: não

Opções

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

--method, -m <STRING>

Especifica como calcular a diferença.

  • auto— Padrão. Cria um conjunto de AWS CloudFormation alterações para exibir informações de substituição precisas. Se o conjunto de alterações não puder ser criado (por exemplo, devido à falta de permissões), retorne a uma diferença somente de modelo. Usa a função de implantação.

  • change-set— Sempre cria um conjunto de alterações e falha se ele não puder ser criado. Use isso quando precisar de precisão garantida. Usa a função de implantação.

  • template— Compara CloudFormation modelos diretamente. Mais rápido, mas menos preciso. Qualquer alteração detectada em propriedades que exijam substituição de recursos é exibida como uma substituição de recurso, mesmo que a alteração seja puramente cosmética. Usa a função de pesquisa.

    Valor padrão: auto

--change-set <BOOLEAN>(obsoleto)

Especifica se é necessário criar um conjunto de alterações para analisar as substituições de recursos. Use --method em vez disso.

--change-setmapeia para--method=auto. --no-change-setmapeia para--method=template.

--context-lines <NUMBER>

Número de linhas de contexto a serem incluídas na renderização arbitrária de diferenças JSON.

Valor padrão: 3

--exclusively, -e <BOOLEAN>

Diferenciar apenas as pilhas solicitadas e não incluir dependências.

--fail <BOOLEAN>

Falhar e sair com um código de 1 se forem detectadas diferenças.

--help, -h <BOOLEAN>

Mostrar as informações de referência do comando cdk diff.

--processed <BOOLEAN>

Especifique se deseja comparar com o modelo com as CloudFormation transformações já processadas.

Valor padrão: false

--quiet, -q <BOOLEAN>

Não imprimir o nome da pilha CDK e a mensagem padrão cdk diff para stdout quando nenhuma alteração for detectada.

Valor padrão: false

--security-only <BOOLEAN>

Diferenciar apenas para mudanças de segurança ampliadas.

Valor padrão: false

--strict <BOOLEAN>

Modifique o comportamento cdk diff para ser mais preciso ou rigoroso. Quando verdadeiro, a CLI do CDK não filtrará recursos da AWS::CDK::Metadata ou caracteres não ASCII ilegíveis.

Valor padrão: false

--template <STRING>

O caminho para o CloudFormation modelo com o qual comparar uma pilha de CDK. Implica--method=template.

Exemplos

Compare com a pilha atualmente implantada chamada MyStackName

A CLI do CDK usa os símbolos a seguir na saída de diff:

  • [+]: identifica o código ou os recursos que serão adicionados se você implantar suas alterações.

  • [-]: identifica o código ou os recursos que serão removidos se você implantar suas alterações.

  • [~]: identifica um recurso ou propriedade que será modificado se você implantar suas alterações.

Veja a seguir um exemplo que mostra uma diferença de alterações locais em uma função do Lambda:

$ cdk diff MyStackName start: Building <asset-hash>:<account:Region> success: Built <asset-hash>:<account:Region> start: Publishing <asset-hash>:<account:Region> success: Published <asset-hash>:<account:Region> Hold on while we create a read-only change set to get a diff with accurate replacement information (use --method=template to use a less accurate but faster template-only diff) Stack MyStackName Resources [~] AWS::Lambda::Function HelloWorldFunction <resource-logical-ID> └─ [~] Code └─ [~] .ZipFile: ├─ [-] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; └─ [+] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello from CDK!'), }; }; ✨ Number of stacks with differences: 1

Um indicador [~] para recursos que serão modificados nem sempre significa uma substituição completa de recursos:

  • Algumas propriedades do recurso, como Code, atualizarão o recurso.

  • Algumas propriedades do recurso, como FunctionName, podem causar a substituição total do recurso.

Compare com um modelo específico CloudFormation

$ cdk diff MyStackName --app='node bin/main.js' --template-path='./MyStackNameTemplate.yaml'

Faça um diff de uma pilha local com sua pilha implantada. Não imprima em stdout se nenhuma alteração for detectada

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