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.
Verwenden Sie CloudFormation Parameter, um einen CloudFormation Wert zu erhalten
Verwenden Sie AWS CloudFormation Parameter innerhalb von AWS Cloud Development Kit (AWS CDK) Anwendungen, um bei der Bereitstellung benutzerdefinierte Werte in Ihre synthetisierten CloudFormation Vorlagen einzugeben.
Eine Einführung finden Sie unter Parameter und die AWS CDK.
Definieren Sie Parameter in Ihrer App CDK
Verwenden Sie die CfnParameter
Klasse, um einen Parameter zu definieren. Für die meisten Parameter sollten Sie mindestens einen Typ und eine Beschreibung angeben, obwohl beide technisch gesehen optional sind. Die Beschreibung wird angezeigt, wenn der Benutzer aufgefordert wird, den Wert des Parameters in der AWS CloudFormation Konsole einzugeben. Weitere Informationen zu den verfügbaren Typen finden Sie unter Typen.
Anmerkung
Sie können Parameter in jedem Bereich definieren. Wir empfehlen jedoch, Parameter auf Stack-Ebene zu definieren, damit sich ihre logische ID nicht ändert, wenn Sie Ihren Code umgestalten.
Verwenden Sie Parameter
Eine CfnParameter
Instanz stellt ihren Wert Ihrer CDK App über ein Token zur Verfügung. Wie alle Token wird das Token des Parameters zur Synthesezeit aufgelöst. Es wird jedoch in einen Verweis auf den in der AWS CloudFormation Vorlage definierten Parameter (der zum Zeitpunkt der Bereitstellung aufgelöst wird) und nicht auf einen konkreten Wert aufgelöst.
Sie können das Token als Instanz der Token
Klasse oder als Zeichenfolge, Zeichenkettenliste oder numerische Kodierung abrufen. Ihre Wahl hängt von der Art des Werts ab, der für die Klasse oder Methode erforderlich ist, mit der Sie den Parameter verwenden möchten.
Um beispielsweise einen Parameter in einer Bucket
Definition zu verwenden:
Stellen Sie CDK Apps bereit, die Parameter enthalten
Wenn Sie eine generierte AWS CloudFormation Vorlage über die AWS CloudFormation Konsole bereitstellen, werden Sie aufgefordert, die Werte für jeden Parameter anzugeben.
Sie können Parameterwerte auch mithilfe des CDK CLI cdk deploy
Befehl oder durch Angabe von Parameterwerten in der Stack-Datei Ihres CDK Projekts.
Geben Sie Parameterwerte an mit cdk deploy
Bei der Bereitstellung mit dem CDK CLI cdk deploy
Mit der --parameters
Option können Sie bei der Bereitstellung Parameterwerte angeben.
Das Folgende ist ein Beispiel für die cdk deploy
Befehlsstruktur:
$
cdk deploy
stack-logical-id
--parametersstack-name
:parameter-name
=parameter-value
Wenn Ihre CDK App einen einzelnen Stapel enthält, müssen Sie weder das logische Stack-ID-Argument noch den
Wert in der stack-name
--parameters
Option angeben. Das CDK CLI wird diese Werte automatisch finden und bereitstellen. Das Folgende ist ein Beispiel, das einen uploadbucket
Wert für den uploadBucketName
Parameter des einzelnen Stacks in unserer CDK App angibt:
$
cdk deploy --parameters
uploadBucketName
=uploadbucket
Stellen Sie Parameterwerte mit cdk deploy für Multi-Stack-Anwendungen bereit
Im Folgenden finden Sie eine CDK Beispielanwendung in TypeScript das enthält zwei CDK Stapel. Jeder Stack enthält eine Amazon S3 S3-Bucket-Instance und einen Parameter zum Festlegen des Amazon S3 S3-Bucket-Namens:
import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as s3 from 'aws-cdk-lib/aws-s3'; // Define the CDK app const app = new cdk.App(); // First stack export class MyFirstStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Set a default parameter name const bucketNameParam = new cdk.CfnParameter(this, 'bucketNameParam', { type: 'String', default: 'myfirststackdefaultbucketname' }); // Define an S3 bucket new s3.Bucket(this, 'MyFirstBucket', { bucketName: bucketNameParam.valueAsString }); } } // Second stack export class MySecondStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Set a default parameter name const bucketNameParam = new cdk.CfnParameter(this, 'bucketNameParam', { type: 'String', default: 'mysecondstackdefaultbucketname' }); // Define an S3 bucket new s3.Bucket(this, 'MySecondBucket', { bucketName: bucketNameParam.valueAsString }); } } // Instantiate the stacks new MyFirstStack(app, 'MyFirstStack', { stackName: 'MyFirstDeployedStack', }); new MySecondStack(app, 'MySecondStack', { stackName: 'MySecondDeployedStack', });
Für CDK Apps, die mehrere Stapel enthalten, können Sie Folgendes tun:
-
Einen Stack mit Parametern bereitstellen — Um einen einzelnen Stack aus einer Multi-Stack-Anwendung bereitzustellen, geben Sie die logische Stack-ID als Argument an.
Im Folgenden finden Sie ein Beispiel für die Bereitstellung
MySecondStack
mitmynewbucketname
als Parameterwert für:bucketNameParam
$
cdk deploy
MySecondStack
--parametersbucketNameParam
='mynewbucketname'
-
Alle Stacks bereitstellen und Parameterwerte für jeden Stack angeben — Geben Sie den
'*'
Platzhalter oder die--all
Option zur Bereitstellung aller Stacks an. Geben Sie die--parameters
Option mehrmals in einem einzigen Befehl an, um Parameterwerte für jeden Stack anzugeben. Im Folgenden wird ein Beispiel gezeigt:$
cdk deploy
'*'
--parametersMyFirstDeployedStack
:bucketNameParam
='mynewfirststackbucketname'
--parametersMySecondDeployedStack
:bucketNameParam
='mynewsecondstackbucketname'
-
Alle Stapel bereitstellen und Parameterwerte für einen einzelnen Stapel angeben — Geben Sie den
'*'
Platzhalter oder die--all
Option zum Bereitstellen aller Stapel an. Geben Sie dann in der Option den Stack an, für den der Parameter definiert werden soll.--parameters
Im Folgenden finden Sie Beispiele, die alle Stacks in einer CDK App bereitstellen und einen Parameterwert für denMySecondDeployedStack
AWS CloudFormation Stack angeben. Alle anderen Stacks werden den Standardparameterwert bereitstellen und verwenden:$
cdk deploy
'*'
--parametersMySecondDeployedStack
:bucketNameParam
='mynewbucketname'
$
cdk deploy
--all
--parametersMySecondDeployedStack
:bucketNameParam
='mynewbucketname'
Geben Sie Parameterwerte an mit cdk deploy für Anwendungen mit verschachtelten Stacks
Das CDK CLI Das Verhalten bei der Arbeit mit Anwendungen, die verschachtelte Stacks enthalten, ähnelt dem von Multi-Stack-Anwendungen. Der Hauptunterschied besteht darin, dass Sie den Platzhalter verwenden müssen, wenn Sie alle verschachtelten Stacks bereitstellen möchten. '**'
Der '*'
Platzhalter stellt alle Stacks bereit, verteilt aber keine verschachtelten Stacks. Der '**'
Platzhalter stellt alle Stapel bereit, einschließlich verschachtelter Stacks.
Das folgende Beispiel zeigt, wie verschachtelte Stacks bereitgestellt und gleichzeitig der Parameterwert für einen verschachtelten Stapel angegeben wird:
$
cdk deploy
'**'
--parametersMultiStackCdkApp/SecondStack
:bucketNameParam
='mysecondstackbucketname'
Weitere Informationen zu cdk deploy
Befehlsoptionen finden Sie unter. cdk deploy