

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`
<a name="ref-cli-cmd-diff"></a>

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
<a name="ref-cli-cmd-diff-usage"></a>

```
$ cdk diff <arguments> <options>
```

## Argumentos
<a name="ref-cli-cmd-diff-args"></a><a name="ref-cli-cmd-diff-args-stack-name"></a>

 **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
<a name="ref-cli-cmd-diff-options"></a>

Para obter uma lista das opções globais que funcionam com todos os comandos da CLI do CDK, consulte [Opções globais](ref-cli-cmd.md#ref-cli-cmd-options).<a name="ref-cli-cmd-diff-options-method"></a>

 `--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` <a name="ref-cli-cmd-diff-options-change-set"></a>

 `--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-set`mapeia para`--method=auto`. `--no-change-set`mapeia para`--method=template`.<a name="ref-cli-cmd-diff-options-context-lines"></a>

 `--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` <a name="ref-cli-cmd-diff-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
Diferenciar apenas as pilhas solicitadas e não incluir dependências.<a name="ref-cli-cmd-diff-options-fail"></a>

 `--fail <BOOLEAN>`   
Falhar e sair com um código de `1` se forem detectadas diferenças.<a name="ref-cli-cmd-diff-options-help"></a>

 `--help, -h <BOOLEAN>`   
Mostrar as informações de referência do comando `cdk diff`.<a name="ref-cli-cmd-diff-options-processed"></a>

 `--processed <BOOLEAN>`   
Especifique se deseja comparar com o modelo com as CloudFormation transformações já processadas.  
 *Valor padrão*: `false` <a name="ref-cli-cmd-diff-options-quiet"></a>

 `--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` <a name="ref-cli-cmd-diff-options-security-only"></a>

 `--security-only <BOOLEAN>`   
Diferenciar apenas para mudanças de segurança ampliadas.  
 *Valor padrão*: `false` <a name="ref-cli-cmd-diff-options-strict"></a>

 `--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` <a name="ref-cli-cmd-diff-options-template"></a>

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

## Exemplos
<a name="ref-cli-cmd-diff-examples"></a>

### Compare com a pilha atualmente implantada chamada MyStackName
<a name="ref-cli-cmd-diff-examples-1"></a>

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
<a name="ref-cli-cmd-diff-examples-2"></a>

```
$ 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
<a name="ref-cli-cmd-diff-examples-3"></a>

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