Programmgesteuerte Aktionen des CDK Toolkit konfigurieren - 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.

Programmgesteuerte Aktionen des CDK Toolkit konfigurieren

Die AWS CDK Toolkit Library bietet programmatische Schnittstellen für Aktionen im Lebenszyklus von Anwendungen wie Synthese, Bereitstellung und Stack-Management. In diesem Handbuch wird erklärt, wie Sie die einzelnen Aktionen in Ihrem Code verwenden.

Generieren von Cloud-Assemblys mit Synth

Die synth Aktion generiert eine Cloud-Assembly aus Ihrer Cloud-Assembly-Quelle. Weitere Informationen zur Synthese finden Sie unter CDK-Stack-Synthese konfigurieren und durchführen. Eine Cloud-Assembly enthält die folgenden Bereitstellungsartefakte aus Ihrer CDK-App:

  • AWS CloudFormation Vorlagen, die Ihre Infrastruktur definieren.

  • Assets wie Lambda-Funktionscode oder Docker-Images.

  • Metadaten und Konfiguration der Bereitstellung.

So verwenden Sie die synth Aktion, um eine Cloud-Assembly zu erstellen:

// Create a toolkit instance const toolkit = new Toolkit(); // Create a cloud assembly source from a TypeScript app const cloudAssemblySource = await toolkit.fromCdkApp("ts-node app.ts"); // Generate a cloud assembly const cloudAssembly = await toolkit.synth(cloudAssemblySource); // Use the cloud assembly for operations await toolkit.list(cloudAssembly); await toolkit.deploy(cloudAssembly); await toolkit.diff(cloudAssembly); // Query information from the cloud assembly const template = cloudAssembly.getStack("my-stack").template;
Tipp

Die Verwendung einer Cloud-Assembly kann die Leistung optimieren, wenn Sie mehrere Operationen ausführen müssen, da die Synthese nur einmal erfolgt. Weitere Informationen zur Verwaltung von Cloud-Assemblys, einschließlich Zwischenspeicherung und Löschung, finden Sie unter Cloud-Assemblys erstellen und verwalten.

Stack-Informationen mit Liste anzeigen

Die list Aktion ruft Informationen über die Stacks in Ihrer CDK-Anwendung ab, einschließlich ihrer Abhängigkeiten und des aktuellen Status. Verwenden Sie diese Aktion, um Ihre Infrastruktur vor der Bereitstellung zu überprüfen oder Berichte zu erstellen.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Get information about specific stacks const stackDetails = await toolkit.list(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["my-stack"], // Only include stacks matching this pattern } }); // Process the returned stack information for (const stack of stackDetails) { console.log(`Stack: ${stack.id}, Dependencies: ${stack.dependencies}`); }

Bereitstellung der Infrastruktur mit Deploy

Die deploy Aktion stellt Ihre Infrastruktur AWS mithilfe der während der Synthese erstellten Cloud-Assembly bereit oder aktualisiert sie. Eine Einführung in die Bereitstellung finden Sie unter Bereitstellen von AWS CDK-Anwendungen. Sie können Bereitstellungsoptionen wie Stack-Auswahl, Parameterwerte und Rollback-Verhalten steuern.

// Deploy stacks with parameter values await toolkit.deploy(cloudAssemblySource, { parameters: StackParameters.exactly({ "MyStack": { "BucketName": "amzn-s3-demo-bucket" } }) });

Die Bereitstellungsaktion unterstützt verschiedene Bereitstellungsmethoden, um verschiedenen Workflows gerecht zu werden. Für die meisten Szenarien, insbesondere in Produktionsumgebungen, empfehlen wir, die Standardbereitstellungsmethode zu verwenden, bei der CloudFormation Änderungssätze verwendet werden. Für Entwicklungsumgebungen, in denen die Iterationsgeschwindigkeit wichtig ist, können Sie alternative Methoden wie Hotswap verwenden.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Deploy using default deployment method (recommended for production) await toolkit.deploy(cloudAssemblySource, { parameters: StackParameters.exactly({ "MyStack": { "BucketName": "amzn-s3-demo-bucket" } }) }); // For development environments only: Deploy with hotswap for faster iterations // Note: We recommend using default deployment methods for production environments await toolkit.deploy(cloudAssemblySource, { deploymentMethod: { method: "hotswap", fallback: true }, // Faster but introduces drift stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["dev-stack"] } });

Fehlgeschlagene Bereitstellungen mit Rollback rückgängig machen

Die rollback Aktion versetzt einen Stack in seinen letzten stabilen Zustand zurück, wenn eine Bereitstellung fehlschlägt und nicht automatisch rückgängig gemacht werden kann. Verwenden Sie diese Aktion, um nach fehlgeschlagenen Bereitstellungen, die ein manuelles Eingreifen erfordern, eine Wiederherstellung durchzuführen.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Roll back stacks to their last stable state await toolkit.rollback(cloudAssemblySource, { orphanFailedResources: false, // When true, removes failed resources from CloudFormation management stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["failed-stack"] } });

Änderungen mit Watch überwachen

Die watch Aktion überwacht Ihre CDK-App kontinuierlich auf lokale Dateiänderungen und führt automatisch Bereitstellungen oder Hotswaps durch. Dadurch wird ein Datei-Watcher erstellt, der läuft, bis Ihr Code beendet oder beendet wird.

Warnung

Bei Hotswap-Bereitstellungen werden Ressourcen, sofern möglich, direkt aktualisiert, sodass Aktualisierungen CloudFormation während der Entwicklung schneller durchgeführt werden. Dies ist standardmäßig für den Befehl aktiviert. watch Dies beschleunigt zwar den Entwicklungszyklus, führt aber zu Abweichungen zwischen Ihren CloudFormation Vorlagen und den bereitgestellten Ressourcen. Daher empfehlen wir, Hotswaps nicht in Produktionsumgebungen zu verwenden.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Start watching for changes const watcher = await toolkit.watch(cloudAssemblySource, { include: ["lib/**/*.ts"], // Only watch TypeScript files in the lib directory exclude: ["**/*.test.ts"], // Ignore test files deploymentMethod: { method: "hotswap" }, // This is the default, shown here for clarity stacks: { strategy: StackSelectionStrategy.ALL // Watch all stacks } }); // Later in your code, you can explicitly stop watching: // await watcher.dispose();

Die Überwachungsfunktion gibt ein IWatcher Objekt zurück, mit dem Sie explizit steuern können, wann die Wiedergabe beendet werden soll. Rufen Sie die dispose() Methode für dieses Objekt auf, wenn Sie den Überwachungsvorgang beenden möchten.

Infrastruktur wird mit Destroy entfernt

Die destroy Aktion entfernt CDK-Stacks und die zugehörigen Ressourcen von. AWS Verwenden Sie diese Aktion, um Ressourcen zu bereinigen, wenn sie nicht mehr benötigt werden.

Wichtig

Die Aktion Löschen entfernt Ressourcen dauerhaft, ohne dass eine Bestätigung angefordert wird, im Gegensatz zur CLI-Version dieses Befehls. Stellen Sie sicher, dass Sie Backups aller wichtigen Daten haben, bevor Sie Stapel zerstören.

import { StackSelectionStrategy } from '@aws-cdk/toolkit-lib'; // Remove specific stacks and their resources await toolkit.destroy(cloudAssemblySource, { stacks: { strategy: StackSelectionStrategy.PATTERN_MUST_MATCH, patterns: ["dev-stack"], // Only destroy stacks matching this pattern } });