Migration von AWS CDK v1 zu v2 AWS CDK - AWS Cloud Development Kit (AWS CDK) v2

Dies ist der AWS CDK v2-Entwicklerhandbuch. Die ältere CDK Version 1 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.

Migration von AWS CDK v1 zu v2 AWS CDK

Version 2 von wurde entwickelt, um AWS Cloud Development Kit (AWS CDK) das Schreiben von Infrastruktur als Code in Ihrer bevorzugten Programmiersprache zu vereinfachen. In diesem Thema werden die Änderungen zwischen Version 1 und Version 2 von beschrieben AWS CDK.

Tipp

Verwenden Sie das Hilfsprogramm awscdk-v1-stack-finder, um Stacks zu identifizieren, die mit AWS CDK Version 1 bereitgestellt wurden.

Die wichtigsten Änderungen von Version 1 zu Version 2 sind wie folgt. AWS CDK CDK

  • AWS CDK v2 konsolidiert die stabilen Teile der AWS Construct-Bibliothek, einschließlich der Kernbibliothek, in einem einzigen Paket. aws-cdk-lib Entwickler müssen keine zusätzlichen Pakete mehr für die einzelnen AWS Dienste installieren, die sie verwenden. Dieser Einzelpaket-Ansatz bedeutet auch, dass Sie die Versionen der verschiedenen CDK Bibliothekspakete nicht synchronisieren müssen.

    L1-Konstrukte (CfnXXXX), die genau die verfügbaren Ressourcen in darstellen AWS CloudFormation, gelten immer als stabil und sind daher in enthalten. aws-cdk-lib

  • Experimentelle Module, in denen wir immer noch mit der Community zusammenarbeiten, um neue L2- oder L3-Konstrukte zu entwickeln, sind darin nicht enthalten. aws-cdk-lib Stattdessen werden sie als einzelne Pakete verteilt. Experimentelle Pakete werden mit einem alpha Suffix und einer semantischen Versionsnummer benannt. Die semantische Versionsnummer entspricht der ersten Version der AWS Construct Library, mit der sie kompatibel sind, ebenfalls mit einem Suffix. alpha Konstrukte werden in den Ordner verschoben, aws-cdk-lib nachdem sie als stabil eingestuft wurden, sodass sich die Haupt-Construct-Bibliothek an die strikte semantische Versionierung halten kann.

    Die Stabilität wird auf der Serviceebene spezifiziert. Wenn wir beispielsweise damit beginnen, ein oder mehrere L2-Konstrukte für Amazon zu erstellen AppFlow, die zum jetzigen Zeitpunkt nur L1-Konstrukte haben, erscheinen sie zuerst in einem Modul mit dem Namen. @aws-cdk/aws-appflow-alpha Dann gehen sie zu dem aws-cdk-lib Zeitpunkt über, zu dem wir der Meinung sind, dass die neuen Konstrukte den grundlegenden Bedürfnissen der Kunden entsprechen.

    Sobald ein Modul als stabil eingestuft und integriert wurde, APIs werden neue hinzugefügtaws-cdk-lib, wobei die im nächsten Punkt beschriebene „betAN“ -Konvention verwendet bullet.

    Eine neue Version jedes experimentellen Moduls wird mit jeder Version von veröffentlicht. AWS CDK In den meisten Fällen müssen sie jedoch nicht synchron gehalten werden. Sie können das experimentelle Modul jederzeit aktualisierenaws-cdk-lib. Die Ausnahme ist, dass, wenn zwei oder mehr verwandte experimentelle Module voneinander abhängen, sie dieselbe Version haben müssen.

  • Bei stabilen Modulen, denen neue Funktionen hinzugefügt werden, erhalten neue Module APIs (unabhängig davon, ob es sich um völlig neue Konstrukte oder neue Methoden oder Eigenschaften eines bestehenden Konstrukts handelt) während der Bearbeitung ein Beta1 Suffix. (Gefolgt von Beta2Beta3, usw., wenn grundlegende Änderungen erforderlich sind.) Eine Version von API ohne das Suffix wird hinzugefügt, wenn das als stable bezeichnet API wird. Alle Methoden außer der neuesten (ob Beta oder Final) sind dann veraltet.

    Wenn wir beispielsweise einem Konstrukt eine neue Methode grantPower() hinzufügen, erscheint sie zunächst als. grantPowerBeta1() Wenn grundlegende Änderungen erforderlich sind (z. B. ein neuer erforderlicher Parameter oder eine neue Eigenschaft), wird die nächste Version der Methode benannt grantPowerBeta2() usw. Wenn die Arbeit abgeschlossen und abgeschlossen API ist, wird die Methode grantPower() (ohne Suffix) hinzugefügt, und die BetAN-Methoden sind veraltet.

    Alle Betaversionen APIs bleiben bis zur nächsten Hauptversion (3.0) in der Construct-Bibliothek, und ihre Signaturen werden sich nicht ändern. Wenn Sie sie verwenden, werden Warnmeldungen zu veralteten Versionen angezeigt. Sie sollten daher so bald wie möglich zur endgültigen Version von wechseln. API Allerdings werden future AWS CDK 2.x-Versionen Ihre Anwendung nicht beschädigen.

  • Die Construct Klasse wurde zusammen mit verwandten Typen aus der AWS CDK in eine separate Bibliothek extrahiert. Dies geschieht, um die Bemühungen zu unterstützen, das Construct-Programmiermodell auf andere Bereiche anzuwenden. Wenn Sie Ihre eigenen Konstrukte schreiben oder verwandte Konstrukte verwendenAPIs, müssen Sie das constructs Modul als Abhängigkeit deklarieren und geringfügige Änderungen an Ihren Importen vornehmen. Wenn Sie erweiterte Funktionen verwenden, z. B. die Einbindung in den CDK App-Lebenszyklus, sind möglicherweise weitere Änderungen erforderlich. Vollständige Informationen finden Sie in der RFC.

  • Veraltete Eigenschaften, Methoden und Typen in AWS CDK Version 1.x und der zugehörigen Construct-Bibliothek wurden vollständig aus Version 2 entfernt. CDK API In den meisten unterstützten Sprachen APIs erzeugen diese unter Version 1.x Warnungen, sodass Sie möglicherweise bereits auf die Ersatzversion migriert sind. APIs Eine vollständige Liste der APIs in CDK Version 1.x veralteten Versionen finden Sie unter. GitHub

  • Verhalten, das in AWS CDK Version 1.x durch Feature-Flags eingeschränkt wurde, ist in Version 2 standardmäßig aktiviert. CDK Die früheren Feature-Flags werden nicht mehr benötigt und in den meisten Fällen nicht unterstützt. Einige sind immer noch verfügbar, mit denen Sie unter ganz bestimmten Umständen zum CDK Verhalten von Version 1 zurückkehren können. Weitere Informationen finden Sie unter Feature-Flags aktualisieren.

  • Bei CDK Version 2 müssen die Umgebungen, in denen Sie die Bereitstellung durchführen, mithilfe des modernen Bootstrap-Stacks gebootet werden. Der ältere Bootstrap-Stack (der Standard unter Version 1) wird nicht mehr unterstützt. CDKv2 erfordert außerdem eine neue Version des modernen Stacks. Um Ihre vorhandenen Umgebungen zu aktualisieren, starten Sie sie neu. Es ist nicht mehr erforderlich, Feature-Flags oder Umgebungsvariablen festzulegen, um den modernen Bootstrap-Stack zu verwenden.

