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.
Konfigurieren Sie Umgebungen für die Verwendung mit dem AWS CDK
Sie können AWS Umgebungen auf verschiedene Arten konfigurieren, um sie mit dem zu verwenden AWS Cloud Development Kit (AWS CDK). Die beste Methode zur Verwaltung von AWS Umgebungen hängt von Ihren spezifischen Anforderungen ab.
Jeder CDK Stack in Ihrer Anwendung muss irgendwann einer Umgebung zugeordnet werden, um zu bestimmen, wo der Stack bereitgestellt wird.
Eine Einführung in AWS Umgebungen finden Sie unterUmgebungen für die AWS CDK.
Themen
Wo Sie Umgebungen angeben können
Sie können Umgebungen in Anmeldeinformationen und Konfigurationsdateien angeben oder indem Sie die env
Eigenschaft des Stack
Konstrukts aus der AWS Construct-Bibliothek verwenden.
Anmeldeinformationen und Konfigurationsdateien
Sie können das AWS Command Line Interface (AWS CLI) verwenden, um config
Dateien zu erstellencredentials
, in denen Ihre AWS Umgebungsinformationen gespeichert, organisiert und verwaltet werden. Weitere Informationen zu diesen Dateien finden Sie im AWS Command Line Interface Benutzerhandbuch unter Konfiguration und Einstellungen für Anmeldeinformationsdateien.
Die in diesen Dateien gespeicherten Werte sind nach Profilen organisiert. Wie Sie Ihre Profile und die Schlüssel-Wert-Paare in diesen Dateien benennen, hängt von Ihrer Methode zur Konfiguration des programmatischen Zugriffs ab. Weitere Informationen zu den verschiedenen Methoden finden Sie unter. Konfigurieren Sie Sicherheitsanmeldedaten für AWS CDKCLI
Im Allgemeinen AWS CDK löst der AWS-Konto Informationen aus Ihrer credentials
Datei und AWS-Region Informationen aus Ihrer config
Datei auf.
Sobald Sie Ihre credentials
config
Dateien konfiguriert haben, können Sie die Umgebung angeben, die mit dem verwendet werden soll AWS CDK CLI und durch Umgebungsvariablen.
env-Eigenschaft des Stack-Konstrukts
Sie können die Umgebung für jeden Stapel angeben, indem Sie die env
Eigenschaft des Stack
Konstrukts verwenden. Diese Eigenschaft definiert ein Konto und eine Region, die verwendet werden sollen. Sie können hartcodierte Werte an diese Eigenschaft übergeben oder Umgebungsvariablen übergeben, die von der CDK angeboten werden.
Um Umgebungsvariablen zu übergeben, verwenden Sie die AWS_DEFAULT_REGION
Umgebungsvariablen AWS_DEFAULT_ACCOUNT
und. Diese Umgebungsvariablen können Werte aus Ihren config
Dateien credentials
und übergeben. Sie können auch Logik in Ihrem CDK Code verwenden, um die Werte dieser Umgebungsvariablen zu bestimmen.
Vorrang der Umgebung mit dem AWS CDK
Wenn Sie mehrere Methoden zur Angabe von Umgebungen verwenden, gilt AWS CDK für die folgende Priorität:
-
Hartcodierte Werte, die mit der
env
Eigenschaft des Konstrukts angegeben werden.Stack
-
AWS_DEFAULT_ACCOUNT
undAWS_DEFAULT_REGION
Umgebungsvariablen, die mit derenv
Eigenschaft desStack
Konstrukts angegeben sind. -
Dem Profil zugeordnete Umgebungsinformationen aus Ihren
credentials
undconfig
Dateien, die an die übergeben wurden CDK CLI mit der--profile
Option. -
Das
default
Profil aus Ihrencredentials
undconfig
Dateien.
Wann müssen Umgebungen angegeben werden
Wenn Sie mit dem entwickelnCDK, definieren Sie zunächst CDK Stacks, die Konstrukte enthalten, die Ressourcen repräsentieren AWS . Als Nächstes synthetisieren Sie jeden CDK Stapel zu einer Vorlage. AWS CloudFormation Anschließend stellen Sie die CloudFormation Vorlage in Ihrer Umgebung bereit. Wie Sie Umgebungen angeben, bestimmt, wann Ihre Umgebungsinformationen angewendet werden, und kann sich auf CDK Verhalten und Ergebnisse auswirken.
Geben Sie Umgebungen bei der Vorlagensynthese an
Wenn Sie Umgebungsinformationen mithilfe der env
Eigenschaft des Stack
Konstrukts angeben, werden Ihre Umgebungsinformationen bei der Template-Synthese verwendet. Wird ausgeführt cdk synth
oder cdk
deploy
erzeugt eine umgebungsspezifische Vorlage CloudFormation .
Wenn Sie Umgebungsvariablen innerhalb der env
Eigenschaft verwenden, müssen Sie die --profile
Option mit verwenden CDK CLI Befehle zur Übergabe des Profils mit Ihren Umgebungsinformationen aus Ihren Anmeldeinformationen und Konfigurationsdateien. Diese Informationen werden dann bei der Vorlagensynthese verwendet, um eine umgebungsspezifische Vorlage zu erstellen.
Die in der CloudFormation Vorlage enthaltenen Umgebungsinformationen haben Vorrang vor anderen Methoden. Wenn Sie beispielsweise eine andere Umgebung angebencdk deploy --profile
, wird das Profil ignoriert.profile
Wenn Sie Umgebungsinformationen auf diese Weise bereitstellen, können Sie in Ihrer CDK App umgebungsabhängigen Code und Logik verwenden. Das bedeutet auch, dass die synthetisierte Vorlage je nach Maschine, Benutzer oder Sitzung, unter der sie synthetisiert wurde, unterschiedlich sein kann. Dieser Ansatz ist während der Entwicklung oft akzeptabel oder wünschenswert, wird jedoch nicht für den produktiven Einsatz empfohlen.
Geben Sie Umgebungen bei der Stack-Bereitstellung an
Wenn Sie keine Umgebung mithilfe der env
Eigenschaft des Stack
Konstrukts angeben, wird CDK CLI erzeugt bei der Synthese ein umweltunabhängiges Template CloudFormation . Anschließend können Sie die Umgebung angeben, in der die Bereitstellung erfolgen soll, indem Sie. cdk deploy --profile
profile
Wenn Sie bei der Bereitstellung einer umgebungsunabhängigen Vorlage kein Profil angeben, wird CDK CLI wird versuchen, bei der Bereitstellung Umgebungswerte aus Ihrem default
Profil credentials
und config
den Dateien zu verwenden.
Wenn Umgebungsinformationen bei der Bereitstellung nicht verfügbar sind, versucht AWS CloudFormation es, Umgebungsinformationen bei der Bereitstellung anhand von umgebungsbezogenen Attributen wie stack.account
stack.region
, und stack.availabilityZones
aufzulösen.
Bei umgebungsunabhängigen Stacks können Konstrukte innerhalb des Stacks keine Umgebungsinformationen verwenden, und Sie können keine Logik verwenden, die Umgebungsinformationen benötigt. Sie können beispielsweise keinen Code schreiben if (stack.region ====
'us-east-1')
oder Konstruktmethoden verwenden, für die Umgebungsinformationen erforderlich sind, wie z. Vpc.fromLookup
Um diese Funktionen verwenden zu können, müssen Sie eine Umgebung mit der env
Eigenschaft angeben.
Bei umgebungsunabhängigen Stacks verfügt jedes Konstrukt, das Availability Zones verwendet, über zwei Availability Zones, sodass der Stack in jeder Region bereitgestellt werden kann.
Wie spezifiziert man Umgebungen mit dem AWS CDK
Spezifizieren Sie hartcodierte Umgebungen für jeden Stack
Verwenden Sie die env
Eigenschaft des Stack
Konstrukts, um AWS Umgebungswerte für Ihren Stack anzugeben. Im Folgenden wird ein Beispiel gezeigt:
Wir empfehlen diesen Ansatz für Produktionsumgebungen. Indem Sie die Umgebung auf diese Weise explizit angeben, können Sie sicherstellen, dass der Stack immer in der spezifischen Umgebung bereitgestellt wird.
Geben Sie Umgebungen mithilfe von Umgebungsvariablen an
Das AWS CDK stellt zwei Umgebungsvariablen bereit, die Sie in Ihrem CDK Code verwenden können: CDK_DEFAULT_ACCOUNT
undCDK_DEFAULT_REGION
. Wenn Sie diese Umgebungsvariablen innerhalb der env
Eigenschaft Ihrer Stack-Instance verwenden, können Sie Umgebungsinformationen aus Ihren Anmeldeinformationen und Konfigurationsdateien mit dem Befehl übergeben CDK CLI --profile
Option.
Im Folgenden finden Sie ein Beispiel für die Angabe dieser Umgebungsvariablen:
Indem Sie Umgebungen mithilfe von Umgebungsvariablen angeben, können Sie denselben CDK Stack zu AWS CloudFormation Vorlagen für verschiedene Umgebungen synthetisieren lassen. Das bedeutet, dass Sie denselben CDK Stack in verschiedenen AWS Umgebungen bereitstellen können, ohne Ihren CDK Code ändern zu müssen. Sie müssen nur das Profil angeben, das bei der Ausführung verwendet werden sollcdk synth
.
Dieser Ansatz eignet sich hervorragend für Entwicklungsumgebungen, wenn derselbe Stack in verschiedenen Umgebungen bereitgestellt wird. Wir empfehlen diesen Ansatz jedoch nicht für Produktionsumgebungen, da derselbe CDK Code je nach Maschine, Benutzer oder Sitzung, unter der er synthetisiert wird, unterschiedliche Vorlagen synthetisieren kann.
Geben Sie Umgebungen anhand Ihrer Anmeldeinformationen und Konfigurationsdateien mit dem CDK CLI
Wenn Sie eine umgebungsunabhängige Vorlage bereitstellen, verwenden Sie die Option mit einem beliebigen --profile
CDK CLI Befehl zur Angabe des zu verwendenden Profils. Im Folgenden finden Sie ein Beispiel für die Bereitstellung eines CDK Stacks, der myStack
anhand des prod
Profils benannt wird, das in den config
Dateien credentials
und definiert ist:
$
cdk deploy
myStack
--profileprod
Weitere Informationen zu dieser --profile
Option sowie zu anderen CDK CLI Befehle und Optionen finden Sie unterAWS CDK CLI Befehlsreferenz.
Überlegungen bei der Konfiguration von Umgebungen mit dem AWS CDK
Dienste, die Sie mithilfe von Konstrukten in Ihren Stacks definieren, müssen die Region unterstützen, in der Sie die Bereitstellung durchführen. Eine Liste der unterstützten Dienste AWS-Services pro Region finden Sie unter AWS Dienste nach
Sie benötigen gültige AWS Identity and Access Management (IAM) Anmeldeinformationen, um Stack-Bereitstellungen mit dem AWS CDK in Ihren angegebenen Umgebungen durchführen zu können.
Beispiele
Synthetisieren Sie eine umgebungsunabhängige Vorlage aus einem CloudFormation Stapel CDK
In diesem Beispiel erstellen wir eine CloudFormation umgebungsunabhängige Vorlage aus unserem Stack. CDK Wir können diese Vorlage dann in jeder Umgebung bereitstellen.
Das Folgende ist unser CDK Beispielstapel. Dieser Stack definiert einen Amazon S3 S3-Bucket und eine CloudFormation Stack-Ausgabe für die Region des Buckets. Für dieses Beispiel env
ist nicht definiert:
Wenn wir rennencdk synth
, CDK CLI erzeugt eine CloudFormation Vorlage mit dem Pseudo-Parameter AWS::Region
als Ausgabewert für die Region des Buckets. Dieser Parameter wird bei der Bereitstellung behoben:
Outputs: BucketRegion: Value: Ref: AWS::Region
Um diesen Stack in einer Umgebung bereitzustellen, die im dev
Profil unserer Anmeldeinformationen und Konfigurationsdateien angegeben ist, führen wir Folgendes aus:
$
cdk deploy CdkAppStack --profile dev
Wenn wir kein Profil angeben, CDK CLI wird versuchen, Umgebungsinformationen aus dem default
Profil in unseren Anmeldeinformationen und Konfigurationsdateien zu verwenden.
Verwenden Sie Logik, um Umgebungsinformationen bei der Vorlagensynthese zu ermitteln
In diesem Beispiel konfigurieren wir die env
Eigenschaft unserer stack
Instanz so, dass sie einen gültigen Ausdruck verwendet. Wir geben zwei zusätzliche Umgebungsvariablen an, CDK_DEPLOY_ACCOUNT
undCDK_DEPLOY_REGION
. Diese Umgebungsvariablen können bei der Synthese Standardwerte außer Kraft setzen, sofern sie existieren:
Wenn die Umgebung unseres Stacks auf diese Weise deklariert ist, können wir dann ein kurzes Skript oder eine Batch-Datei schreiben, Variablen über Befehlszeilenargumente setzen und dann aufrufencdk deploy
. Im Folgenden wird ein Beispiel gezeigt. Alle Argumente, die über die ersten beiden hinausgehen, werden übergebencdk deploy
, um Befehlszeilenoptionen oder Argumente anzugeben:
Wir können dann zusätzliche Skripts schreiben, die das cdk-deploy-to
Skript für die Bereitstellung in bestimmten Umgebungen verwenden. Im Folgenden wird ein Beispiel gezeigt:
Im Folgenden finden Sie ein Beispiel, in dem das cdk-deploy-to
Skript für die Bereitstellung in mehreren Umgebungen verwendet wird. Wenn die erste Bereitstellung fehlschlägt, wird der Prozess gestoppt: