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

CDKStack-Synthese anpassen

Fokusmodus
CDKStack-Synthese anpassen - 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.

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.

Sie können die AWS Cloud Development Kit (AWS CDK) Stack-Synthese anpassen, indem Sie den Standardsynthesizer ändern, andere verfügbare integrierte Synthesizer verwenden oder Ihren eigenen Synthesizer erstellen.

AWS CDK Dazu gehören die folgenden integrierten Synthesizer, mit denen Sie das Syntheseverhalten anpassen können:

  • DefaultStackSynthesizer— Wenn Sie keinen Synthesizer angeben, wird dieser automatisch verwendet. Es unterstützt kontenübergreifende Bereitstellungen und Bereitstellungen, die das Pipelines-Konstrukt verwenden. CDK Sein Bootstrap-Vertrag erfordert einen vorhandenen Amazon S3 S3-Bucket mit einem bekannten Namen, ein vorhandenes ECR Amazon-Repository mit einem bekannten Namen und fünf bestehende IAM Rollen mit bekannten Namen. Die Standard-Bootstrapping-Vorlage erfüllt diese Anforderungen.

  • CliCredentialsStackSynthesizer— Für den Bootstrap-Vertrag dieses Synthesizers sind ein vorhandener Amazon S3 S3-Bucket und ein vorhandenes ECR Amazon-Repository erforderlich. Es sind keine Rollen erforderlich. IAM Um Bereitstellungen durchzuführen, stützt sich dieser Synthesizer auf die Berechtigungen des CDK CLI Benutzer und wird für Organisationen empfohlen, die die Anmeldeinformationen für die IAM Bereitstellung einschränken möchten. Dieser Synthesizer unterstützt keine kontenübergreifenden Bereitstellungen oder Pipelines. CDK

  • LegacyStackSynthesizer— Dieser Synthesizer emuliert das v1-Syntheseverhalten. CDK Sein Bootstrap-Vertrag erfordert einen vorhandenen Amazon S3 S3-Bucket mit einem beliebigen Namen und erwartet, dass die Standorte der Assets als CloudFormation Stack-Parameter übergeben werden. Wenn Sie diesen Synthesizer verwenden, müssen Sie den CDK CLI um die Bereitstellung durchzuführen.

Wenn keiner dieser integrierten Synthesizer für Ihren Anwendungsfall geeignet ist, können Sie Ihren eigenen Synthesizer als eine Klasse schreiben, die IStackSynthesizer Synthesizer aus der Construct Hub.

Anpassen der DefaultStackSynthesizer

Der DefaultStackSynthesizer ist der Standard-Synthesizer für den. AWS CDK Er ist so konzipiert, dass er kontenübergreifende Bereitstellungen von CDK Anwendungen sowie die Bereitstellung von CDK Apps über ein CI/CD-System ermöglicht, das zwar nicht ausdrücklich unterstützt AWS CDK, aber reguläre CloudFormation Bereitstellungen unterstützt, wie z. AWS CodePipeline Dieser Synthesizer ist für die meisten Anwendungsfälle die beste Option.

DefaultStackSynthesizerBootstrap-Vertrag

DefaultStackSynthesizererfordert den folgenden Bootstrap-Vertrag. Dies sind die Ressourcen, die beim Bootstrapping erstellt werden müssen:

Bootstrap-Ressource Beschreibung Standardname der erwarteten Ressource Zweck

Amazon-S3-Bucket

Staging-Bucket

cdk-hnb659fds-Vermögenswerte- - ACCOUNT REGION

Speichert Datei-Assets.

ECRAmazon-Repository

Bereitstellen eines Repositorys

cdk-hnb659 - - fds-container-assets ACCOUNT REGION

Speichert und verwaltet Docker Bild-Assets.

IAM-Rolle

Rolle bereitstellen

cdk-hnb659 - fds-deploy-role - ACCOUNT REGION

Angenommen von der CDK CLI und möglicherweise andere Rollen CodePipeline zu übernehmen und die AWS CloudFormation Bereitstellung zu starten.

