

Dies ist der AWS CDK v2-Entwicklerhandbuch. Das ältere CDK v1 wurde am 1. Juni 2022 gewartet 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.

# Passen Sie die CDK-Stack-Synthese an
<a name="customize-synth"></a>

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

Das AWS CDK umfasst die folgenden integrierten Synthesizer, mit denen Sie das Syntheseverhalten anpassen können:
+  [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizer.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizer.html)— Wenn Sie keinen Synthesizer angeben, wird dieser automatisch verwendet. Es unterstützt kontenübergreifende Bereitstellungen und Bereitstellungen, die das [CDK-Pipeline-Konstrukt](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.pipelines-readme.html) verwenden. Sein Bootstrap-Vertrag erfordert einen vorhandenen Amazon S3 S3-Bucket mit einem bekannten Namen, ein vorhandenes Amazon ECR-Repository mit einem bekannten Namen und fünf bestehende IAM-Rollen mit bekannten Namen. Die Standard-Bootstrapping-Vorlage erfüllt diese Anforderungen.
+  [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizer.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizer.html)— Für den Bootstrap-Vertrag dieses Synthesizers sind ein vorhandener Amazon S3 S3-Bucket und ein vorhandenes Amazon ECR-Repository erforderlich. Es sind keine IAM-Rollen erforderlich. Um Bereitstellungen durchzuführen, stützt sich dieser Synthesizer auf die Berechtigungen des CDK-CLI-Benutzers 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 CDK Pipelines.
+  [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.LegacyStackSynthesizer.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.LegacyStackSynthesizer.html)— Dieser Synthesizer emuliert das Syntheseverhalten von CDK v1. Sein Bootstrap-Vertrag erfordert einen vorhandenen Amazon S3 S3-Bucket mit einem beliebigen Namen und erwartet, dass die Speicherorte der Assets als CloudFormation Stack-Parameter übergeben werden. Wenn Sie diesen Synthesizer verwenden, müssen Sie die CDK-CLI verwenden, um die Bereitstellung durchzuführen.