Wichtig

Die moderne Bootstrap-Vorlage gewährt effektiv jedem AWS Konto in der Liste die --cloudformation-execution-policies damit verbundenen Berechtigungen. --trust Standardmäßig werden dadurch die Lese- und Schreibberechtigungen für alle Ressourcen im Bootstrap-Konto erweitert. Stellen Sie sicher, dass Sie den Bootstrapping-Stack mit Richtlinien und vertrauenswürdigen Konten konfigurieren, mit denen Sie vertraut sind.

Neue Voraussetzungen

Die meisten Anforderungen für AWS CDK v2 sind dieselben wie für AWS CDK v1.x. Zusätzliche Anforderungen sind hier aufgeführt.

  • Für TypeScript Entwickler ist TypeScript Version 3.8 oder höher erforderlich.

  • Für die Verwendung mit Version CDK 2 ist eine neue Version des CDK Toolkits erforderlich. Jetzt, da CDK v2 allgemein verfügbar ist, ist v2 die Standardversion bei der Installation des CDK Toolkits. Es ist abwärtskompatibel mit CDK v1-Projekten, sodass Sie die frühere Version nicht installiert lassen müssen, es sei denn, Sie möchten v1-Projekte erstellen. CDK Um ein Upgrade durchzuführen, geben Sie es ein. npm install -g aws-cdk

Aktualisierung von Version AWS CDK 2 Developer Preview