Die Vertrauensrichtlinie dieser Rolle legt fest, wer mit der AWS CDK in dieser AWS Umgebung arbeiten kann.

IAM-Rolle

AWS CloudFormation Rolle „Ausführung“

cdk-hnb659 - fds-cfn-exec-role - ACCOUNT REGION

Diese Rolle wird von AWS CloudFormation verwendet, um die Bereitstellung durchzuführen.

Die Richtlinien dieser Rolle steuern, welche Operationen die CDK Bereitstellung ausführen kann.

IAM-Rolle

Rolle nachschlagen

cdk-hnb659 - fds-lookup-role - ACCOUNT REGION

Diese Rolle wird verwendet, wenn CDK CLI muss nach Umgebungskontexten suchen.

Die Vertrauensrichtlinie dieser Rolle bestimmt, wer in der Umgebung nach Informationen suchen kann.

IAM-Rolle

Rolle beim Veröffentlichen von Dateien

cdk-hnb659 - fds-file-publishing-role - ACCOUNT REGION

Diese Rolle wird verwendet, um Assets in den Amazon S3 S3-Staging-Bucket hochzuladen. Sie wird von der Bereitstellungsrolle übernommen.

IAM-Rolle

Rolle beim Veröffentlichen von Bildern

cdk-hnb659 - fds-image-publishing-role - ACCOUNT REGION

Diese Rolle wird zum Hochladen verwendet Docker Bilder in das ECR Amazon-Staging-Repository. Es wird von der Bereitstellungsrolle übernommen.

SSM Parameter

Bootstrap-Versionsparameter

/cdk-bootstrap/hnb659fds/ version

Die Version der Bootstrap-Vorlage. Sie wird von der Bootstrap-Vorlage und der CDK CLI um Anforderungen zu validieren.

Eine Möglichkeit, die CDK Stack-Synthese anzupassen, besteht darin, die zu ändernDefaultStackSynthesizer. Sie können diesen Synthesizer mithilfe der synthesizer Eigenschaft Ihrer Stack Instanz für einen einzelnen CDK Stack anpassen. Sie können mithilfe der defaultStackSynthesizer Eigenschaft Ihrer Instanz auch Änderungen DefaultStackSynthesizer für alle Stacks in Ihrer CDK App App vornehmen.

Ändern Sie den Qualifier

Der Qualifier wird dem Namen der Ressourcen hinzugefügt, die beim Bootstrapping erstellt wurden. Dieser Wert ist standardmäßig hnb659fds. Wenn Sie den Qualifier beim Bootstrapping ändern, müssen Sie die CDK Stack-Synthese so anpassen, dass derselbe Qualifier verwendet wird.

Um den Qualifier zu ändern, konfigurieren Sie die qualifier Eigenschaft von DefaultStackSynthesizer oder konfigurieren Sie den Qualifier als Kontextschlüssel in der Datei Ihres Projekts. CDK cdk.json

Im Folgenden finden Sie ein Beispiel für die Konfiguration der qualifier Eigenschaft von: DefaultStackSynthesizer

TypeScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'MYQUALIFIER', }), });
JavaScript
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'MYQUALIFIER', }), })
Python
MyStack(self, "MyStack", synthesizer=DefaultStackSynthesizer( qualifier="MYQUALIFIER" ))
Java
new MyStack(app, "MyStack", StackProps.builder() .synthesizer(DefaultStackSynthesizer.Builder.create() .qualifier("MYQUALIFIER") .build()) .build();
C#
new MyStack(app, "MyStack", new StackProps { Synthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { Qualifier = "MYQUALIFIER" }) });
Go
func NewMyStack(scope constructs.Construct, id string, props *MyStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) synth := awscdk.NewDefaultStackSynthesizer(&awscdk.DefaultStackSynthesizerProps{ Qualifier: jsii.String("MYQUALIFIER"), }) stack.SetSynthesizer(synth) return stack }
new MyStack(this, 'MyStack', { synthesizer: new DefaultStackSynthesizer({ qualifier: 'MYQUALIFIER', }), });

