Questa è la guida per sviluppatori AWS CDK v2. 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à.
Esegui un diff per vedere i cambiamenti dell'infrastruttura tra gli AWS CDK stack.
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>
Argomenti
- ID dello stack CDK
-
L'ID di costruzione dello stack CDK della tua app per eseguire una differenza.
Tipo: Stringa
Required: No
Opzioni
Per un elenco di opzioni globali che funzionano con tutti i CDK CLI comandi, vediOpzioni globali.
--change-set
BOOLEAN
-
Specificare se creare un set di modifiche per analizzare le sostituzioni delle risorse.
Quando
true
, il CDK CLI creerà un set di AWS CloudFormation modifiche per visualizzare le modifiche esatte che verranno apportate al tuo stack. Questo output include se le risorse verranno aggiornate o sostituite. Il CDK CLI utilizza il ruolo di distribuzione anziché il ruolo di ricerca per eseguire questa azione.Quando
false
, viene eseguita una differenza più rapida ma meno accurata confrontando i modelli. CloudFormation Qualsiasi modifica rilevata alle proprietà che richiedono la sostituzione di risorse verrà visualizzata come una risorsa sostitutiva, anche se la modifica è puramente estetica, ad esempio la sostituzione di un riferimento di risorsa con un ARN codificato.Valore predefinito:
true
--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 predefinitostdout
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 vero, il CDK CLI non filtreràAWS::CDK::Metadata
risorse o caratteri non ASCII illeggibili.Valore predefinito:
false
--template
STRING
-
Il percorso del CloudFormation modello con cui confrontare uno stack CDK.
Esempi
Differenza rispetto allo stack attualmente distribuito denominato MyStackName
Il CDK CLI 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: Buildingasset-hash
:account-Region
success: Builtasset-hash
:account-Region
start: Publishingasset-hash
:account-Region
success: Publishedasset-hash
:account-Region
Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Stack MyStackName Resources [~] AWS::Lambda::Function HelloWorldFunctionresource-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 esempio
Code
, aggiorneranno la risorsa. -
Alcune proprietà delle risorse, ad esempio
FunctionName
, 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 viene rilevata alcuna modifica
$
cdk diff MyStackName --app='node bin/main.js' --quiet