Dies ist das AWS CDK v2 Developer Guide. Für das ältere CDK v1 wurde am 1. Juni 2022 die Wartung abgeschlossen und der Support endete am 1. Juni 2023.
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 Deploy
Stellen Sie einen oder mehrere AWS CDK-Stacks in Ihrer Umgebung bereit. AWS
Während der Bereitstellung gibt die CDK-CLI Fortschrittsindikatoren aus, ähnlich denen, die von der Konsole aus beobachtet werden können. AWS CloudFormation
Wenn die AWS Umgebung nicht mit einem Bootstrapping ausgestattet ist, werden nur Stacks ohne Ressourcen und mit synthetisierten Vorlagen unter 51.200 Byte erfolgreich bereitgestellt.
Usage
$ cdk deploy <arguments> <options>
Argumente
- CDK-Stack-ID
-
Die Konstrukt-ID des CDK-Stacks aus Ihrer App, die bereitgestellt werden soll.
Typ: Zeichenfolge
Required: No
Optionen
Eine Liste der globalen Optionen, die mit allen CDK-CLI-Befehlen funktionieren, finden Sie unter Globale Optionen.
-
--all <BOOLEAN> -
Stellen Sie alle Stacks in Ihrer CDK-App bereit.
Standardwert:
false
-
--asset-parallelism <BOOLEAN> -
Geben Sie an, ob Assets parallel erstellt und veröffentlicht werden sollen.
-
--asset-prebuild <BOOLEAN> -
Geben Sie an, ob alle Assets erstellt werden sollen, bevor der erste Stack bereitgestellt wird. Diese Option ist nützlich für fehlgeschlagene Docker-Builds.
Standardwert:
true
-
--build-exclude, -E <ARRAY> -
Erstellen Sie das Asset nicht mit der angegebenen ID neu.
Diese Option kann mehrfach in einem einzigen Befehl angegeben werden.
Standardwert:
[]
-
--change-set-name <STRING> -
Der Name des AWS CloudFormation Änderungssatzes, der erstellt werden soll.
Diese Option ist nicht kompatibel mit
--method='direct'.
-
--concurrency <NUMBER> -
Stellen Sie mehrere Stacks parallel bereit und berücksichtigen Sie dabei die Abhängigkeiten zwischen den Stacks. Verwenden Sie diese Option, um Bereitstellungen zu beschleunigen. Sie müssen immer noch andere AWS CloudFormation Ratenbeschränkungen für AWS Konten berücksichtigen.
Geben Sie eine Zahl ein, um die maximale Anzahl gleichzeitig durchzuführender Bereitstellungen anzugeben (sofern die Abhängigkeit dies zulässt).
Standardwert:
1
-
--exclusively, -e <BOOLEAN> -
Stellen Sie nur die angeforderten Stacks bereit und schließen Sie keine Abhängigkeiten ein.
-
--express <BOOLEAN> -
Stellen Sie die Bereitstellung im CloudFormation Expressmodus bereit. Der Expressmodus ermöglicht schnellere Bereitstellungen, CloudFormation indem Stack-Operationen als abgeschlossen gemeldet werden, sobald die Ressourcenkonfiguration CloudFormation angewendet wird. Meldet jedoch Erfolge CloudFormation , ohne darauf zu warten, dass sich die Ressourcen stabilisieren. Außerdem führt der Expressmodus kein automatisches Rollback durch, sodass Stapel in einem fehlerhaften Zustand zurückbleiben, wenn etwas schief geht. Um das automatische Rollback im Expressmodus zu aktivieren, fügen Sie das
--rollbackFlag in Ihrer Bereitstellung im Expressmodus hinzu.Weitere Informationen finden Sie im AWS CloudFormation Benutzerhandbuch unter Expressmodus.
Anmerkung
Der Expressmodus wartet nicht auf eine Stabilisierung, bevor er eine Erfolgsmeldung meldet, und führt bei einem Fehler kein automatisches Rollback durch. Wir empfehlen den Expressmodus nicht für Produktionsbereitstellungen. Der Expressmodus ist auf iterative Bereitstellungen ausgerichtet, die Sie bei der Entwicklung Ihrer Anwendung durchführen würden.
Standardwert:
false
-
--force, -f <BOOLEAN> -
Wenn Sie eine Bereitstellung durchführen, um einen vorhandenen Stack zu aktualisieren, vergleicht die CDK-CLI die Vorlage und die Tags des bereitgestellten Stacks mit dem Stack, der bereitgestellt werden soll. Wenn keine Änderungen festgestellt werden, überspringt die CDK-CLI die Bereitstellung.
Verwenden Sie diese Option, um dieses Verhalten außer Kraft zu setzen und Stacks immer bereitzustellen, auch wenn keine Änderungen erkannt werden.
Standardwert:
false
-
--help, -h <BOOLEAN> -
Zeigt die Befehlsreferenzinformationen für den
cdk deployBefehl an.
-
--hotswap <BOOLEAN> -
Hotswap-Bereitstellungen für eine schnellere Entwicklung. Mit dieser Option wird versucht, wenn möglich eine schnellere Hotswap-Bereitstellung durchzuführen. Wenn Sie beispielsweise den Code einer Lambda-Funktion in Ihrer CDK-App ändern, aktualisiert die CDK-CLI die Ressource direkt über die Service-APIs, anstatt eine Bereitstellung durchzuführen. CloudFormation
Wenn die CDK-CLI Änderungen erkennt, die Hotswapping nicht unterstützen, werden diese Änderungen ignoriert und eine Meldung wird angezeigt. Wenn Sie es vorziehen, eine vollständige CloudFormation Bereitstellung als Ausweichlösung durchzuführen, verwenden Sie stattdessen.
--hotswap-fallbackDie CDK-CLI verwendet Ihre aktuellen AWS Anmeldeinformationen, um die API-Aufrufe auszuführen. Sie übernimmt nicht die Rollen aus Ihrem Bootstrap-Stack, auch wenn das
@aws-cdk/core:newStyleStackSynthesisFeature-Flag auf gesetzt ist.trueDiese Rollen verfügen nicht über die erforderlichen Berechtigungen, um AWS Ressourcen direkt zu aktualisieren, ohne sie zu verwenden CloudFormation. Stellen Sie daher sicher, dass Ihre Anmeldeinformationen für dasselbe AWS Konto der Stacks gelten, für die Sie Hotswap-Bereitstellungen durchführen, und dass diese über die erforderlichen IAM-Berechtigungen zum Aktualisieren der Ressourcen verfügen.Hotswapping wird derzeit für die folgenden Änderungen unterstützt:
-
Code-Assets (einschließlich Docker-Images und Inline-Code), Tag-Änderungen und Konfigurationsänderungen (nur Beschreibung und Umgebungsvariablen werden unterstützt) von Lambda-Funktionen.
-
Lambda-Versionen und Aliasänderungen.
-
Definitionsänderungen von AWS Step Functions-Zustandsmaschinen.
-
Änderungen der Containerressourcen der Amazon ECS-Services.
-
Änderungen der Website-Ressourcen von Amazon S3-Bucket-Bereitstellungen.
-
Änderungen an Quelle und Umgebung von AWS CodeBuild Projekten.
-
Änderungen an der VTL-Mapping-Vorlage für AWS AppSync Resolver und Funktionen.
-
Schemaänderungen für AWS AppSync GraphQL-APIs.
-
REST-API-, Bereitstellungs- und Methodenänderungen für Amazon API Gateway.
-
API- und Integrationsänderungen für Amazon API Gateway V2.
-
Konfigurationsänderungen der Amazon Bedrock-Agenten.
-
Änderungen an der Konfiguration von Amazon Bedrock Runtime AgentCore
-
Regeländerungen für Amazon EventBridge.
-
Konfigurationsänderungen von Amazon DynamoDB-Tabellen und globalen Tabellen.
-
Konfigurationsänderungen der Amazon SQS-Warteschlangen.
-
Änderungen an Alarmen, zusammengesetzten Alarmen und Dashboards für Amazon. CloudWatch
Die Verwendung bestimmter CloudFormation systeminterner Funktionen wird im Rahmen einer Hot-Swap-Bereitstellung unterstützt. Dazu zählen:
-
Ref -
Fn::GetAtt— Wird nur teilweise unterstützt, verwendet eine Kombination aus Cloud Control-APIs und benutzerdefinierten Implementierungen. Eine vollständige Liste der unterstützten Ressourcen finden Sie in der Liste der von der Cloud Control API und dieser Implementierungunterstützten Ressourcen. -
Fn::ImportValue -
Fn::Join -
Fn::Select -
Fn::Split -
Fn::Sub
Diese Option ist auch mit verschachtelten Stacks kompatibel.
Anmerkung
-
Diese Option führt bewusst zu einer Verschiebung der CloudFormation Stapel, um Bereitstellungen zu beschleunigen. Verwenden Sie sie daher nur für Entwicklungszwecke. Verwenden Sie diese Option nicht für Ihre Produktionsbereitstellungen.
-
Die Standardwerte für bestimmte Parameter können beim Hotswap-Parameter unterschiedlich sein. Beispielsweise wird der Mindestprozentsatz eines Amazon ECS-Service derzeit auf einen Wert festgelegt.
0Überprüfen Sie die Quelle entsprechend, falls dies der Fall ist. -
Wenn Sie eine CloudFormation Bereitstellung nach einer Hotswap-Bereitstellung durchführen, verwenden Sie diese Option,
cdk deploy --revert-driftum die Bereitstellung mit einem Drift-sensitiven Änderungssatz durchzuführen und alle durch Hot-Swapping verursachten Abweichungen auszugleichen.
Standardwert:
false -
-
--hotswap-fallback <BOOLEAN> -
--hotswapDiese Option ähnelt. Der Unterschied besteht darin, dass auf eine CloudFormation Bereitstellung zurückgegriffen--hotswap-fallbackwird, wenn eine Änderung erkannt wird, die dies erfordert.Weitere Informationen zu dieser Option finden Sie unter
--hotswap.Standardwert:
false
-
--ignore-no-stacks <BOOLEAN> -
Führen Sie eine Bereitstellung durch, auch wenn Ihre CDK-App keine Stacks enthält.
Diese Option ist im folgenden Szenario hilfreich: Möglicherweise haben Sie eine App mit mehreren Umgebungen wie
devund.prodWenn Sie mit der Entwicklung beginnen, verfügt Ihre Prod-App möglicherweise über keine Ressourcen, oder die Ressourcen sind möglicherweise auskommentiert. Dies führt zu einem Bereitstellungsfehler mit einer Meldung, dass die App keine Stacks hat. Verwenden Sie--ignore-no-stacks, um diesen Fehler zu umgehen.Standardwert:
false
-
--import-existing-resources <BOOLEAN> -
Importieren Sie vorhandene, nicht verwaltete AWS CloudFormation Ressourcen aus Ihrem AWS Konto.
Wenn Sie diese Option verwenden, werden Ressourcen aus Ihrer synthetisierten AWS CloudFormation Vorlage mit demselben benutzerdefinierten Namen wie bestehende, nicht verwaltete Ressourcen im selben Konto in Ihren Stack importiert.
Sie können diese Option verwenden, um vorhandene Ressourcen in neue oder bestehende Stapel zu importieren.
Mit demselben
cdk deployBefehl können Sie vorhandene Ressourcen importieren und neue Ressourcen bereitstellen.Weitere Informationen zu benutzerdefinierten Namen finden Sie im AWS CloudFormation Benutzerhandbuch unter Namenstyp.
Weitere Informationen zu dem
ImportExistingResourcesCloudFormation Parameter finden Sie unter AWS CloudFormation Vereinfacht den Ressourcenimport mit einem neuen Parameter für ChangeSets. Weitere Informationen zur Verwendung dieser Option finden Sie unter Importieren vorhandener Ressourcen
im GitHub aws-cdk-cli-Repository.
-
--logs <BOOLEAN> -
Zeigt das CloudWatch Amazon-Protokoll in der Standardausgabe (
stdout) für alle Ereignisse aus allen Ressourcen in den ausgewählten Stacks an.Diese Option ist nur kompatibel mit
--watch.Standardwert:
true
-
--method, -m <STRING> -
Konfigurieren Sie die Methode zur Durchführung einer Bereitstellung.
-
change-set— Standardmethode. Die CDK-CLI erstellt einen CloudFormation Änderungssatz mit den Änderungen, die bereitgestellt werden, und führt dann die Bereitstellung durch. -
direct— Erstellen Sie keinen Änderungssatz. Wenden Sie die Änderung stattdessen sofort an. Dies ist in der Regel schneller als das Erstellen eines Änderungssatzes, aber Sie verlieren die Details zum Bereitstellungsfortschritt in der CLI-Ausgabe. -
prepare-change-set— Erstellen Sie einen Änderungssatz, führen Sie jedoch keine Bereitstellung durch. Dies ist nützlich, wenn Sie über externe Tools verfügen, die den Änderungssatz überprüfen, oder wenn Sie über einen Genehmigungsprozess für Änderungssätze verfügen. Wird verwendetexecute-change-set, um den vorbereiteten Änderungssatz auszuführen. -
execute-change-set— Führt einen Änderungssatz aus, der zuvor mit erstellt wurdeprepare-change-set. Der Name des Änderungssatzes lautet standardmäßigcdk-deploy-change-set, oder Sie können einen benutzerdefinierten Namen mit--change-set-nameangeben.
Zulässige Werte:
change-set,direct,execute-change-set,prepare-change-setStandardwert:
change-set -
-
--notification-arns <ARRAY> -
Die ARNs der Amazon SNS-Themen, die bei Stack-bezogenen Ereignissen benachrichtigt CloudFormation werden.
-
--outputs-file, -O <STRING> -
Der Pfad, in den die Stack-Ausgaben von Bereitstellungen geschrieben werden.
Nach der Bereitstellung werden die Stack-Ausgaben im JSON-Format in die angegebene Ausgabedatei geschrieben.
Sie können diese Option in der
cdk.jsonProjektdatei oder~/.cdk.jsonauf Ihrem lokalen Entwicklungscomputer konfigurieren:{ "app": "npx ts-node bin/myproject.ts", // ... "outputsFile": "outputs.json" }Wenn mehrere Stapel bereitgestellt werden, werden die Ausgaben in dieselbe Ausgabedatei geschrieben, die nach Schlüsseln organisiert ist, die den Stacknamen repräsentieren.
-
--parameters <ARRAY> -
Übergeben Sie CloudFormation während der Bereitstellung zusätzliche Parameter an.
Diese Option akzeptiert ein Array im folgenden Format:
STACK:KEY=VALUE.-
STACK— Der Name des Stacks, dem der Parameter zugeordnet werden soll. -
KEY— Der Name des Parameters aus Ihrem Stack. -
VALUE— Der Wert, der bei der Bereitstellung übergeben werden soll.
Wenn kein Stack-Name angegeben wird oder wenn
*er als Stack-Name angegeben wird, werden Parameter auf alle Stacks angewendet, die bereitgestellt werden. Wenn ein Stack den Parameter nicht verwendet, schlägt die Bereitstellung fehl.Parameter werden nicht auf verschachtelte Stapel übertragen. Verwenden Sie das Konstrukt, um Parameter an verschachtelte Stapel zu übergeben.
NestedStackStandardwert:
{} -
-
--previous-parameters <BOOLEAN> -
Verwenden Sie frühere Werte für vorhandene Parameter.
Wenn diese Option auf festgelegt ist
false, müssen Sie bei jeder Bereitstellung alle Parameter angeben.Standardwert:
true
-
--progress <STRING> -
Konfigurieren Sie, wie die CDK-CLI den Bereitstellungsfortschritt anzeigt.
-
bar— Zeigt Stack-Bereitstellungsereignisse als Fortschrittsbalken mit den Ereignissen für die Ressource an, die gerade bereitgestellt wird. -
events— Stellen Sie einen vollständigen Verlauf bereit, einschließlich aller CloudFormation Ereignisse.
Sie können diese Option auch in der
cdk.jsonProjektdatei oder~/.cdk.jsonauf Ihrem lokalen Entwicklungscomputer konfigurieren:{ "progress": "events" }Zulässige Werte:
bar,eventsStandardwert:
bar -
-
--require-approval <STRING> -
Geben Sie an, für welche Änderungen eine manuelle Genehmigung erforderlich ist.
-
any-change— Für jede Änderung am Stack ist eine manuelle Genehmigung erforderlich. -
broadening— Manuelle Genehmigung erforderlich, wenn Änderungen eine Erweiterung der Berechtigungen oder Sicherheitsgruppenregeln beinhalten. -
never— Eine Genehmigung ist nicht erforderlich.
Gültige Werte:
any-change,broadening,neverStandardwert:
broadening -
-
--revert-drift -
Verwenden Sie für die Bereitstellung einen Drift-sensitiven Änderungssatz. Dadurch wird ein Änderungssatz mit dem
REVERT_DRIFTBereitstellungsmodus erstellt, CloudFormation der Ressourcen erkennt, die aufgrund von Out-of-Band-Änderungen von ihren Vorlagendefinitionen abgewichen sind, und sie in den gewünschten Zustand zurückversetzt, der in Ihrer Vorlage definiert ist.Standardwert:
false
-
--rollback|--no-rollback,-R -
Wenn während der Bereitstellung eine Ressource nicht erstellt oder aktualisiert werden kann, wird die Bereitstellung auf den neuesten stabilen Zustand zurückgesetzt, bevor die CDK-CLI zurückkehrt. Alle bis zu diesem Zeitpunkt vorgenommenen Änderungen werden rückgängig gemacht. Ressourcen, die erstellt wurden, werden gelöscht und vorgenommene Aktualisierungen werden rückgängig gemacht.
Geben Sie
--no-rollbackan, dass dieses Verhalten deaktiviert werden soll. Wenn eine Ressource nicht erstellt oder aktualisiert werden kann, behält die CDK-CLI die bis zu diesem Zeitpunkt vorgenommenen Änderungen bei und kehrt zurück. Dadurch befindet sich Ihre Bereitstellung in einem fehlgeschlagenen, angehaltenen Zustand. Von hier aus können Sie Ihren Code aktualisieren und die Bereitstellung erneut versuchen. Dies kann in Entwicklungsumgebungen hilfreich sein, in denen Sie schnell iterieren.Wenn eine mit durchgeführte Bereitstellung
--no-rollbackfehlschlägt und Sie beschließen, die Bereitstellung rückgängig zu machen, können Sie dencdk rollbackBefehl verwenden. Weitere Informationen finden Sie unter cdk rollback.Anmerkung
Mit schlagen Bereitstellungen
--no-rollback, bei denen Ressourcen ausgetauscht werden, immer fehl. Sie können diesen Optionswert nur für Bereitstellungen verwenden, bei denen Ressourcen aktualisiert oder neue Ressourcen erstellt werden.Standardwert:
--rollback
-
--toolkit-stack-name <STRING> -
Der Name des vorhandenen CDK Toolkit-Stacks.
cdk bootstrapStellt standardmäßig einen Stack bereit, derCDKToolkitin der angegebenen Umgebung benannt ist. AWS Verwenden Sie diese Option, um einen anderen Namen für Ihren Bootstrap-Stack anzugeben.Die CDK-CLI verwendet diesen Wert, um Ihre Bootstrap-Stack-Version zu überprüfen.
-
--watch <BOOLEAN> -
Überwachen Sie kontinuierlich die CDK-Projektdateien und stellen Sie die angegebenen Stacks automatisch bereit, wenn Änderungen erkannt werden.
Diese Option impliziert
--hotswapstandardmäßig.Diese Option hat einen entsprechenden CDK-CLI-Befehl. Weitere Informationen finden Sie unter cdk watch.
Beispiele
Stellen Sie den Stack mit dem Namen bereit MyStackName
$ cdk deploy MyStackName --app='node bin/main.js'
Stellen Sie mehrere Stacks in einer App bereit
Verwenden Siecdk list, um Ihre Stacks aufzulisten:
$ cdk list CdkHelloWorldStack CdkStack2 CdkStack3
Verwenden Sie die folgende Option, um alle Stacks bereitzustellen: --all
$ cdk deploy --all
Um auszuwählen, welche Stacks bereitgestellt werden sollen, geben Sie Stacknamen als Argumente an:
$ cdk deploy CdkHelloWorldStack CdkStack3
Pipeline-Stacks bereitstellen
Wird verwendetcdk list, um Stacknamen als Pfade anzuzeigen und zu zeigen, wo sie sich in der Pipeline-Hierarchie befinden:
$ cdk list PipelineStack PiplelineStack/Prod PipelineStack/Prod/MyService
Verwenden Sie die --all Option oder den Platzhalter*, um alle Stapel bereitzustellen. Wenn Sie wie oben beschrieben eine Hierarchie von Stapeln haben --all und * nur Stapel auf der obersten Ebene abgleichen. Um alle Stapel in der Hierarchie abzugleichen, verwenden Sie. **
Sie können diese Muster kombinieren. Im Folgenden werden alle Stapel in der Prod Phase bereitgestellt:
$ cdk deploy PipelineStack/Prod/**
Übergeben Sie Parameter bei der Bereitstellung
Definieren Sie Parameter in Ihrem CDK-Stack. Im Folgenden finden Sie ein Beispiel, das einen Parameter erstellt, der TopicNameParam nach einem Amazon SNS-Thema benannt ist:
new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });
Führen Sie den folgenden Befehl ausparameterized, um den Parameterwert von anzugeben:
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"
Sie können Parameterwerte überschreiben, indem Sie die --force Option verwenden. Das Folgende ist ein Beispiel für das Überschreiben des Themennamens aus einer früheren Bereitstellung:
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force
Schreiben Sie Stack-Ausgaben nach der Bereitstellung in eine Datei
Definieren Sie Ausgaben in Ihrer CDK-Stack-Datei. Das Folgende ist ein Beispiel, das eine Ausgabe für eine Funktions-ARN erstellt:
const fn = new lambda.Function(this, "fn", { handler: "index.handler", code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`), runtime: lambda.Runtime.NODEJS_LATEST }); new cdk.CfnOutput(this, 'FunctionArn', { value: fn.functionArn, });
Stellen Sie den Stack bereit und schreiben Sie die Ausgaben inoutputs.json:
$ cdk deploy --outputs-file outputs.json
Das Folgende ist ein Beispiel für die Zeit outputs.json nach der Bereitstellung:
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" } }
In diesem Beispiel FunctionArn entspricht der Schlüssel der logischen ID der CfnOutput Instanz.
Das Folgende ist ein Beispiel für eine outputs.json Nachbereitstellung, wenn mehrere Stapel bereitgestellt werden:
{ "MyStack": { "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK" }, "AnotherStack": { "VPCId": "vpc-z0mg270fee16693f" } }
Ändern Sie die Bereitstellungsmethode
Um die Bereitstellung ohne Verwendung von Änderungssätzen zu beschleunigen, verwenden Sie--method='direct':
$ cdk deploy --method='direct'
Um einen Änderungssatz zu erstellen, aber nicht bereitzustellen, verwenden Sie--method='prepare-change-set'. Standardmäßig wird ein Änderungssatz mit cdk-deploy-change-set dem Namen erstellt. Wenn ein früherer Änderungssatz mit diesem Namen existiert, wird er überschrieben. Wenn keine Änderungen erkannt werden, wird trotzdem ein leerer Änderungssatz erstellt.
Sie können Ihrem Änderungssatz auch einen Namen geben. Im Folgenden wird ein Beispiel gezeigt:
$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'