Wenn Sie die CDK v2 Developer Preview verwenden, besteht in Ihrem Projekt Abhängigkeiten von einer Release Candidate-Version von AWS CDK, z. 2.0.0-rc1 B. Aktualisieren Sie diese auf 2.0.0 und aktualisieren Sie dann die in Ihrem Projekt installierten Module.

TypeScript

npm install oder yarn install

JavaScript

npm install oder yarn install

Python
python -m pip install -r requirements.txt
Java
mvn package
C#
dotnet restore
Go
go get

Nachdem Sie Ihre Abhängigkeiten aktualisiert haben, geben Sie npm update -g aws-cdk an, das CDK Toolkit auf die Release-Version zu aktualisieren.

Migration von AWS CDK Version 1 auf Version 2 CDK

Um Ihre App auf AWS CDK Version 2 zu migrieren, aktualisieren Sie zunächst die Feature-Flags incdk.json. Aktualisieren Sie dann die Abhängigkeiten und Importe Ihrer App nach Bedarf für die Programmiersprache, in der sie geschrieben wurde.

Aktualisierung auf eine aktuelle Version 1

Wir sehen, dass eine Reihe von Kunden in einem Schritt von einer alten Version von AWS CDK v1 auf die neueste Version von v2 umsteigen. Das ist sicherlich möglich, aber Sie würden sowohl ein Upgrade über mehrere Jahre an Änderungen durchführen (die leider nicht alle denselben Umfang an Evolutionstests hatten wie heute) als auch ein Upgrade auf mehrere Versionen mit neuen Standardeinstellungen und einer anderen Codeorganisation durchführen würden.

Für das sicherste Upgrade-Erlebnis und um die Ursachen unerwarteter Änderungen einfacher zu diagnostizieren, empfehlen wir, diese beiden Schritte voneinander zu trennen: zuerst auf die neueste Version v1 aktualisieren und anschließend auf v2 umsteigen.

Feature-Flags aktualisieren

Entfernen Sie die folgenden v1-Feature-Flags, cdk.json falls sie existieren, da diese in AWS CDK Version 2 standardmäßig alle aktiv sind. Wenn ihr alter Effekt für Ihre Infrastruktur wichtig ist, müssen Sie Änderungen am Quellcode vornehmen. Weitere Informationen finden Sie in der Liste der Flaggen auf GitHub.

  • @aws-cdk/core:enableStackNameDuplicates

  • aws-cdk:enableDiffNoFail

  • @aws-cdk/aws-ecr-assets:dockerIgnoreSupport

  • @aws-cdk/aws-secretsmanager:parseOwnedSecretName

  • @aws-cdk/aws-kms:defaultKeyPolicies

  • @aws-cdk/aws-s3:grantWriteWithoutAcl

  • @aws-cdk/aws-efs:defaultEncryptionAtRest

Eine Handvoll v1-Feature-Flags können aktiviert werden, um zu bestimmten AWS CDK v1-Verhaltensweisen zurückzukehren. Eine vollständige Referenz finden Sie unter Zum Verhalten von Version 1 zurückkehren oder false in der Liste unter. GitHub

Verwenden Sie für beide Arten von Flags den cdk diff Befehl, um die Änderungen an Ihrer synthetisierten Vorlage zu überprüfen und festzustellen, ob sich die Änderungen an einem dieser Flags auf Ihre Infrastruktur auswirken.

CDKToolkit-Kompatibilität

CDKVersion 2 erfordert Version 2 oder höher des CDK Toolkits. Diese Version ist abwärtskompatibel mit v1-Apps. CDK Daher können Sie eine einzige global installierte Version von CDK Toolkit für all Ihre AWS CDK Projekte verwenden, unabhängig davon, ob sie v1 oder v2 verwenden. Eine Ausnahme ist, dass CDK Toolkit v2 nur v2-Projekte erstelltCDK.

Wenn Sie sowohl v1- als auch CDK v2-Projekte erstellen müssen, installieren Sie CDK Toolkit v2 nicht global. (Entfernen Sie es, falls Sie es bereits installiert haben:npm remove -g aws-cdk.) Um das CDK Toolkit aufzurufen, verwenden Sie, npx um Version 1 oder V2 des CDK Toolkits wie gewünscht auszuführen.

npx aws-cdk@1.x init app --language typescript npx aws-cdk@2.x init app --language typescript
Tipp

