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.
AWS CDK Bootstrapping anpassen
Sie können das AWS Cloud Development Kit (AWS CDK) Bootstrapping mithilfe der AWS CDK Befehlszeilenschnittstelle (AWS CDK CLI) oder durch Ändern und Bereitstellen der AWS CloudFormation Bootstrap-Vorlage anpassen.
Eine Einführung in Bootstrapping finden Sie unter. AWS CDK Bootstrapping
Themen
Verwenden Sie den, CDK CLI um Bootstrapping anzupassen
Im Folgenden finden Sie einige Beispiele dafür, wie Sie Bootstrapping mithilfe von anpassen können. CDK CLI Eine Liste aller cdk bootstrap
Optionen finden Sie unter. cdk bootstrap
- Den Namen des Amazon S3 S3-Buckets überschreiben
-
Verwenden Sie die
--bootstrap-bucket-name
Option, um den standardmäßigen Amazon S3 S3-Bucket-Namen zu überschreiben. Dies kann erfordern, dass Sie die Vorlagensynthese ändern. Weitere Informationen finden Sie unter Passen Sie die CDK Stacksynthese an. - Ändern Sie serverseitige Verschlüsselungsschlüssel für den Amazon S3 S3-Bucket
-
Standardmäßig ist der Amazon S3 S3-Bucket im Bootstrap-Stack so konfiguriert, dass er AWS verwaltete Schlüssel für die serverseitige Verschlüsselung verwendet. Um einen vorhandenen, vom Kunden verwalteten Schlüssel zu verwenden, verwenden Sie die
--bootstrap-kms-key-id
Option und geben Sie einen Wert für den zu verwendenden Schlüssel AWS Key Management Service (AWS KMS) an. Wenn Sie mehr Kontrolle über den Verschlüsselungsschlüssel haben möchten, stellen Sie sicher,--bootstrap-customer-key
dass Sie einen vom Kunden verwalteten Schlüssel verwenden. - Ordnen Sie verwaltete Richtlinien der Bereitstellungsrolle zu, die übernommen wurde von AWS CloudFormation
-
Standardmäßig werden Stacks mithilfe der
AdministratorAccess
Richtlinie mit vollen Administratorrechten bereitgestellt. Wenn Sie Ihre eigenen verwalteten Richtlinien verwenden möchten, verwenden Sie die--cloudformation-execution-policies
Option und geben Sie die ARNs verwalteten Richtlinien an, die der Bereitstellungsrolle zugewiesen werden sollen.Um mehrere Richtlinien bereitzustellen, übergeben Sie ihnen eine einzelne Zeichenfolge, getrennt durch Kommas:
$
cdk bootstrap --cloudformation-execution-policies
"arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"
Um Bereitstellungsfehler zu vermeiden, stellen Sie sicher, dass die von Ihnen angegebenen Richtlinien für alle Bereitstellungen ausreichen, die Sie in der Umgebung durchführen, für die das Bootstrapping ausgeführt wird.
- Ändern Sie den Qualifier, der den Namen der Ressourcen in Ihrem Bootstrap-Stack hinzugefügt wird
-
Standardmäßig wird der
hnb659fds
Qualifier zur physischen ID der Ressourcen in Ihrem Bootstrap-Stack hinzugefügt. Um diesen Wert zu ändern, verwenden Sie die--qualifier
Option.Diese Änderung ist nützlich, wenn mehrere Bootstrap-Stacks in derselben Umgebung bereitgestellt werden, um Namenskonflikte zu vermeiden.
Das Ändern des Qualifizierers dient der Isolierung von Namen zwischen automatisierten Tests. CDK Wenn Sie die der CloudFormation Ausführungsrolle erteilten IAM Berechtigungen nicht sehr genau eingrenzen können, bietet die Verwendung von zwei verschiedenen Bootstrap-Stacks in einem einzigen Konto keine Vorteile für die Isolierung von Rechten. Daher ist es normalerweise nicht erforderlich, diesen Wert zu ändern.
Wenn Sie den Qualifier ändern, muss Ihre CDK App den geänderten Wert an den Stack-Synthesizer übergeben. Weitere Informationen finden Sie unter Passen Sie die CDK Stacksynthese an.
-
Verwenden Sie die
--tags
Option im Format vonKEY=VALUE
, um Ihrem Bootstrap-Stack CloudFormation Tags hinzuzufügen. - Geben Sie weitere Optionen an AWS-Konten , die in der Umgebung bereitgestellt werden können, für die das Bootstrapping ausgeführt wird
-
Verwenden Sie die
--trust
Option, um weitere bereitzustellen AWS-Konten , die in der Umgebung bereitgestellt werden dürfen, für die das Bootstrapping ausgeführt wird. Standardmäßig ist das Konto, das das Bootstrapping durchführt, immer vertrauenswürdig.Diese Option ist nützlich, wenn Sie eine Umgebung bootstrappen, in der eine Umgebung CDK Pipeline aus einer anderen Umgebung bereitgestellt werden soll.
Wenn Sie diese Option verwenden, müssen Sie auch Folgendes angeben.
--cloudformation-execution-policies
Um vertrauenswürdige Konten zu einem vorhandenen Bootstrap-Stack hinzuzufügen, müssen Sie alle Konten angeben, denen Sie vertrauen möchten, einschließlich der Konten, die Sie möglicherweise zuvor angegeben haben. Wenn Sie nur neue Konten angeben, denen Sie vertrauen können, werden die zuvor vertrauenswürdigen Konten entfernt.
Im Folgenden finden Sie ein Beispiel, bei dem zwei Konten als vertrauenswürdig eingestuft werden:
$
cdk bootstrap
⏳ Bootstrapping environment aws://123456789012/us-west-2... Trusted accounts for deployment: 234567890123, 987654321098 Trusted accounts for lookup: (none) Execution policies: arn:aws:iam::aws:policy/AdministratorAccess CDKToolkit: creating CloudFormation changeset... ✅ Environment aws://123456789012/us-west-2 bootstrapped.aws://123456789012/us-west-2
--trust234567890123
--trust987654321098
--cloudformation-execution-policiesarn:aws:iam::aws:policy/AdministratorAccess
- Geben Sie zusätzliche Informationen an AWS-Konten , die in der Umgebung, in der das Bootstrapping ausgeführt wird, nach Informationen suchen können
-
Verwenden Sie die
--trust-for-lookup
Option, um anzugeben AWS-Konten , dass sie in der Umgebung, in der das Bootstrapping ausgeführt wird, nach Kontextinformationen suchen dürfen. Diese Option ist nützlich, um Konten die Erlaubnis zu geben, Stacks zu synthetisieren, die in der Umgebung bereitgestellt werden, ohne ihnen tatsächlich die Erlaubnis zu geben, diese Stacks direkt bereitzustellen. - Aktivieren Sie den Kündigungsschutz für den Bootstrap-Stack
-
Wenn ein Bootstrap-Stack gelöscht wird, werden die AWS Ressourcen, die ursprünglich in der Umgebung bereitgestellt wurden, ebenfalls gelöscht. Nach dem Bootstrapping Ihrer Umgebung empfehlen wir, den Bootstrap-Stack der Umgebung nicht zu löschen und neu zu erstellen, es sei denn, Sie tun dies absichtlich. Versuchen Sie stattdessen, den Bootstrap-Stack auf eine neue Version zu aktualisieren, indem Sie den Befehl erneut ausführen.
cdk bootstrap
Verwenden Sie die
--termination-protection
Option, um die Einstellungen für den Kündigungsschutz für den Bootstrap-Stack zu verwalten. Durch die Aktivierung des Kündigungsschutzes verhindern Sie, dass der Bootstrap-Stack und seine Ressourcen versehentlich gelöscht werden. Dies ist besonders wichtig, wenn Sie den CDK Pipelines Bootstrap-Stack verwenden, da es keine allgemeine Wiederherstellungsoption gibt, falls Sie den Bootstrap-Stack versehentlich löschen.Nachdem Sie den Kündigungsschutz aktiviert haben, können Sie die AWS CLI AWS CloudFormation OR-Konsole zur Überprüfung verwenden.
Um den Kündigungsschutz zu aktivieren
-
Führen Sie den folgenden Befehl aus, um den Kündigungsschutz für einen neuen oder vorhandenen Bootstrap-Stack zu aktivieren:
$
cdk bootstrap --termination-protection
-
Verwenden Sie die CloudFormation Konsole AWS CLI oder, um dies zu überprüfen. Im Folgenden finden Sie ein Beispiel unter Verwendung der AWS CLI. Wenn Sie Ihren Bootstrap-Stack-Namen geändert haben,
CDKToolkit
ersetzen Sie ihn durch Ihren Stack-Namen:$
aws cloudformation describe-stacks --stack-name
" trueCDKToolkit
--query "Stacks[0].EnableTerminationProtection
-
Ändern Sie die Standard-Bootstrap-Vorlage
Wenn Sie mehr Anpassungen benötigen, als sie bieten CDK CLI können, können Sie die Bootstrap-Vorlage nach Bedarf ändern. Stellen Sie dann die Vorlage bereit, um Ihre Umgebung zu booten.
Um die Standard-Bootstrap-Vorlage zu ändern und bereitzustellen
-
Rufen Sie die Standard-Bootstrap-Vorlage mithilfe der
--show-template
Option ab. Standardmäßig CDK CLI wird die Vorlage in Ihrem Terminalfenster ausgegeben. Sie können den CDK CLI Befehl ändern, um die Vorlage auf Ihrem lokalen Computer zu speichern. Im Folgenden wird ein Beispiel gezeigt:$
cdk bootstrap --show-template
> my-bootstrap-template.yaml
-
Ändern Sie die Bootstrap-Vorlage nach Bedarf. Alle Änderungen, die Sie vornehmen, sollten dem Bootstrapping-Vorlagenvertrag entsprechen. Weitere Informationen zum Bootstrapping-Vorlagenvertrag finden Sie unter. Folgen Sie dem Bootstrap-Vertrag
Um sicherzustellen, dass Ihre Anpassungen später nicht versehentlich von einem Benutzer überschrieben werden, der die Standardvorlage
cdk bootstrap
verwendet, ändern Sie den Standardwert des Vorlagenparameters.BootstrapVariant
Das erlaubt nur CDK CLI das Überschreiben des Bootstrap-Stacks mit Vorlagen, die dieselbeBootstrapVariant
und eine gleiche oder eine höhere Version als die aktuell bereitgestellte Vorlage haben. -
Stellen Sie Ihre geänderte Vorlage mit Ihrer bevorzugten AWS CloudFormation Bereitstellungsmethode bereit. Im Folgenden finden Sie ein Beispiel, das Folgendes verwendet CDKCLI:
$
cdk bootstrap --template
my-bootstrap-template.yaml
Folgen Sie dem Bootstrap-Vertrag
Damit Ihre CDK Apps ordnungsgemäß bereitgestellt werden können, müssen die während der Synthese erstellten CloudFormation Vorlagen die beim Bootstrapping erstellten Ressourcen korrekt spezifizieren. Diese Ressourcen werden allgemein als Bootstrap-Ressourcen bezeichnet. Bootstrapping erstellt Ressourcen in Ihrer AWS Umgebung, die von der zur Durchführung von Bereitstellungen und AWS CDK zur Verwaltung von Anwendungsressourcen verwendet werden. Synthesis erstellt CloudFormation Vorlagen aus jedem CDK Stapel in Ihrer Anwendung. Diese Vorlagen definieren nicht nur die AWS Ressourcen, die über Ihre Anwendung bereitgestellt werden. Sie spezifizieren auch die Bootstrap-Ressourcen, die während der Bereitstellung verwendet werden sollen.
Während der Synthese weiß der CDK CLI nicht genau, wie Ihre AWS Umgebung gebootet wurde. Stattdessen CDK CLI erstellt der CloudFormation Vorlagen, die auf dem von Ihnen konfigurierten Synthesizer basieren. Wenn Sie das Bootstrapping anpassen, müssen Sie daher möglicherweise die Synthese anpassen. Anweisungen zum Anpassen der Synthese finden Sie unter. Passen Sie die CDK Stacksynthese an Damit soll sichergestellt werden, dass Ihre synthetisierten CloudFormation Vorlagen mit Ihrer Bootstrap-Umgebung kompatibel sind. Diese Kompatibilität wird als Bootstrap-Vertrag bezeichnet.
Die einfachste Methode zur Anpassung der Stack-Synthese besteht darin, die DefaultStackSynthesizer
Klasse in Ihrer Stack
Instanz zu ändern. Wenn Sie Anpassungen benötigen, die über das hinausgehen, was diese Klasse bieten kann, können Sie Ihren eigenen Synthesizer als eine Klasse schreiben, die implementiert IStackSynthesizer
(vielleicht abgeleitet vonDefaultStackSynthesizer
).
Wenn Sie Bootstrapping anpassen, halten Sie sich an den Bootstrap-Vorlagenvertrag, um die Kompatibilität mit zu gewährleisten. DefaultStackSynthesizer
Wenn Sie das Bootstrapping über den Bootstrap-Vorlagenvertrag hinaus ändern, müssen Sie Ihren eigenen Synthesizer schreiben.
Versionsverwaltung
Die Bootstrap-Vorlage sollte eine Ressource zum Erstellen eines Amazon EC2 Systems Manager (SSM) -Parameters mit einem bekannten Namen und einer Ausgabe enthalten, die die Version der Vorlage widerspiegelt:
Resources: CdkBootstrapVersion: Type: AWS::SSM::Parameter Properties: Type: String Name: Fn::Sub: '/cdk-bootstrap/${Qualifier}/version' Value: 4 Outputs: BootstrapVersion: Value: Fn::GetAtt: [CdkBootstrapVersion, Value]
Rollen
Das DefaultStackSynthesizer
erfordert fünf IAM Rollen für fünf verschiedene Zwecke. Wenn Sie die Standardrollen nicht verwenden, müssen Sie Ihre IAM Rolle ARNs innerhalb Ihres DefaultStackSynthesizer
Objekts angeben. Die Rollen lauten wie folgt:
-
Die Bereitstellungsrolle wird von CDK CLI und für AWS CodePipeline die Bereitstellung in einer Umgebung übernommen. Es
AssumeRolePolicy
steuert, wer die Bereitstellung in der Umgebung durchführen kann. In der Vorlage können Sie sehen, welche Berechtigungen diese Rolle benötigt. -
Die Lookup-Rolle wird von der übernommen CDKCLI, um Kontext-Lookups in einer Umgebung durchzuführen. Sie
AssumeRolePolicy
steuert, wer die Implementierung in der Umgebung durchführen kann. Die Berechtigungen, die diese Rolle benötigt, können der Vorlage entnommen werden. -
Die Rolle beim Veröffentlichen von Dateien und das Veröffentlichen von Bildern werden von den CDK CLI AWS CodeBuild Projekten übernommen, um Assets in einer Umgebung zu veröffentlichen. Sie werden verwendet, um in den Amazon S3 S3-Bucket bzw. das ECR Amazon-Repository zu schreiben. Diese Rollen benötigen Schreibzugriff auf diese Ressourcen.
-
Die AWS CloudFormation Ausführungsrolle wird übergeben, AWS CloudFormation um die eigentliche Bereitstellung durchzuführen. Ihre Berechtigungen sind die Berechtigungen, unter denen die Bereitstellung ausgeführt wird. Die Berechtigungen werden als Parameter, der die verwalteten Richtlinien auflistet, an den Stack übergebenARNs.
Outputs
Das CDK CLI setzt voraus, dass die folgenden CloudFormation Ausgaben auf dem Bootstrap-Stack vorhanden sind:
-
BucketName
— Der Name des Datei-Asset-Buckets. -
BucketDomainName
— Der Datei-Asset-Bucket im Domainnamenformat. -
BootstrapVersion
— Die aktuelle Version des Bootstrap-Stacks.
Verlauf der Vorlage
Die Bootstrap-Vorlage ist versioniert und entwickelt sich im Laufe der Zeit mit der selbst. AWS CDK Wenn Sie Ihre eigene Bootstrap-Vorlage bereitstellen, halten Sie sie mit der kanonischen Standardvorlage auf dem neuesten Stand. Sie möchten sicherstellen, dass Ihre Vorlage weiterhin mit allen Funktionen funktioniert. CDK Weitere Informationen finden Sie unter Versionsverlauf der Bootstrap-Vorlage.