View a markdown version of this page

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

Dies ist der AWS CDK v2-Entwicklerhandbuch. Das ältere CDK v1 wurde am 1. Juni 2022 in die Wartung aufgenommen und der Support wurde am 1. Juni 2023 eingestellt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

cdk diff

Führen Sie einen Vergleich durch, um die Infrastrukturänderungen zwischen den AWS CDK-Stacks zu sehen.

Dieser Befehl wird normalerweise verwendet, um Unterschiede zwischen dem aktuellen Status der Stacks in Ihrer lokalen CDK-App und den bereitgestellten Stacks zu vergleichen. Sie können jedoch auch einen bereitgestellten Stack mit einer beliebigen lokalen Vorlage vergleichen. AWS CloudFormation

Usage

$ cdk diff <arguments> <options>

Argumente

CDK-Stack-ID

Die Konstrukt-ID des CDK-Stacks aus Ihrer App, um einen Vergleich durchzuführen.

Typ: Zeichenfolge

Required: No

Optionen

Eine Liste der globalen Optionen, die mit allen CDK-CLI-Befehlen funktionieren, finden Sie unter Globale Optionen.

--method, -m <STRING>

Gibt an, wie der Unterschied berechnet werden soll.

  • auto— Standard. Erstellt einen AWS CloudFormation Änderungssatz, um genaue Ersatzinformationen anzuzeigen. Wenn der Änderungssatz nicht erstellt werden kann (z. B. aufgrund fehlender Berechtigungen), wird auf einen reinen Template-Diff zurückgegriffen. Verwendet die Bereitstellungsrolle.

  • change-set— Erstellt immer einen Änderungssatz und schlägt fehl, wenn er nicht erstellt werden kann. Verwenden Sie diese Option, wenn Sie garantierte Genauigkeit benötigen. Verwendet die Bereitstellungsrolle.

  • template— Vergleicht CloudFormation Vorlagen direkt. Schneller, aber weniger genau. Jede Änderung, die an Eigenschaften erkannt wird, die einen Austausch von Ressourcen erfordern, wird als Ressourcenersatz angezeigt, auch wenn es sich um rein kosmetische Änderungen handelt. Verwendet die Lookup-Rolle.

    Standardwert: auto

--change-set <BOOLEAN>(veraltet)

Gibt an, ob ein Änderungssatz erstellt werden soll, um den Austausch von Ressourcen zu analysieren. Verwenden Sie stattdessen --method.

--change-setordnet zu. --method=auto --no-change-setordnet zu--method=template.

--context-lines <NUMBER>

Anzahl der Kontextzeilen, die in das beliebige JSON-Diff-Rendering aufgenommen werden sollen.

Standardwert: 3

--exclusively, -e <BOOLEAN>

Vergleicht nur angeforderte Stacks und schließt keine Abhängigkeiten ein.

--fail <BOOLEAN>

Schlägt fehl und beendet das Programm mit dem Code1, ob Unterschiede erkannt wurden.

--help, -h <BOOLEAN>

Zeigt Befehlsreferenzinformationen für den cdk diff Befehl an.

--processed <BOOLEAN>

Geben Sie an, ob bereits verarbeitete CloudFormation Transformationen mit der Vorlage verglichen werden sollen.

Standardwert: false

--quiet, -q <BOOLEAN>

Drucken Sie den CDK-Stacknamen und die cdk diff Standardnachricht nicht aus, stdout wenn keine Änderungen erkannt wurden.

Standardwert: false

--security-only <BOOLEAN>

Nur Diff für erweiterte Sicherheitsänderungen.

Standardwert: false

--strict <BOOLEAN>

Ändern Sie cdk diff das Verhalten, sodass es genauer oder strenger ist. Wenn der Wert true ist, filtert die CDK-CLI keine AWS::CDK::Metadata Ressourcen oder unlesbaren Nicht-ASCII-Zeichen heraus.

Standardwert: false

--template <STRING>

Der Pfad zur CloudFormation Vorlage, mit der ein CDK-Stack verglichen werden soll. Impliziert--method=template.

Beispiele

Vergleich mit dem aktuell bereitgestellten Stack mit dem Namen MyStackName

Die CDK-CLI verwendet die folgenden Symbole in der Diff-Ausgabe:

  • [+]— Identifiziert Code oder Ressourcen, die hinzugefügt werden, wenn Sie Ihre Änderungen bereitstellen.

  • [-]— Identifiziert Code oder Ressourcen, die entfernt werden, wenn Sie Ihre Änderungen implementieren.

  • [~]— Identifiziert eine Ressource oder Eigenschaft, die geändert wird, wenn Sie Ihre Änderungen implementieren.

Das folgende Beispiel zeigt einen Unterschied zwischen lokalen Änderungen an einer Lambda-Funktion:

$ 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

Ein [~] Indikator für Ressourcen, die geändert werden, bedeutet nicht immer, dass Ressourcen vollständig ersetzt werden:

  • Einige Ressourceneigenschaften, z. Code B. werden die Ressource aktualisieren.

  • Einige Ressourceneigenschaften, wie z. B.FunctionName, können dazu führen, dass die Ressource vollständig ersetzt wird.

Vergleich mit einer bestimmten CloudFormation Vorlage

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

Vergleicht einen lokalen Stack mit seinem bereitgestellten Stack. Druckt nicht auf die Standardausgabe, wenn keine Änderungen erkannt wurden

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