Richten Sie Befehlszeilen-Aliase ein, damit Sie mit den cdk1 Befehlen cdk und die gewünschte Version des Toolkits aufrufen können. CDK

macOS/Linux
alias cdk1="npx aws-cdk@1.x" alias cdk="npx aws-cdk@2.x"
Windows
doskey cdk1=npx aws-cdk@1.x $* doskey cdk=npx aws-cdk@2.x $*

Abhängigkeiten und Importe aktualisieren

Aktualisieren Sie die Abhängigkeiten Ihrer App und installieren Sie dann die neuen Pakete. Aktualisieren Sie abschließend die Importe in Ihrem Code.

TypeScript
Anwendungen

Aktualisieren Sie CDK Apps package.json wie folgt. Entfernen Sie Abhängigkeiten von einzelnen stabilen Modulen im v1-Stil und richten Sie die niedrigste Version ein, die aws-cdk-lib Sie für Ihre Anwendung benötigen (2.0.0 hier).

Experimentelle Konstrukte werden in separaten, unabhängig versionierten Paketen bereitgestellt, deren Namen auf alpha und einer Alpha-Versionsnummer enden. Die Alpha-Versionsnummer entspricht der ersten Version, aws-cdk-lib mit der sie kompatibel sind. Hier haben wir an v2.0.0-alpha.1 aws-codestar gepinnt.

{ "dependencies": { "aws-cdk-lib": "^2.0.0", "@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1", "constructs": "^10.0.0" } }
Konstruieren Sie Bibliotheken

Stellen Sie für Construct-Bibliotheken die niedrigste Version fest, die aws-cdk-lib Sie für Ihre Anwendung benötigen (2.0.0 hier), und aktualisieren Sie package.json sie wie folgt.

Beachten Sie, dass dies sowohl als Peer-Abhängigkeit als auch als Dev-Abhängigkeit aws-cdk-lib erscheint.

{ "peerDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0" }, "devDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0", "typescript": "~3.9.0" } }
Anmerkung

Sie sollten bei der Veröffentlichung einer v2-kompatiblen Bibliothek eine größere Versionserhöhung an der Versionsnummer Ihrer Bibliothek vornehmen, da dies eine bahnbrechende Änderung für Bibliotheksnutzer ist. Es ist nicht möglich, sowohl CDK Version 1 als auch Version 2 mit einer einzigen Bibliothek zu unterstützen. Um Kunden, die immer noch Version 1 verwenden, weiterhin zu unterstützen, könnten Sie die frühere Version parallel verwalten oder ein neues Paket für Version 2 erstellen.

Es liegt an Ihnen, wie lange Sie Kunden der Version 1 weiterhin AWS CDK unterstützen möchten. Sie könnten sich am Lebenszyklus von CDK Version 1 selbst orientieren, der am 1. Juni 2022 in die Wartung aufgenommen wurde und end-of-life am 1. Juni 2023 enden wird. Vollständige Informationen finden Sie unter AWS CDK Wartungsrichtlinie.

Sowohl Bibliotheken als auch Apps

Installieren Sie die neuen Abhängigkeiten, indem Sie npm install oder ausführenyarn install.

Ändern Sie Ihre Importe so, dass sie Construct aus dem neuen constructs Modul, Kerntypen wie App und Stack aus der obersten Ebene von und stabilen Construct-Library-Modulen für die Diensteaws-cdk-lib, die Sie aus den Namespaces unter verwenden, importieren. aws-cdk-lib

import { Construct } from 'constructs'; import { App, Stack } from 'aws-cdk-lib'; // core constructs import { aws_s3 as s3 } from 'aws-cdk-lib'; // stable module import * as codestar from '@aws-cdk/aws-codestar-alpha'; // experimental module
JavaScript

Aktualisieren Sie package.json wie folgt. Entfernen Sie Abhängigkeiten von einzelnen stabilen Modulen im v1-Stil und richten Sie die niedrigste Version ein, die aws-cdk-lib Sie für Ihre Anwendung benötigen (2.0.0 hier).

Experimentelle Konstrukte werden in separaten, unabhängig versionierten Paketen bereitgestellt, deren Namen auf alpha und einer Alpha-Versionsnummer enden. Die Alpha-Versionsnummer entspricht der ersten Version, aws-cdk-lib mit der sie kompatibel sind. Hier haben wir an v2.0.0-alpha.1 aws-codestar gepinnt.

{ "dependencies": { "aws-cdk-lib": "^2.0.0", "@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1", "constructs": "^10.0.0" } }

