cdk deploy - 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.

cdk deploy

Stellen Sie einen oder mehrere AWS CDK Stacks in Ihrer AWS Umgebung bereit.

Während der Bereitstellung CDK CLI gibt Fortschrittsindikatoren aus, ähnlich denen, die von der AWS CloudFormation Konsole aus beobachtet werden können.

Wenn in der AWS Umgebung kein Bootstrapping durchgeführt wird, können nur Stacks ohne Ressourcen und mit synthetisierten Vorlagen unter 51.200 Byte erfolgreich bereitgestellt werden.

Verwendung

$ cdk deploy <arguments> <options>

Argumente

CDKStack-ID

Die Konstrukt-ID des CDK Stacks aus Ihrer App, der bereitgestellt werden soll.

Typ: Zeichenfolge

Required: No

Optionen

Für eine Liste globaler Optionen, die mit allen funktionieren CDK CLI Befehle finden Sie unterGlobale 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, wenn Sie scheitern Docker baut.

Standardwert: true

--build-exclude, -E ARRAY

Das Asset mit der angegebenen ID darf nicht neu erstellt werden.

Diese Option kann in einem einzigen Befehl mehrfach angegeben werden.

Standardwert: []

--change-set-name STRING

Der Name des zu erstellenden AWS CloudFormation Änderungssatzes.

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 AWS-Konto Ratenbegrenzungen berücksichtigen.

Geben Sie eine Zahl ein, um die maximale Anzahl gleichzeitiger Bereitstellungen anzugeben (sofern die Abhängigkeit dies zulässt).

Standardwert: 1

--exclusively, -e BOOLEAN

Stellen Sie nur angeforderte Stacks bereit und schließen Sie keine Abhängigkeiten ein.

--force, -f BOOLEAN

Wenn Sie einen vorhandenen Stack bereitstellen, um ihn zu aktualisieren, CDK CLI vergleicht die Vorlage und die Tags des bereitgestellten Stacks mit dem Stack, der gerade bereitgestellt werden soll. Wenn keine Änderungen festgestellt werden, CDK CLI überspringt die Bereitstellung.

Um dieses Verhalten zu überschreiben und Stacks immer bereitzustellen, auch wenn keine Änderungen festgestellt wurden, verwenden Sie diese Option.

Standardwert: false

--help, -h BOOLEAN

Zeigt Befehlsreferenzinformationen für den cdk deploy Befehl 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, CDK CLI aktualisiert die Ressource direkt über den Service, APIs anstatt eine CloudFormation Bereitstellung durchzuführen.

Wenn der CDK CLI erkennt Änderungen, die Hotswapping nicht unterstützen, werden diese Änderungen ignoriert und es wird eine Meldung angezeigt. Wenn Sie es vorziehen, eine vollständige CloudFormation Bereitstellung als Ausweichlösung durchzuführen, verwenden Sie stattdessen. --hotswap-fallback

Das CDK CLI verwendet Ihre aktuellen AWS Anmeldeinformationen, um die API Anrufe durchzuführen. Es übernimmt nicht die Rollen aus Ihrem Bootstrap-Stack, auch wenn das @aws-cdk/core:newStyleStackSynthesis Feature-Flag auf true gesetzt ist. Diese 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 dieselben AWS-Konto Stacks gelten, für die Sie Hotswap-Bereitstellungen durchführen, und dass sie ü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 Bilder und Inline-Code), Tag-Änderungen und Konfigurationsänderungen (nur Beschreibungs- und Umgebungsvariablen werden unterstützt) von Lambda-Funktionen.

  • Lambda-Versionen und Alias-Änderungen.

  • Definitionsänderungen von AWS Step Functions Zustandsmaschinen.

  • Änderungen der Container-Assets von Amazon ECS Services.

  • Änderungen der Website-Ressourcen von Amazon S3 S3-Bucket-Bereitstellungen.

  • Änderungen an Quelle und Umgebung von AWS CodeBuild Projekten.

  • VTLZuordnung von Vorlagenänderungen für AWS AppSync Resolver und Funktionen.

  • Schemaänderungen für AWS AppSync GraphQL APIs.

Die Verwendung bestimmter CloudFormation systemeigener Funktionen wird im Rahmen einer Hotswap-Bereitstellung unterstützt. Dazu zählen:

  • Ref

  • Fn::GetAtt— Nur teilweise unterstützt. Informationen zu den unterstützten Ressourcen und Attributen finden Sie in dieser Implementierung.

  • 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 Drift bei den CloudFormation Stacks, um Bereitstellungen zu beschleunigen. Verwenden Sie sie aus diesem Grund nur für Entwicklungszwecke. Verwenden Sie diese Option nicht für Ihre Produktionsbereitstellungen.

  • Diese Option gilt als experimentell und könnte sich in future grundlegend ändern.

  • Die Standardwerte für bestimmte Parameter können je nach Hotswap-Parameter unterschiedlich sein. Zum Beispiel wird der Mindestfehlergrad eines ECS Amazon-Dienstes derzeit auf festgelegt0. Überprüfen Sie die Quelle entsprechend, falls dies der Fall ist.

Standardwert: false

--hotswap-fallback BOOLEAN