Im Folgenden finden Sie ein Beispiel für die Konfiguration des Qualifizierers als Kontextschlüssel incdk.json:

{ "app": "...", "context": { "@aws-cdk/core:bootstrapQualifier": "MYQUALIFIER" } }

Ressourcennamen ändern

Alle anderen DefaultStackSynthesizer Eigenschaften beziehen sich auf die Namen der Ressourcen in der Bootstrap-Vorlage. Sie müssen diese Eigenschaften nur angeben, wenn Sie die Bootstrap-Vorlage und die Ressourcennamen oder das Benennungsschema geändert haben.

Alle Eigenschaften akzeptieren die speziellen Platzhalter${Qualifier}, ${AWS::Partition}${AWS::AccountId}, und. ${AWS::Region} Diese Platzhalter werden jeweils durch die Werte des qualifier Parameters und der AWS Partition, die Konto-ID und die AWS-Region Werte für die Umgebung des Stacks ersetzt.

Das folgende Beispiel zeigt die am häufigsten verwendeten Eigenschaften für DefaultStackSynthesizer zusammen mit ihren Standardwerten, als ob Sie den Synthesizer instanziieren würden. Eine vollständige Liste finden Sie unter: DefaultStackSynthesizerProps

TypeScript
new DefaultStackSynthesizer({ // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', // ARN of the role assumed by the CLI and Pipeline to deploy here deployRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}', deployRoleExternalId: '', // ARN of the role used for file asset publishing (assumed from the CLI role) fileAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}', fileAssetPublishingExternalId: '', // ARN of the role used for Docker asset publishing (assumed from the CLI role) imageAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}', imageAssetPublishingExternalId: '', // ARN of the role passed to CloudFormation to execute the deployments cloudFormationExecutionRole: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}', // ARN of the role used to look up context information in an environment lookupRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}', lookupRoleExternalId: '', // Name of the SSM parameter which describes the bootstrap stack version number bootstrapStackVersionSsmParameter: '/cdk-bootstrap/${Qualifier}/version', // Add a rule to every template which verifies the required bootstrap stack version generateBootstrapVersionRule: true, })
JavaScript
new DefaultStackSynthesizer({ // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', // ARN of the role assumed by the CLI and Pipeline to deploy here deployRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}', deployRoleExternalId: '', // ARN of the role used for file asset publishing (assumed from the CLI role) fileAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}', fileAssetPublishingExternalId: '', // ARN of the role used for Docker asset publishing (assumed from the CLI role) imageAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}', imageAssetPublishingExternalId: '', // ARN of the role passed to CloudFormation to execute the deployments cloudFormationExecutionRole: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}', // ARN of the role used to look up context information in an environment lookupRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}', lookupRoleExternalId: '', // Name of the SSM parameter which describes the bootstrap stack version number bootstrapStackVersionSsmParameter: '/cdk-bootstrap/${Qualifier}/version', // Add a rule to every template which verifies the required bootstrap stack version generateBootstrapVersionRule: true, })
Python
DefaultStackSynthesizer( # Name of the S3 bucket for file assets file_assets_bucket_name="cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}", bucket_prefix="", # Name of the ECR repository for Docker image assets image_assets_repository_name="cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}", docker_tag_prefix="", # ARN of the role assumed by the CLI and Pipeline to deploy here deploy_role_arn="arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}", deploy_role_external_id="", # ARN of the role used for file asset publishing (assumed from the CLI role) file_asset_publishing_role_arn="arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}", file_asset_publishing_external_id="", # ARN of the role used for Docker asset publishing (assumed from the CLI role) image_asset_publishing_role_arn="arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}", image_asset_publishing_external_id="", # ARN of the role passed to CloudFormation to execute the deployments cloud_formation_execution_role="arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", # ARN of the role used to look up context information in an environment lookup_role_arn="arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}", lookup_role_external_id="", # Name of the SSM parameter which describes the bootstrap stack version number bootstrap_stack_version_ssm_parameter="/cdk-bootstrap/${Qualifier}/version", # Add a rule to every template which verifies the required bootstrap stack version generate_bootstrap_version_rule=True, )
Java
DefaultStackSynthesizer.Builder.create() // Name of the S3 bucket for file assets .fileAssetsBucketName("cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}") .bucketPrefix('') // Name of the ECR repository for Docker image assets .imageAssetsRepositoryName("cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}") .dockerTagPrefix('') // ARN of the role assumed by the CLI and Pipeline to deploy here .deployRoleArn("arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}") .deployRoleExternalId("") // ARN of the role used for file asset publishing (assumed from the CLI role) .fileAssetPublishingRoleArn("arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}") .fileAssetPublishingExternalId("") // ARN of the role used for Docker asset publishing (assumed from the CLI role) .imageAssetPublishingRoleArn("arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}") .imageAssetPublishingExternalId("") // ARN of the role passed to CloudFormation to execute the deployments .cloudFormationExecutionRole("arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}") .lookupRoleArn("arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}") .lookupRoleExternalId("") // Name of the SSM parameter which describes the bootstrap stack version number .bootstrapStackVersionSsmParameter("/cdk-bootstrap/${Qualifier}/version") // Add a rule to every template which verifies the required bootstrap stack version .generateBootstrapVersionRule(true) .build()
C#
new DefaultStackSynthesizer(new DefaultStackSynthesizerProps { // Name of the S3 bucket for file assets FileAssetsBucketName = "cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}", BucketPrefix = "", // Name of the ECR repository for Docker image assets ImageAssetsRepositoryName = "cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}", DockerTagPrefix = "", // ARN of the role assumed by the CLI and Pipeline to deploy here DeployRoleArn = "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}", DeployRoleExternalId = "", // ARN of the role used for file asset publishing (assumed from the CLI role) FileAssetPublishingRoleArn = "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}", FileAssetPublishingExternalId = "", // ARN of the role used for Docker asset publishing (assumed from the CLI role) ImageAssetPublishingRoleArn = "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}", ImageAssetPublishingExternalId = "", // ARN of the role passed to CloudFormation to execute the deployments CloudFormationExecutionRole = "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", LookupRoleArn = "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}", LookupRoleExternalId = "", // Name of the SSM parameter which describes the bootstrap stack version number BootstrapStackVersionSsmParameter = "/cdk-bootstrap/${Qualifier}/version", // Add a rule to every template which verifies the required bootstrap stack version GenerateBootstrapVersionRule = true, })
new DefaultStackSynthesizer({ // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', // ARN of the role assumed by the CLI and Pipeline to deploy here deployRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-deploy-role-${AWS::AccountId}-${AWS::Region}', deployRoleExternalId: '', // ARN of the role used for file asset publishing (assumed from the CLI role) fileAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}', fileAssetPublishingExternalId: '', // ARN of the role used for Docker asset publishing (assumed from the CLI role) imageAssetPublishingRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-image-publishing-role-${AWS::AccountId}-${AWS::Region}', imageAssetPublishingExternalId: '', // ARN of the role passed to CloudFormation to execute the deployments cloudFormationExecutionRole: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-cfn-exec-role-${AWS::AccountId}-${AWS::Region}', // ARN of the role used to look up context information in an environment lookupRoleArn: 'arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-${Qualifier}-lookup-role-${AWS::AccountId}-${AWS::Region}', lookupRoleExternalId: '', // Name of the SSM parameter which describes the bootstrap stack version number bootstrapStackVersionSsmParameter: '/cdk-bootstrap/${Qualifier}/version', // Add a rule to every template which verifies the required bootstrap stack version generateBootstrapVersionRule: true, })

Verwenden von CliCredentialsStackSynthesizer

Um die Sicherheitsanmeldedaten zu ändern, die für die Bereitstellung von Berechtigungen bei CDK Bereitstellungen verwendet werden, können Sie die Synthese anpassen, indem CliCredentialsStackSynthesizer Sie. Dieser Synthesizer arbeitet mit den AWS Standardressourcen, die beim Bootstrapping erstellt werden, um Ressourcen zu speichern, z. B. den Amazon S3 S3-Bucket und das Amazon-Repository. ECR Anstatt die CDK beim Bootstrapping erstellten IAM Standardrollen zu verwenden, verwendet er die Sicherheitsanmeldedaten des Akteurs, der die Bereitstellung initiiert. Daher müssen die Sicherheitsanmeldedaten des Akteurs über gültige Berechtigungen verfügen, um alle Bereitstellungsaktionen ausführen zu können. Das folgende Diagramm veranschaulicht den Bereitstellungsprozess bei Verwendung dieses Synthesizers:

Flussdiagramm des AWS CDK Standardbereitstellungsprozesses.

Bei der Verwendung vonCliCredentialsStackSynthesizer:

  • CloudFormation Führt API Anrufe in Ihrem Konto standardmäßig mit den Berechtigungen des Akteurs durch. Daher muss die aktuelle Identität über die erforderlichen Berechtigungen verfügen, um die erforderlichen Änderungen an den AWS Ressourcen im CloudFormation Stack vorzunehmen, sowie über die erforderlichen Berechtigungen zum Ausführen der erforderlichen CloudFormation Operationen wie CreateStack oderUpdateStack. Die Bereitstellungsmöglichkeiten sind auf die Berechtigungen des jeweiligen Akteurs beschränkt.

  • Die Veröffentlichung und CloudFormation Bereitstellung von Ressourcen erfolgt unter Verwendung der aktuellen IAM Identität. Diese Identität muss über ausreichende Berechtigungen zum Lesen und Schreiben in den Asset-Bucket und das Repository verfügen.

  • Suchvorgänge werden mit der aktuellen IAM Identität durchgeführt, und Suchvorgänge unterliegen deren Richtlinien.

Wenn Sie diesen Synthesizer verwenden, können Sie eine separate CloudFormation Ausführungsrolle verwenden, indem Sie sie mithilfe der --role-arn Option mit einer beliebigen angeben CDK CLI Befehl.

CliCredentialsStackSynthesizerBootstrap-Vertrag

CliCredentialsStackSynthesizererfordert den folgenden Bootstrap-Vertrag. Dies sind die Ressourcen, die beim Bootstrapping erstellt werden müssen:

Bootstrap-Ressource Beschreibung Standardname der erwarteten Ressource Zweck

Amazon-S3-Bucket

Staging-Bucket

cdk-hnb659fds-Vermögenswerte- - ACCOUNT REGION

Speichert Datei-Assets.

ECRAmazon-Repository

Bereitstellen eines Repositorys

cdk-hnb659 - - fds-container-assets ACCOUNT REGION

Speichert und verwaltet Docker Bild-Assets.

Die Zeichenfolge hnb659fds im Ressourcennamen wird Qualifier genannt. Sein Standardwert hat keine besondere Bedeutung. Sie können mehrere Kopien der Bootstrap-Ressourcen in einer einzigen Umgebung haben, sofern sie einen anderen Qualifier haben. Das Vorhandensein mehrerer Kopien kann nützlich sein, um die Ressourcen verschiedener Anwendungen in derselben Umgebung getrennt zu halten.

Sie können die standardmäßige Bootstrap-Vorlage bereitstellen, um den CliCredentialsStackSynthesizer Bootstrap-Vertrag zu erfüllen. Die Standard-Bootstrap-Vorlage erstellt IAM Rollen, aber dieser Synthesizer verwendet sie nicht. Sie können die Bootstrap-Vorlage auch anpassen, um die Rollen zu entfernen. IAM

Ändern von CliCredentialsStackSynthesizer

Wenn Sie beim Bootstrapping den Qualifier oder einen der Standard-Bootstrap-Ressourcennamen ändern, müssen Sie den Synthesizer so ändern, dass er dieselben Namen verwendet. Sie können den Synthesizer für einen einzelnen Stack oder für alle Stapel in Ihrer App ändern. Im Folgenden wird ein Beispiel gezeigt:

TypeScript
new MyStack(this, 'MyStack', { synthesizer: new CliCredentialsStackSynthesizer({ qualifier: 'MYQUALIFIER', }), });
JavaScript
new MyStack(this, 'MyStack', { synthesizer: new CliCredentialsStackSynthesizer({ qualifier: 'MYQUALIFIER', }), })
Python
MyStack(self, "MyStack", synthesizer=CliCredentialsStackSynthesizer( qualifier="MYQUALIFIER" ))
Java
new MyStack(app, "MyStack", StackProps.builder() .synthesizer(CliCredentialsStackSynthesizer.Builder.create() .qualifier("MYQUALIFIER") .build()) .build();
C#
new MyStack(app, "MyStack", new StackProps { Synthesizer = new CliCredentialsStackSynthesizer(new CliCredentialsStackSynthesizerProps { Qualifier = "MYQUALIFIER" }) });
new MyStack(this, 'MyStack', { synthesizer: new CliCredentialsStackSynthesizer({ qualifier: 'MYQUALIFIER', }), });

Das folgende Beispiel zeigt die am häufigsten verwendeten Eigenschaften für CliCredentialsStackSynthesizer zusammen mit ihren Standardwerten. Eine vollständige Liste finden Sie unter CliCredentialsStackSynthesizerProps:

TypeScript
new CliCredentialsStackSynthesizer({ // Value for '${Qualifier}' in the resource names qualifier: 'hnb659fds', // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', })
JavaScript
new CliCredentialsStackSynthesizer({ // Value for '${Qualifier}' in the resource names qualifier: 'hnb659fds', // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', })
Python
CliCredentialsStackSynthesizer( # Value for '${Qualifier}' in the resource names qualifier="hnb659fds", # Name of the S3 bucket for file assets file_assets_bucket_name="cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}", bucket_prefix="", # Name of the ECR repository for Docker image assets image_assets_repository_name="cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}", docker_tag_prefix="", )
Java
CliCredentialsStackSynthesizer.Builder.create() // Value for '${Qualifier}' in the resource names .qualifier("hnb659fds") // Name of the S3 bucket for file assets .fileAssetsBucketName("cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}") .bucketPrefix('') // Name of the ECR repository for Docker image assets .imageAssetsRepositoryName("cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}") .dockerTagPrefix('') .build()
C#
new CliCredentialsStackSynthesizer(new CliCredentialsStackSynthesizerProps { // Value for '${Qualifier}' in the resource names Qualifier = "hnb659fds", // Name of the S3 bucket for file assets FileAssetsBucketName = "cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}", BucketPrefix = "", // Name of the ECR repository for Docker image assets ImageAssetsRepositoryName = "cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}", DockerTagPrefix = "", })
new CliCredentialsStackSynthesizer({ // Value for '${Qualifier}' in the resource names qualifier: 'hnb659fds', // Name of the S3 bucket for file assets fileAssetsBucketName: 'cdk-${Qualifier}-assets-${AWS::AccountId}-${AWS::Region}', bucketPrefix: '', // Name of the ECR repository for Docker image assets imageAssetsRepositoryName: 'cdk-${Qualifier}-container-assets-${AWS::AccountId}-${AWS::Region}', dockerTagPrefix: '', })

Verwenden von LegacyStackSynthesizer

Das LegacyStackSynthesizer emuliert das Verhalten von CDK v1-Bereitstellungen. Die Sicherheitsanmeldedaten des Akteurs, der die Bereitstellung durchführt, werden zur Einrichtung von Berechtigungen verwendet. Datei-Assets werden in einen Bucket hochgeladen, der mithilfe eines AWS CloudFormation Stacks mit dem Namen erstellt werden mussCDKToolkit. Die CDK CLI erstellt ein nicht verwaltetes ECR Amazon-Repository mit aws-cdk/assets dem Namen Store Docker Bild-Assets. Sie sind dafür verantwortlich, dieses Repository zu bereinigen und zu verwalten. Stacks, die mit dem synthetisiert wurden, LegacyStackSynthesizer können nur mit dem bereitgestellt werden CDK CLI.

Sie können den verwenden, LegacyStackSynthesizer wenn Sie von CDK Version 1 auf CDK Version 2 migrieren und Ihre Umgebungen nicht neu starten können. Für neue Projekte empfehlen wir, es nicht zu verwenden. LegacyStackSynthesizer

LegacyStackSynthesizerBootstrap-Vertrag

LegacyStackSynthesizererfordert den folgenden Bootstrap-Vertrag. Dies sind die Ressourcen, die beim Bootstrapping erstellt werden müssen:

Bootstrap-Ressource Beschreibung Standardname der erwarteten Ressource Zweck

Amazon-S3-Bucket

Staging-Bucket

cdk-hnb659fds-Vermögenswerte- - ACCOUNT REGION

Speichert Datei-Assets.

CloudFormation Ausgabe

Ausgabe des Bucket-Namens

Stapel — CDKToolkit

Name der Ausgabe — BucketName

Eine CloudFormation Ausgabe, die den Namen des Staging-Buckets beschreibt

Das LegacyStackSynthesizer geht nicht von der Existenz eines Amazon S3 S3-Buckets mit einem festen Namen aus. Stattdessen enthält die synthetisierte CloudFormation Vorlage drei CloudFormation Parameter für jedes Datei-Asset. Diese Parameter speichern den Amazon S3 S3-Bucket-Namen, den Amazon S3 S3-Objektschlüssel und den Artefakt-Hash für jedes Datei-Asset.

Docker Bild-Assets werden in einem ECR Amazon-Repository mit dem Namen veröffentlichtaws-cdk/assets. Dieser Name kann pro Asset geändert werden. Die Repositorys werden erstellt, falls sie nicht existieren.

Es muss ein CloudFormation Stack mit dem Standardnamen CDKToolkit existieren. Dieser Stack muss einen CloudFormation Export mit dem Namen habenBucketName, der sich auf den Staging-Bucket bezieht.

Die Standard-Bootstrap-Vorlage erfüllt den LegacyStackSynthesizer Bootstrap-Vertrag. Es wird jedoch nur der Amazon S3 S3-Bucket aus den Bootstrap-Ressourcen der Bootstrap-Vorlage verwendet. Sie können die Bootstrap-Vorlage anpassen, um die Amazon- ECRIAM, und SSM Bootstrap-Ressourcen zu entfernen.

LegacyStackSynthesizerBereitstellungsprozess

Wenn Sie diesen Synthesizer verwenden, wird während der Bereitstellung der folgende Vorgang ausgeführt:

  • Die CDK CLI sucht nach einem CloudFormation Stack mit dem Namen CDKToolkit in Ihrer Umgebung. Aus diesem Stapel ist der CDK CLI liest die CloudFormation angegebene AusgabeBucketName. Sie können die --toolkit-stack-name Option with verwendencdk deploy, um einen anderen Stacknamen anzugeben.

  • Die Sicherheitsanmeldedaten des Akteurs, der die Bereitstellung initiiert, werden verwendet, um Berechtigungen für die Bereitstellung festzulegen. Daher muss der Akteur über ausreichende Berechtigungen verfügen, um alle Bereitstellungsaktionen durchführen zu können. Dazu gehören das Lesen und Schreiben in den Amazon S3 S3-Staging-Bucket, das Erstellen und Schreiben in das ECR Amazon-Repository, das Starten und Überwachen von AWS CloudFormation Bereitstellungen sowie das Ausführen aller für die Bereitstellung erforderlichen API Aufrufe.

  • Falls erforderlich und sofern die Berechtigungen gültig sind, werden Datei-Assets im Amazon S3 S3-Staging-Bucket veröffentlicht.

  • Falls erforderlich und sofern die Berechtigungen gültig sind, Docker Bildelemente werden in dem Repository veröffentlicht, das nach der repositoryName Eigenschaft des Elements benannt ist. Der Standardwert ist, 'aws-cdk/assets' wenn Sie keinen Repository-Namen angeben.

  • Wenn die Berechtigungen gültig sind, wird die AWS CloudFormation Bereitstellung durchgeführt. Die Speicherorte des Amazon S3 S3-Staging-Buckets und der Schlüssel werden als CloudFormation Parameter übergeben.

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