Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

CDK-Stack-Synthese konfigurieren und durchführen

Fokusmodus
CDK-Stack-Synthese konfigurieren und durchführen - AWS Cloud Development Kit (AWS CDK) v2

Dies ist der AWS CDK v2-Entwicklerhandbuch. Das ältere CDK v1 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.

Dies ist der AWS CDK v2-Entwicklerhandbuch. Das ältere CDK v1 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.

Bevor Sie einen AWS Cloud Development Kit (AWS CDK) Stack bereitstellen können, muss er zunächst synthetisiert werden. Die Stack-Synthese ist der Prozess der Erstellung einer AWS CloudFormation Vorlage und von Deployment-Artefakten aus einem CDK-Stack. Die Vorlage und die Artefakte werden als Cloud-Assembly bezeichnet. Die Cloud-Assembly wird bereitgestellt, um Ihre Ressourcen bereitzustellen AWS. Weitere Informationen zur Funktionsweise von Bereitstellungen finden Sie unterWie funktionieren AWS CDK Bereitstellungen.

Wie Synthese und Bootstrapping zusammenarbeiten

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. Daher müssen sich Bootstrapping und Synthese gegenseitig ergänzen, damit eine Bereitstellung erfolgreich ist:

  • Bootstrapping ist ein einmaliger Vorgang, bei dem eine Umgebung für Bereitstellungen eingerichtet wird. AWS AWS CDK Es konfiguriert bestimmte AWS Ressourcen in Ihrer Umgebung, die vom CDK für Bereitstellungen verwendet werden. Diese werden üblicherweise als Bootstrap-Ressourcen bezeichnet. Anweisungen zum Bootstrapping finden Sie unter. Bootstrap Ihre Umgebung für die Verwendung mit dem AWS CDK

  • CloudFormation Die während der Synthese erstellten Vorlagen enthalten Informationen darüber, welche Bootstrap-Ressourcen verwendet werden sollen. Während der Synthese wird das CDK CLI weiß nicht genau, wie Ihre AWS Umgebung gebootet wurde. Stattdessen das CDK CLI erstellt CloudFormation Vorlagen, die auf dem Synthesizer basieren, den Sie für jeden CDK-Stack konfigurieren. Damit eine Bereitstellung erfolgreich ist, muss der Synthesizer CloudFormation Vorlagen erstellen, die auf die richtigen zu verwendenden Bootstrap-Ressourcen verweisen.

Das CDK verfügt über eine Standardkonfiguration für Synthesizer und Bootstrapping, die so konzipiert sind, dass sie zusammenarbeiten. Wenn Sie eine anpassen, müssen Sie die entsprechenden Anpassungen auf die andere anwenden.

Wie konfiguriert man die CDK-Stack-Synthese

Sie konfigurieren die CDK-Stack-Synthese mithilfe der synthesizer Eigenschaft Ihrer Stack Instanz. Diese Eigenschaft gibt an, wie Ihre CDK-Stacks synthetisiert werden. Sie stellen eine Instanz einer Klasse bereit, die oder implementiert. IStackSynthesizer IReusableStackSynthesizer Ihre Methoden werden jedes Mal aufgerufen, wenn ein Asset zum Stack hinzugefügt wird oder wenn der Stack synthetisiert wird. Im Folgenden finden Sie ein grundlegendes Beispiel für die Verwendung dieser Eigenschaft in Ihrem Stack:

TypeScript
new MyStack(this, 'MyStack', { // stack properties synthesizer: new DefaultStackSynthesizer({ // synthesizer properties }), });
JavaScript
new MyStack(this, 'MyStack', { // stack properties synthesizer: new DefaultStackSynthesizer({ // synthesizer properties }), });
Python
MyStack(self, "MyStack", # stack properties synthesizer=DefaultStackSynthesizer( # synthesizer properties ))
Java

new MyStack(app, "MyStack", StackProps.builder() // stack properties .synthesizer(DefaultStackSynthesizer.Builder.create() // synthesizer properties .build()) .build();
C#
new MyStack(app, "MyStack", new StackProps // stack properties { Synthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { // synthesizer properties }) });
Go
func main() { app := awscdk.NewApp(nil) NewMyStack(app, "MyStack", &MyStackProps{ StackProps: awscdk.StackProps{ Synthesizer: awscdk.NewDefaultStackSynthesizer(&awscdk.DefaultStackSynthesizerProps{ // synthesizer properties }), }, }) app.Synth(nil) }
new MyStack(this, 'MyStack', { // stack properties synthesizer: new DefaultStackSynthesizer({ // synthesizer properties }), });

Sie können auch einen Synthesizer für alle CDK-Stacks in Ihrer CDK-App konfigurieren, indem Sie die defaultStackSynthesizer Eigenschaft Ihrer Instanz verwenden: App

TypeScript

import { App, Stack, DefaultStackSynthesizer } from 'aws-cdk-lib'; const app = new App({ // Configure for all stacks in this app defaultStackSynthesizer: new DefaultStackSynthesizer({ /* ... */ }), });
JavaScript

const { App, Stack, DefaultStackSynthesizer } = require('aws-cdk-lib'); const app = new App({ // Configure for all stacks in this app defaultStackSynthesizer: new DefaultStackSynthesizer({ /* ... */ }), });
Python

from aws_cdk import App, Stack, DefaultStackSynthesizer app = App( default_stack_synthesizer=DefaultStackSynthesizer( # Configure for all stacks in this app # ... ) )
Java

import software.amazon.awscdk.App; import software.amazon.awscdk.Stack; import software.amazon.awscdk.DefaultStackSynthesizer; public class Main { public static void main(final String[] args) { App app = new App(AppProps.builder() // Configure for all stacks in this app .defaultStackSynthesizer(DefaultStackSynthesizer.Builder.create().build()) .build() ); } }
C#

using Amazon.CDK; using Amazon.CDK.Synthesizers; namespace MyNamespace { sealed class Program { public static void Main(string[] args) { var app = new App(new AppProps { // Configure for all stacks in this app DefaultStackSynthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { // ... }) }); } } }
Go

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) func main() { defer jsii.Close() app := awscdk.NewApp(&awscdk.AppProps{ // Configure for all stacks in this app DefaultStackSynthesizer: awscdk.NewDefaultStackSynthesizer(&awscdk.DefaultStackSynthesizerProps{ // ... }), }) }

import { App, Stack, DefaultStackSynthesizer } from 'aws-cdk-lib'; const app = new App({ // Configure for all stacks in this app defaultStackSynthesizer: new DefaultStackSynthesizer({ /* ... */ }), });

Standardmäßig verwendet der. AWS CDK DefaultStackSynthesizer Wenn Sie keinen Synthesizer konfigurieren, wird dieser Synthesizer verwendet.

Wenn Sie das Bootstrapping nicht ändern, z. B. Änderungen am Bootstrap-Stack oder der Vorlage vornehmen, müssen Sie die Stack-Synthese nicht ändern. Sie müssen nicht einmal einen Synthesizer bereitstellen. Das CDK verwendet die DefaultStackSynthesizer Standardklasse, um die CDK-Stack-Synthese so zu konfigurieren, dass sie ordnungsgemäß mit Ihrem Bootstrap-Stack interagiert.

Wie synthetisiert man einen CDK-Stack

Um einen CDK-Stack zu synthetisieren, verwenden Sie die AWS CDK Befehlszeilenschnittstelle (AWS CDK CLI) cdk synth -Befehl. Weitere Informationen zu diesem Befehl, einschließlich Optionen, die Sie mit diesem Befehl verwenden können, finden Sie untercdk synthesize.

Wenn Ihre CDK-App einen einzelnen Stack enthält oder um alle Stapel zu synthetisieren, müssen Sie den CDK-Stacknamen nicht als Argument angeben. Standardmäßig ist das CDK CLI synthetisiert Ihre CDK-Stacks zu Vorlagen. AWS CloudFormation Eine json formatierte Vorlage für jeden Stapel wird im Verzeichnis gespeichert. cdk.out Wenn Ihre App einen einzelnen Stapel enthält, wird eine yaml formatierte Vorlage gedruckt. stdout Im Folgenden wird ein Beispiel gezeigt:

$ cdk synth Resources: CDKMetadata: Type: AWS::CDK::Metadata Properties: Analytics: v2:deflate64:H4sIAAAAAAAA/unique-identifier Metadata: aws:cdk:path: CdkAppStack/CDKMetadata/Default Condition: CDKMetadataAvailable ...

Wenn Ihre CDK-App mehrere Stapel enthält, können Sie die logische ID eines Stacks angeben, um einen einzelnen Stapel zu synthetisieren. Im Folgenden wird ein Beispiel gezeigt:

$ cdk synth MyStackName

Wenn Sie keinen Stack synthetisieren und ausführen, das CDK cdk deploy CLI synthetisiert Ihren Stack vor der Bereitstellung automatisch.

Wie die Synthese standardmäßig funktioniert

Logisch IDs in Ihrer AWS CloudFormation Vorlage generiert

Wenn Sie einen CDK-Stack synthetisieren, um eine CloudFormation Vorlage zu erstellen, IDs werden logische Daten aus den folgenden Quellen generiert, formatiert als: <construct-path><construct-ID><unique-hash>

  • Konstruierter Pfad — Der gesamte Pfad zum Konstrukt in Ihrer CDK-App. Dieser Pfad schließt die ID des L1-Konstrukts, das immer Resource oder istDefault, und die ID des Stacks der obersten Ebene aus, zu dem es gehört.

  • Konstrukt-ID — Die ID, die Sie bei der Instanziierung Ihres Konstrukts als zweites Argument angeben.

  • Eindeutiger Hash — Der AWS CDK generiert einen eindeutigen Hash mit 8 Zeichen unter Verwendung eines deterministischen Hash-Algorithmus. Dieser eindeutige Hash trägt dazu bei, dass die logischen ID-Werte in Ihrer Vorlage voneinander eindeutig sind. Das deterministische Verhalten dieser Hash-Generierung stellt sicher, dass der generierte logische ID-Wert für jedes Konstrukt bei jeder Synthese derselbe bleibt. Der Hashwert ändert sich nur, wenn Sie bestimmte Konstruktwerte wie die ID oder den Pfad Ihres Konstrukts ändern.

Logical IDs haben eine maximale Länge von 255 Zeichen. Daher AWS CDK werden der Konstruktpfad und die Konstrukt-ID bei Bedarf gekürzt, um die Obergrenze einzuhalten.

Das Folgende ist ein Beispiel für ein Konstrukt, das einen Amazon Simple Storage Service (Amazon S3) -Bucket definiert. Hier übergeben wir myBucket als ID für unser Konstrukt:

TypeScript
import * as cdk from 'aws-cdk-lib'; import { Construct} from 'constructs'; import * as s3 from 'aws-cdk-lib/aws-s3'; export class MyCdkAppStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Define the S3 bucket new s3.Bucket(this, 'myBucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, }); } }
JavaScript

const cdk = require('aws-cdk-lib'); const s3 = require('aws-cdk-lib/aws-s3'); class MyCdkAppStack extends cdk.Stack { constructor(scope, id, props) { super(scope, id, props); new s3.Bucket(this, 'myBucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, }); } } module.exports = { MyCdkAppStack }
Python
import aws_cdk as cdk from constructs import Construct from aws_cdk import Stack from aws_cdk import aws_s3 as s3 class MyCdkAppStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) s3.Bucket(self, 'MyBucket', versioned=True, removal_policy=cdk.RemovalPolicy.DESTROY )
Java

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; import software.amazon.awscdk.services.s3.Bucket; import software.amazon.awscdk.services.s3.BucketProps; import software.amazon.awscdk.RemovalPolicy; public class MyCdkAppStack extends Stack { public MyCdkAppStack(final Construct scope, final String id) { this(scope, id, null); } public MyCdkAppStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); Bucket.Builder.create(this, "myBucket") .versioned(true) .removalPolicy(RemovalPolicy.DESTROY) .build(); } }
C#
using Amazon.CDK; using Constructs; using Amazon.CDK.AWS.S3; namespace MyCdkApp { public class MyCdkAppStack : Stack { public MyCdkAppStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { new Bucket(this, "myBucket", new BucketProps { Versioned = true, RemovalPolicy = RemovalPolicy.DESTROY }); } } }
Go
package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/aws-cdk-go/awscdk/v2/awss3" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) type MyCdkAppStackProps struct { awscdk.StackProps } func NewMyCdkAppStack(scope constructs.Construct, id string, props *MyCdkAppStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) awss3.NewBucket(stack, jsii.String("myBucket"), &awss3.BucketProps{ Versioned: jsii.Bool(true), RemovalPolicy: awscdk.RemovalPolicy_DESTROY, }) return stack } // ...
import * as cdk from 'aws-cdk-lib'; import { Construct} from 'constructs'; import * as s3 from 'aws-cdk-lib/aws-s3'; export class MyCdkAppStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Define the S3 bucket new s3.Bucket(this, 'myBucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, }); } }

Wenn wir ausführencdk synth, myBucketunique-hash wird eine logische ID im Format von generiert. Das Folgende ist ein Beispiel für diese Ressource in der generierten AWS CloudFormation Vorlage:

Resources: myBucket5AF9C99B: Type: AWS::S3::Bucket Properties: VersioningConfiguration: Status: Enabled UpdateReplacePolicy: Delete DeletionPolicy: Delete Metadata: aws:cdk:path: S3BucketAppStack/myBucket/Resource

Im Folgenden finden Sie ein Beispiel für ein benutzerdefiniertes Konstrukt mit dem NamenBar, das einen Amazon S3 S3-Bucket definiert. Das Bar Konstrukt enthält das benutzerdefinierte Konstrukt Foo in seinem Pfad:

TypeScript

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as s3 from 'aws-cdk-lib/aws-s3'; // Define the Bar construct export class Bar extends Construct { constructor(scope: Construct, id: string) { super(scope, id); // Define an S3 bucket inside of Bar new s3.Bucket(this, 'Bucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, } ); } } // Define the Foo construct export class Foo extends Construct { constructor(scope: Construct, id: string) { super(scope, id); // Create an instance of Bar inside Foo new Bar(this, 'Bar'); } } // Define the CDK stack export class MyCustomAppStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Instantiate Foo construct in the stack new Foo(this, 'Foo'); } }
JavaScript

const cdk = require('aws-cdk-lib'); const s3 = require('aws-cdk-lib/aws-s3'); const { Construct } = require('constructs'); // Define the Bar construct class Bar extends Construct { constructor(scope, id) { super(scope, id); // Define an S3 bucket inside of Bar new s3.Bucket(this, 'Bucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, }); } } // Define the Foo construct class Foo extends Construct { constructor(scope, id) { super(scope, id); // Create an instance of Bar inside Foo new Bar(this, 'Bar'); } } // Define the CDK stack class MyCustomAppStack extends cdk.Stack { constructor(scope, id, props) { super(scope, id, props); // Instantiate Foo construct in the stack new Foo(this, 'Foo'); } } module.exports = { MyCustomAppStack }
Python

import aws_cdk as cdk from constructs import Construct from aws_cdk import ( Stack, aws_s3 as s3, RemovalPolicy, ) # Define the Bar construct class Bar(Construct): def __init__(self, scope: Construct, id: str) -> None: super().__init__(scope, id) # Define an S3 bucket inside of Bar s3.Bucket(self, 'Bucket', versioned=True, removal_policy=RemovalPolicy.DESTROY ) # Define the Foo construct class Foo(Construct): def __init__(self, scope: Construct, id: str) -> None: super().__init__(scope, id) # Create an instance of Bar inside Foo Bar(self, 'Bar') # Define the CDK stack class MyCustomAppStack(Stack): def __init__(self, scope: Construct, id: str, **kwargs) -> None: super().__init__(scope, id, **kwargs) # Instantiate Foo construct in the stack Foo(self, 'Foo')
Java

In my-custom-app/src/main/java/com/myorg/Bar.java:

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.services.s3.Bucket; import software.amazon.awscdk.services.s3.BucketProps; import software.amazon.awscdk.RemovalPolicy; public class Bar extends Construct { public Bar(final Construct scope, final String id) { super(scope, id); // Define an S3 bucket inside Bar Bucket.Builder.create(this, "Bucket") .versioned(true) .removalPolicy(RemovalPolicy.DESTROY) .build(); } }

In my-custom-app/src/main/java/com/myorg/Foo.java:

package com.myorg; import software.constructs.Construct; public class Foo extends Construct { public Foo(final Construct scope, final String id) { super(scope, id); // Create an instance of Bar inside Foo new Bar(this, "Bar"); } }

In my-custom-app/src/main/java/com/myorg/MyCustomAppStack.java:

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; public class MyCustomAppStack extends Stack { public MyCustomAppStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // Instantiate Foo construct in the stack new Foo(this, "Foo"); } // Overload constructor in case StackProps is not provided public MyCustomAppStack(final Construct scope, final String id) { this(scope, id, null); } }
C#
using Amazon.CDK; using Constructs; using Amazon.CDK.AWS.S3; namespace MyCustomApp { // Define the Bar construct public class Bar : Construct { public Bar(Construct scope, string id) : base(scope, id) { // Define an S3 bucket inside Bar new Bucket(this, "Bucket", new BucketProps { Versioned = true, RemovalPolicy = RemovalPolicy.DESTROY }); } } // Define the Foo construct public class Foo : Construct { public Foo(Construct scope, string id) : base(scope, id) { // Create an instance of Bar inside Foo new Bar(this, "Bar"); } } // Define the CDK Stack public class MyCustomAppStack : Stack { public MyCustomAppStack(Construct scope, string id, StackProps props = null) : base(scope, id, props) { // Instantiate Foo construct in the stack new Foo(this, "Foo"); } } }
Go

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/aws-cdk-go/awscdk/v2/awss3" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) // Define the Bar construct type Bar struct { constructs.Construct } func NewBar(scope constructs.Construct, id string) constructs.Construct { bar := constructs.NewConstruct(scope, &id) // Define an S3 bucket inside Bar awss3.NewBucket(bar, jsii.String("Bucket"), &awss3.BucketProps{ Versioned: jsii.Bool(true), RemovalPolicy: awscdk.RemovalPolicy_DESTROY, }) return bar } // Define the Foo construct type Foo struct { constructs.Construct } func NewFoo(scope constructs.Construct, id string) constructs.Construct { foo := constructs.NewConstruct(scope, &id) // Create an instance of Bar inside Foo NewBar(foo, "Bar") return foo } // Define the CDK Stack type MyCustomAppStackProps struct { awscdk.StackProps } func NewMyCustomAppStack(scope constructs.Construct, id string, props *MyCustomAppStackProps) awscdk.Stack { stack := awscdk.NewStack(scope, &id, &props.StackProps) // Instantiate Foo construct in the stack NewFoo(stack, "Foo") return stack } // Define the CDK App func main() { app := awscdk.NewApp(nil) NewMyCustomAppStack(app, "MyCustomAppStack", &MyCustomAppStackProps{ StackProps: awscdk.StackProps{}, }) app.Synth(nil) }

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as s3 from 'aws-cdk-lib/aws-s3'; // Define the Bar construct export class Bar extends Construct { constructor(scope: Construct, id: string) { super(scope, id); // Define an S3 bucket inside of Bar new s3.Bucket(this, 'Bucket', { versioned: true, removalPolicy: cdk.RemovalPolicy.DESTROY, } ); } } // Define the Foo construct export class Foo extends Construct { constructor(scope: Construct, id: string) { super(scope, id); // Create an instance of Bar inside Foo new Bar(this, 'Bar'); } } // Define the CDK stack export class MyCustomAppStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Instantiate Foo construct in the stack new Foo(this, 'Foo'); } }

Wenn wir ausführencdk synth, FooBarBucketunique-hash wird eine logische ID im Format von generiert. Das Folgende ist ein Beispiel für diese Ressource in der generierten AWS CloudFormation Vorlage:

Resources: FooBarBucketBA3ED1FA: Type: AWS::S3::Bucket Properties: VersioningConfiguration: Status: Enabled UpdateReplacePolicy: Delete DeletionPolicy: Delete # ...

Passen Sie die CDK-Stack-Synthese an

Wenn das standardmäßige CDK-Syntheseverhalten nicht Ihren Anforderungen entspricht, können Sie die CDK-Synthese anpassen. Dazu modifizieren SieDefaultStackSynthesizer, verwenden andere verfügbare integrierte Synthesizer oder erstellen Ihren eigenen Synthesizer. Detaillierte Anweisungen finden Sie unter Passen Sie die CDK-Stack-Synthese an.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.