Diese Option ist ähnlich wie--hotswap. Der Unterschied besteht darin, dass auf eine vollständige CloudFormation Bereitstellung zurückgegriffen --hotswap-fallback wird, 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, z. B. dev undprod. Zu Beginn der Entwicklung verfügt Ihre Prod-App möglicherweise über keine Ressourcen, oder die Ressourcen sind auskommentiert. Dies führt zu einem Bereitstellungsfehler mit einer Meldung, dass die App keine Stacks hat. Wird verwendet--ignore-no-stacks, um diesen Fehler zu umgehen.

Standardwert: false

--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 Fortschrittsinformationen.

  • prepare-change-set— Erstellen Sie einen Änderungssatz, führen Sie aber keine Bereitstellung durch. Dies ist nützlich, wenn Sie über externe Tools verfügen, die den Änderungssatz überprüfen, oder wenn Sie über ein Genehmigungsverfahren für Änderungssätze verfügen.

Gültige Werte:change-set,direct, prepare-change-set

Standardwert: change-set

--notification-arns ARRAY

Die ARNs SNS Amazon-Themen, die über Ereignisse im Zusammenhang mit dem Stack 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.json Projektdatei oder ~/.cdk.json auf 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 geordnet ist, die den Stacknamen darstellen.

--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 Stacks übertragen. Verwenden Sie das Konstrukt, um Parameter an verschachtelte Stacks zu übergeben. NestedStack

Standardwert: {}

--previous-parameters BOOLEAN

Verwenden Sie vorherige Werte für bestehende Parameter.

Wenn diese Option auf gesetzt istfalse, müssen Sie bei jeder Bereitstellung alle Parameter angeben.

Standardwert: true

--progress STRING

Konfigurieren Sie, wie CDK CLI zeigt den Fortschritt der Bereitstellung an.

  • bar— Zeigt Ereignisse bei der Stack-Bereitstellung als Fortschrittsbalken an, zusammen mit den Ereignissen für die Ressource, 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.json Projektdatei oder ~/.cdk.json auf Ihrem lokalen Entwicklungscomputer konfigurieren:

{ "progress": "events" }

Zulässige Werte: bar, events

Standardwert: bar

--require-approval STRING

Geben Sie an, für welche sicherheitsrelevanten Ä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, never

Standardwert: broadening

--rollback | --no-rollback, -R

Wenn während der Bereitstellung eine Ressource nicht erstellt oder aktualisiert werden kann, wird die Bereitstellung auf den letzten stabilen Status zurückgesetzt, bevor CDK CLI kehrt zurück. 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-rollback an, dass dieses Verhalten ausgeschaltet werden soll. Wenn eine Ressource nicht erstellt oder aktualisiert werden kann, CDK CLI behält 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 Bereitstellung, die mit ausgeführt wurde, --no-rollback fehlschlägt und Sie entscheiden, dass Sie die Bereitstellung rückgängig machen möchten, können Sie den cdk rollback Befehl verwenden. Weitere Informationen finden Sie unter cdk rollback.

Anmerkung

Mit schlagen Bereitstellungen--no-rollback, die zu einem Austausch von Ressourcen führen, immer fehl. Sie können diesen Optionswert nur für Bereitstellungen verwenden, bei denen neue Ressourcen aktualisiert oder erstellt werden.

Standardwert: --rollback

--toolkit-stack-name STRING

Der Name des vorhandenen CDK Toolkit-Stacks.

cdk bootstrapStellt standardmäßig einen Stack mit dem Namen CDKToolkit in der angegebenen AWS Umgebung bereit. Verwenden Sie diese Option, um einen anderen Namen für Ihren Bootstrap-Stack anzugeben.

Der CDK CLI verwendet diesen Wert, um Ihre Bootstrap-Stack-Version zu überprüfen.

--watch BOOLEAN

Überwachen Sie die CDK Projektdateien kontinuierlich und stellen Sie die angegebenen Stacks automatisch bereit, wenn Änderungen erkannt werden.

Diese Option impliziert --hotswap standardmäßig.

Diese Option hat ein Äquivalent 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 Option, um alle Stacks bereitzustellen: --all

$ cdk deploy --all

Um auszuwählen, welche Stacks bereitgestellt werden sollen, geben Sie Stack-Namen als Argumente an:

$ cdk deploy CdkHelloWorldStack CdkStack3

Pipeline-Stacks bereitstellen

Wird verwendetcdk list, um Stack-Namen 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 Stacks bereitzustellen. Wenn Sie eine Hierarchie von Stapeln haben, wie oben beschrieben, --all und * nur Stapel auf der obersten Ebene abgleichen möchten. 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 die 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 SNS Amazon-Thema benannt ist:

new sns.Topic(this, 'TopicParameter', { topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString() });

Um den Parameterwert von anzugebenparameterized, führen Sie den folgenden Befehl aus:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"

Sie können Parameterwerte überschreiben, indem Sie die --force Option verwenden. Im Folgenden finden Sie ein Beispiel für das Überschreiben des Themennamens aus einer früheren Bereitstellung:

$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force

Schreiben Sie die Stack-Ausgaben nach der Bereitstellung in eine Datei

Definieren Sie Ausgaben in Ihrer CDK Stack-Datei. Im Folgenden finden Sie ein Beispiel, das eine Ausgabe für eine Funktion erstelltARN:

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.

Im Folgenden finden Sie ein Beispiel für die Zeit outputs.json nach der Bereitstellung, wenn mehrere Stacks 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, ihn 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'