Installieren Sie die neuen Abhängigkeiten, indem Sie oder ausführen. npm install yarn install

Ändern Sie die Importe Ihrer App wie folgt:

  • ConstructAus dem neuen constructs Modul importieren

  • Importieren Sie Kerntypen wie App und Stack von der obersten Ebene von aws-cdk-lib

  • Importieren Sie AWS Construct Library-Module aus Namespaces unter aws-cdk-lib

const { Construct } = require('constructs'); const { App, Stack } = require('aws-cdk-lib'); // core constructs const s3 = require('aws-cdk-lib').aws_s3; // stable module const codestar = require('@aws-cdk/aws-codestar-alpha'); // experimental module
Python

Aktualisieren Sie requirements.txt die install_requires Definition wie folgt. setup.py Entfernen Sie Abhängigkeiten von einzelnen stabilen Modulen im v1-Stil.

Experimentelle Konstrukte werden in separaten, unabhängig versionierten Paketen bereitgestellt, deren Namen auf alpha und einer Alpha-Versionsnummer enden. Die Alpha-Versionsnummer entspricht der ersten Version, aws-cdk-lib mit der sie kompatibel sind. Hier haben wir an v2.0.0alpha1 aws-codestar gepinnt.

install_requires=[ "aws-cdk-lib>=2.0.0", "constructs>=10.0.0", "aws-cdk.aws-codestar-alpha>=2.0.0alpha1", # ... ],
Tipp

Deinstallieren Sie alle anderen Versionen von AWS CDK Modulen, die bereits in der virtuellen Umgebung Ihrer App installiert sind, mit. pip uninstall Installieren Sie dann die neuen Abhängigkeiten mitpython -m pip install -r requirements.txt.

Ändern Sie die Importe Ihrer App wie folgt:

  • ConstructAus dem neuen constructs Modul importieren

  • Importieren Sie Kerntypen wie App und Stack von der obersten Ebene von aws_cdk

  • Importieren Sie AWS Construct Library-Module aus Namespaces unter aws_cdk

from constructs import Construct from aws_cdk import App, Stack # core constructs from aws_cdk import aws_s3 as s3 # stable module import aws_cdk.aws_codestar_alpha as codestar # experimental module # ... class MyConstruct(Construct): # ... class MyStack(Stack): # ... s3.Bucket(...)
Java

Entfernen Sie unter alle software.amazon.awscdk Abhängigkeiten für stabile Module und ersetzen Sie sie durch Abhängigkeiten von software.constructs (fürConstruct) und. pom.xml software.amazon.awscdk

Experimentelle Konstrukte werden in separaten, unabhängig versionierten Paketen bereitgestellt, deren Namen auf alpha und einer Alpha-Versionsnummer enden. Die Alpha-Versionsnummer entspricht der ersten Version, aws-cdk-lib mit der sie kompatibel sind. Hier haben wir an v2.0.0-alpha.1 aws-codestar gepinnt.

<dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>aws-cdk-lib</artifactId> <version>2.0.0</version> </dependency><dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>code-star-alpha</artifactId> <version>2.0.0-alpha.1</version> </dependency> <dependency> <groupId>software.constructs</groupId> <artifactId>constructs</artifactId> <version>10.0.0</version> </dependency>

Installieren Sie die neuen Abhängigkeiten, indem Sie Folgendes ausführen. mvn package

Ändern Sie Ihren Code wie folgt:

  • ConstructAus der neuen software.constructs Bibliothek importieren

  • Importiert Kernklassen wie Stack App und aus software.amazon.awscdk

  • Importieren Sie Dienstkonstrukte von software.amazon.awscdk.services

import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; import software.amazon.awscdk.App; import software.amazon.awscdk.services.s3.Bucket; import software.amazon.awscdk.services.codestar.alpha.GitHubRepository;
C#

Die einfachste Methode, die Abhängigkeiten einer CDK C#-Anwendung zu aktualisieren, besteht darin, die .csproj Datei manuell zu bearbeiten. Entfernen Sie alle stabilen Amazon.CDK.* Paketverweise und ersetzen Sie sie durch Verweise auf die Constructs Pakete Amazon.CDK.Lib und.

Experimentelle Konstrukte werden in separaten, unabhängig versionierten Paketen bereitgestellt, deren Namen auf alpha und einer Alpha-Versionsnummer enden. Die Alpha-Versionsnummer entspricht der ersten Version, aws-cdk-lib mit der sie kompatibel sind. Hier haben wir an v2.0.0-alpha.1 aws-codestar gepinnt.

<PackageReference Include="Amazon.CDK.Lib" Version="2.0.0" /> <PackageReference Include="Amazon.CDK.AWS.Codestar.Alpha" Version="2.0.0-alpha.1" /> <PackageReference Include="Constructs" Version="10.0.0" />

Installieren Sie die neuen Abhängigkeiten, indem Sie Folgendes ausführen. dotnet restore

Ändern Sie die Importe in Ihren Quelldateien wie folgt.

using Constructs; // for Construct class using Amazon.CDK; // for core classes like App and Stack using Amazon.CDK.AWS.S3; // for stable constructs like Bucket using Amazon.CDK.Codestar.Alpha; // for experimental constructs
Go

Problemgo get, um Ihre Abhängigkeiten auf die neueste Version zu aktualisieren und die .mod Datei Ihres Projekts zu aktualisieren.

Testen Sie Ihre migrierte App vor der Bereitstellung

Verwenden Sie diese Option, um vor der Bereitstellung Ihrer Stacks cdk diff nach unerwarteten Änderungen an den Ressourcen zu suchen. Logische Änderungen IDs (die zum Austausch von Ressourcen führen) sind nicht zu erwarten.

Zu den erwarteten Änderungen gehören unter anderem:

  • Änderungen an der CDKMetadata Ressource.

  • Asset-Hashes wurden aktualisiert.

  • Änderungen im Zusammenhang mit der Stack-Synthese im neuen Stil. Gilt, wenn Ihre App den alten Stack-Synthesizer in Version 1 verwendet hat. (CDKv2 unterstützt den Legacy-Stack-Synthesizer nicht.)

  • Das Hinzufügen einer CheckBootstrapVersion Regel.

Unerwartete Änderungen werden normalerweise nicht durch das Upgrade auf AWS CDK Version 2 an sich verursacht. In der Regel sind sie das Ergebnis eines veralteten Verhaltens, das zuvor durch Feature-Flags geändert wurde. Dies ist ein Symptom für ein Upgrade von einer Version vor etwa CDK 1.85.x. Bei einem Upgrade auf die neueste Version v1.x würden Sie dieselben Änderungen feststellen. In der Regel können Sie dieses Problem wie folgt lösen:

  1. Aktualisieren Sie Ihre App auf die neueste Version v1.x

  2. Entfernen Sie Feature-Flags

  3. Überarbeiten Sie Ihren Code nach Bedarf

  4. Bereitstellen

  5. Führen Sie ein Upgrade auf v2 durch

Anmerkung

Wenn Ihre aktualisierte App nach dem zweistufigen Upgrade nicht bereitgestellt werden kann, melden Sie das Problem.

Wenn Sie bereit sind, die Stacks in Ihrer App bereitzustellen, sollten Sie erwägen, zunächst eine Kopie bereitzustellen, damit Sie sie testen können. Der einfachste Weg, dies zu tun, besteht darin, es in einer anderen Region bereitzustellen. Sie können jedoch auch die IDs Anzahl Ihrer Stacks ändern. Stellen Sie nach dem Testen sicher, dass Sie die Testkopie mit cdk destroy vernichten.

Fehlerbehebung

TypeScript 'from' expectedoder ';' expected Fehler bei Importen

Führen Sie ein Upgrade auf TypeScript 3.8 oder höher durch.

Führen Sie 'cdk bootstrap' aus

Wenn Sie einen Fehler wie den folgenden sehen:

❌  MyStack failed: Error: MyStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)
    at CloudFormationDeployments.validateBootstrapStackVersion (.../aws-cdk/lib/api/cloudformation-deployments.ts:323:13)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
MyStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)

AWS CDK v2 erfordert einen aktualisierten Bootstrap-Stack, und außerdem benötigen alle v2-Bereitstellungen Bootstrap-Ressourcen. (Mit Version 1 könnten Sie einfache Stacks ohne Bootstrapping bereitstellen.) Vollständige Details finden Sie unter AWS CDK Bootstrapping.

V1-Stacks finden

Wenn Sie Ihre CDK Anwendung von Version 1 auf Version 2 migrieren, möchten Sie möglicherweise die bereitgestellten AWS CloudFormation Stacks identifizieren, die mit Version 1 erstellt wurden. Führen Sie dazu den folgenden Befehl aus:

npx awscdk-v1-stack-finder

Einzelheiten zur Verwendung finden Sie im awscdk-v1-stack-finder README.