[Wenn keiner dieser integrierten Synthesizer für Ihren Anwendungsfall geeignet ist, können Sie Ihren eigenen Synthesizer als Klasse schreiben, die Synthesizer im Construct Hub implementiert `IStackSynthesizer` oder sich diese anschaut.](https://constructs.dev/search?q=synthesizer&cdk=aws-cdk)

## Anpassen der `DefaultStackSynthesizer`
<a name="bootstrapping-custom-synth-default"></a>

Das `DefaultStackSynthesizer` ist der Standard-Synthesizer für das CDK. AWS Er wurde entwickelt, um kontenübergreifende Bereitstellungen von CDK-Anwendungen sowie die Bereitstellung von CDK-Apps von einem CI/CD-System aus zu ermöglichen, das CDK nicht ausdrücklich unterstützt, aber reguläre Bereitstellungen unterstützt, wie AWS z. CloudFormation AWS CodePipeline Dieser Synthesizer ist für die meisten Anwendungsfälle die beste Option.

### `DefaultStackSynthesizer`Bootstrap-Vertrag
<a name="bootstrapping-custom-synth-default-contract"></a>

 `DefaultStackSynthesizer`erfordert 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  |  <ACCOUNT>cdk-hnb659fds-Vermögenswerte- - <REGION>  |  Speichert Datei-Assets.  | 
|  Amazon ECR-Repository  |  Staging-Repository  |  <ACCOUNT>cdk-hnb659 - - fds-container-assets <REGION>  |  Speichert und verwaltet Docker-Image-Assets.  | 
|  IAM-Rolle  |  Rolle bereitstellen  |  <ACCOUNT>cdk-hnb659 - fds-deploy-role - <REGION>  |  Wird von der CDK-CLI übernommen und möglicherweise CodePipeline , um andere Rollen zu übernehmen und die AWS CloudFormation Bereitstellung zu starten. Die Vertrauensrichtlinie dieser Rolle steuert, wer das AWS CDK in dieser AWS Umgebung bereitstellen kann.  | 
|  IAM-Rolle  |   AWS CloudFormation Rolle „Ausführung“  |  <ACCOUNT>cdk-hnb659 - fds-cfn-exec-role - <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“  |  <ACCOUNT>cdk-hnb659 - fds-lookup-role - <REGION>  |  Diese Rolle wird verwendet, wenn die CDK-CLI nach Umgebungskontexten suchen muss. Die Vertrauensrichtlinie dieser Rolle steuert, wer Informationen in der Umgebung nachschlagen kann.  | 
|  IAM-Rolle  |  Rolle beim Veröffentlichen von Dateien  |  <ACCOUNT>cdk-hnb659 - fds-file-publishing-role - <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  |  <ACCOUNT>cdk-hnb659 - fds-image-publishing-role - <REGION>  |  Diese Rolle wird verwendet, um Docker-Images in das Amazon ECR-Staging-Repository hochzuladen. Sie wird von der Bereitstellungsrolle übernommen.  | 
|  SSM-Parameter  |  Bootstrap-Versionsparameter  |  /cdk-bootstrap/hnb659fds/ <version>  |  Die Version der Bootstrap-Vorlage. Es wird von der Bootstrap-Vorlage und der CDK-CLI verwendet, um Anforderungen zu validieren.  | 

Eine Möglichkeit, die CDK-Stack-Synthese anzupassen, besteht darin, die zu ändern. [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizer.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizer.html) Sie können diesen Synthesizer mithilfe der `synthesizer` Eigenschaft Ihrer Instanz für einen einzelnen CDK-Stack anpassen. `Stack` Sie können ihn auch `DefaultStackSynthesizer` für alle Stacks in Ihrer CDK-App ändern, indem Sie die `defaultStackSynthesizer` Eigenschaft Ihrer Instanz verwenden. `App`

### Ändern Sie den Qualifier
<a name="bootstrapping-custom-synth-qualifiers"></a>

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 CDK-Projekts. `cdk.json`

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

**Example**  

```
new MyStack(this, 'MyStack', {
  synthesizer: new DefaultStackSynthesizer({
    qualifier: 'MYQUALIFIER',
  }),
});
```

```
new MyStack(this, 'MyStack', {
  synthesizer: new DefaultStackSynthesizer({
    qualifier: 'MYQUALIFIER',
  }),
})
```

```
MyStack(self, "MyStack",
    synthesizer=DefaultStackSynthesizer(
        qualifier="MYQUALIFIER"
))
```

```
new MyStack(app, "MyStack", StackProps.builder()
  .synthesizer(DefaultStackSynthesizer.Builder.create()
    .qualifier("MYQUALIFIER")
    .build())
  .build();
)
```

```
new MyStack(app, "MyStack", new StackProps
{
    Synthesizer = new DefaultStackSynthesizer(new DefaultStackSynthesizerProps
    {
        Qualifier = "MYQUALIFIER"
    })
});
```

```
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
}
```

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

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

### Ressourcennamen ändern
<a name="bootstrapping-custom-synth-names"></a>

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 durch die Werte des `qualifier` Parameters bzw. die Werte für AWS Partition, Konto-ID und AWS Region 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: [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizerProps.html#properties](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.DefaultStackSynthesizerProps.html#properties)

**Example**  

```
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,

})
```

```
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,
})
```

```
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,
)
```

```
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()
```

```
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,
})
```

## Verwenden von `CliCredentialsStackSynthesizer`
<a name="bootstrapping-custom-synth-cli"></a>

Um die Sicherheitsanmeldedaten zu ändern, die zur Erteilung von Berechtigungen bei CDK-Bereitstellungen verwendet werden, können Sie die Synthese anpassen, indem Sie [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizer.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizer.html) 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 ECR-Repository. Anstatt die vom CDK beim Bootstrapping erstellten Standard-IAM-Rollen zu verwenden, werden die Sicherheitsanmeldedaten des Akteurs verwendet, 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:

![\[Bereitstellungsprozess mit dem CLICredentialsStackSynthesizer.\]](http://docs.aws.amazon.com/de_de/cdk/v2/guide/images/CliCredentialsStackSynthesizer-deploy-process_cdk_flowchart.png)


Bei der Verwendung von`CliCredentialsStackSynthesizer`:
+  CloudFormation Führt standardmäßig API-Aufrufe in Ihrem Konto 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 Berechtigungen zum Ausführen der erforderlichen CloudFormation Operationen wie `CreateStack` oder`UpdateStack`. 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`](ref-cli-cmd.md#ref-cli-cmd-options-role-arn)Option mit einem beliebigen CDK-CLI-Befehl angeben.

### `CliCredentialsStackSynthesizer`Bootstrap-Vertrag
<a name="bootstrapping-custom-synth-cli-contract"></a>

 `CliCredentialsStackSynthesizer`erfordert 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  |  <ACCOUNT>cdk-hnb659fds-Vermögenswerte- - <REGION>  |  Speichert Datei-Assets.  | 
|  Amazon ECR-Repository  |  Staging-Repository  |  <ACCOUNT>cdk-hnb659 - - fds-container-assets <REGION>  |  Speichert und verwaltet Docker-Image-Assets.  | 

Die Zeichenfolge `hnb659fds` im Ressourcennamen wird als *Qualifier* bezeichnet. 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 IAM-Rollen zu entfernen.

### Ändern von `CliCredentialsStackSynthesizer`
<a name="bootstrapping-custom-synth-cli-modify"></a>

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:

**Example**  

```
new MyStack(this, 'MyStack', {
  synthesizer: new CliCredentialsStackSynthesizer({
    qualifier: 'MYQUALIFIER',
  }),
});
```

```
new MyStack(this, 'MyStack', {
  synthesizer: new CliCredentialsStackSynthesizer({
    qualifier: 'MYQUALIFIER',
  }),
})
```

```
MyStack(self, "MyStack",
    synthesizer=CliCredentialsStackSynthesizer(
        qualifier="MYQUALIFIER"
))
```

```
new MyStack(app, "MyStack", StackProps.builder()
  .synthesizer(CliCredentialsStackSynthesizer.Builder.create()
    .qualifier("MYQUALIFIER")
    .build())
  .build();
)
```

```
new MyStack(app, "MyStack", new StackProps
{
    Synthesizer = new CliCredentialsStackSynthesizer(new CliCredentialsStackSynthesizerProps
    {
        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 [https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizerProps.html](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CliCredentialsStackSynthesizerProps.html):

**Example**  

```
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: '',
})
```

```
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: '',
})
```

```
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="",
)
```

```
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()
```

```
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 = "",
})
```

## Verwenden von `LegacyStackSynthesizer`
<a name="bootstrapping-custom-synth-legacy"></a>

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 muss`CDKToolkit`. Die CDK-CLI erstellt ein nicht verwaltetes Amazon ECR-Repository, das `aws-cdk/assets` zum Speichern von Docker-Image-Assets benannt ist. Sie sind dafür verantwortlich, dieses Repository zu bereinigen und zu verwalten. Stacks, die mit dem synthetisiert wurden, `LegacyStackSynthesizer` können nur mit der CDK-CLI bereitgestellt werden.

Sie können den verwenden, `LegacyStackSynthesizer` wenn Sie von CDK v1 zu CDK v2 migrieren und Ihre Umgebungen nicht neu booten können. Für neue Projekte empfehlen wir, sie nicht zu verwenden. `LegacyStackSynthesizer`

### `LegacyStackSynthesizer`Bootstrap-Vertrag
<a name="bootstrapping-custom-synth-legacy-contract"></a>

 `LegacyStackSynthesizer`erfordert 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  |  <ACCOUNT>cdk-hnb659fds-Vermögenswerte- - <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 Amazon ECR-Repository mit dem Namen `aws-cdk/assets` veröffentlicht. 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 haben`BucketName`, 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 ECR-, IAM- und SSM-Bootstrap-Ressourcen zu entfernen.

### `LegacyStackSynthesizer`Bereitstellungsprozess
<a name="bootstrapping-custom-synth-legacy-deploy"></a>

Wenn Sie diesen Synthesizer verwenden, wird während der Bereitstellung der folgende Vorgang ausgeführt:
+ Das CDK CLI sucht nach einem CloudFormation Stack, der `CDKToolkit` in Ihrer Umgebung benannt ist. Aus diesem Stapel stammt das CDK CLI liest die angegebene CloudFormation `BucketName` Ausgabe. Sie können die `--toolkit-stack-name` Option with verwenden`cdk 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 Amazon ECR-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.