View a markdown version of this page

cdk diff - AWS Cloud Development Kit (AWS CDK) v2

Questa è la AWS CDK v2 Developer Guide. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

cdk diff

Esegui un diff per vedere le modifiche all'infrastruttura tra gli AWS stack CDK.

Questo comando viene in genere utilizzato per confrontare le differenze tra lo stato attuale degli stack nell'app CDK locale e gli stack distribuiti. Tuttavia, puoi anche confrontare uno stack distribuito con qualsiasi modello locale. AWS CloudFormation

Utilizzo

$ cdk diff <arguments> <options>

Arguments (Argomenti)

ID dello stack CDK

L'ID di costruzione dello stack CDK della tua app per eseguire una differenza.

Tipo: stringa

Obbligatorio: no

Opzioni

Per un elenco di opzioni globali che funzionano con tutti i comandi CDK CLI, vedete Opzioni globali.

--method, -m <STRING>

Specifica come calcolare il diff.

  • auto— Impostazione predefinita. Crea un set di AWS CloudFormation modifiche per visualizzare informazioni di sostituzione accurate. Se il set di modifiche non può essere creato (ad esempio, a causa della mancanza di autorizzazioni), torna a una differenza basata solo sul modello. Utilizza il ruolo deploy.

  • change-set— Crea sempre un set di modifiche e fallisce se non può essere creato. Utilizzatelo quando avete bisogno di una precisione garantita. Utilizza il ruolo di distribuzione.

  • template— Confronta direttamente i CloudFormation modelli. Più veloce, ma meno preciso. Qualsiasi modifica rilevata alle proprietà che richiedono la sostituzione di risorse viene visualizzata come una risorsa sostitutiva, anche se la modifica è puramente estetica. Utilizza il ruolo di ricerca.

    Valore predefinito: auto

--change-set <BOOLEAN>(obsoleto)

Speciifica se creare un set di modifiche per analizzare le sostituzioni delle risorse. Usare invece --method.

--change-setè mappato a. --method=auto --no-change-setmappe per--method=template.

--context-lines <NUMBER>

Numero di righe di contesto da includere nel rendering differenziale JSON arbitrario.

Valore predefinito: 3

--exclusively, -e <BOOLEAN>

Solo diff ha richiesto gli stack e non include le dipendenze.

--fail <BOOLEAN>

Fallisci ed esci con un codice che indica 1 se vengono rilevate differenze.

--help, -h <BOOLEAN>

Mostra le informazioni di riferimento del cdk diff comando.

--processed <BOOLEAN>

Specificate se effettuare il confronto con il modello con CloudFormation le trasformazioni già elaborate.

Valore predefinito: false

--quiet, -q <BOOLEAN>

Non stampate il nome dello stack CDK e il cdk diff messaggio predefinito stdout quando non vengono rilevate modifiche.

Valore predefinito: false

--security-only <BOOLEAN>

Differiscono solo per le modifiche di sicurezza estese.

Valore predefinito: false

--strict <BOOLEAN>

Modifica cdk diff il comportamento per renderlo più preciso o rigoroso. Se impostato su true, la CLI CDK non filtrerà le risorse o i caratteri non AWS::CDK::Metadata ASCII illeggibili.

Valore predefinito: false

--template <STRING>

Il percorso del CloudFormation modello con cui confrontare uno stack CDK. Implica. --method=template

Esempi

Differenza rispetto allo stack attualmente distribuito denominato MyStackName

La CLI CDK utilizza i seguenti simboli nell'output diff:

  • [+]— Identifica il codice o le risorse che verranno aggiunti se si distribuiscono le modifiche.

  • [-]— Identifica il codice o le risorse che verranno rimosse se si implementano le modifiche.

  • [~]— Identifica una risorsa o una proprietà che verrà modificata se si implementano le modifiche.

Di seguito è riportato un esempio che mostra una differenza di modifiche locali a una funzione 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

Un [~] indicatore delle risorse che verranno modificate non sempre significa una sostituzione completa delle risorse:

  • Alcune proprietà della risorsa, ad esempioCode, aggiorneranno la risorsa.

  • Alcune proprietà delle risorse, ad esempioFunctionName, possono causare la sostituzione completa della risorsa.

Differenza rispetto a un CloudFormation modello specifico

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

Differenzia uno stack locale con lo stack distribuito. Non stampare su stdout se non vengono rilevate modifiche

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