Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Personalizza la sintesi dello stack CDK

Modalità Focus
Personalizza la sintesi dello stack CDK - AWS Cloud Development Kit (AWS CDK) v2

Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

È possibile personalizzare la sintesi AWS Cloud Development Kit (AWS CDK) dello stack modificando il sintetizzatore predefinito, utilizzando altri sintetizzatori integrati disponibili o creando un sintetizzatore personalizzato.

AWS CDK Include i seguenti sintetizzatori integrati che è possibile utilizzare per personalizzare il comportamento di sintesi:

  • DefaultStackSynthesizer— Se non si specifica un sintetizzatore, questo viene utilizzato automaticamente. Supporta distribuzioni e distribuzioni tra account utilizzando il costrutto CDK Pipelines. Il contratto bootstrap richiede un bucket Amazon S3 esistente con un nome noto, un repository Amazon ECR esistente con un nome noto e cinque ruoli IAM esistenti con nomi noti. Il modello di bootstrap predefinito soddisfa questi requisiti.

  • CliCredentialsStackSynthesizer— Il contratto bootstrap di questo sintetizzatore richiede un bucket Amazon S3 esistente e un repository Amazon ECR esistente. Non richiede alcun ruolo IAM. Per eseguire le distribuzioni, questo sintetizzatore si basa sulle autorizzazioni del CDK CLI utente ed è consigliato per le organizzazioni che desiderano limitare le credenziali di distribuzione IAM. Questo sintetizzatore non supporta distribuzioni tra account o CDK Pipelines.

  • LegacyStackSynthesizer— Questo sintetizzatore emula il comportamento di sintesi CDK v1. Il suo contratto bootstrap richiede un bucket Amazon S3 esistente con un nome arbitrario e prevede che le posizioni degli asset vengano passate come parametri dello stack. CloudFormation Se usi questo sintetizzatore, devi usare il CDK CLI per eseguire la distribuzione.

Se nessuno di questi sintetizzatori integrati è adatto al vostro caso d'uso, potete scrivere il vostro sintetizzatore come classe che implementa IStackSynthesizer o utilizza i sintetizzatori del Construct Hub.

Personalizzazione di DefaultStackSynthesizer

È DefaultStackSynthesizer il sintetizzatore predefinito per. AWS CDKÈ progettato per consentire la distribuzione di applicazioni CDK su più account, nonché la distribuzione di app CDK da un sistema CI/CD che non supporta esplicitamente, ma supporta distribuzioni regolari, come. AWS CDK CloudFormation AWS CodePipeline Questo sintetizzatore è l'opzione migliore per la maggior parte dei casi d'uso.

DefaultStackSynthesizercontratto bootstrap

DefaultStackSynthesizerrichiede il seguente contratto bootstrap. Queste sono le risorse che devono essere create durante il bootstrap:

Risorsa Bootstrap Descrizione Nome predefinito della risorsa prevista Scopo

Bucket Amazon S3

Secchio di staging

cdk-hnb659fds-assets- - ACCOUNT REGION

Memorizza le risorse dei file.

Repository Amazon ECR

Archivio di staging

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

Archivia e gestisce Docker risorse di immagini.

Ruolo IAM

Implementa il ruolo

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

Assunto dal CDK CLI e potenzialmente CodePipeline per assumere altri ruoli e avviare la AWS CloudFormation distribuzione.

La politica di fiducia di questo ruolo controlla chi può utilizzare il servizio AWS CDK in questo AWS ambiente.

Ruolo IAM

AWS CloudFormation ruolo di esecuzione

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

Questo ruolo viene utilizzato da AWS CloudFormation per eseguire la distribuzione.

Le politiche di questo ruolo controllano le operazioni che la distribuzione CDK può eseguire.

Ruolo IAM

Ruolo di ricerca

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

Questo ruolo viene utilizzato quando il CDK CLI deve eseguire ricerche nel contesto ambientale.

La politica di fiducia di questo ruolo controlla chi può cercare informazioni nell'ambiente.

Ruolo IAM

Ruolo di pubblicazione di file

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

Questo ruolo viene utilizzato per caricare risorse nel bucket di staging di Amazon S3. Viene assunto dal ruolo di distribuzione.

Ruolo IAM

Ruolo di pubblicazione di immagini

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

Questo ruolo viene utilizzato per il caricamento Docker immagini nell'archivio di staging di Amazon ECR. Viene assunto dal ruolo di implementazione.

Parametro SSM

Parametro della versione Bootstrap

/cdk-bootstrap/hnb659fds/ version

La versione del modello bootstrap. Viene utilizzata dal modello di bootstrap e dal CDK CLI per convalidare i requisiti.

Un modo per personalizzare la sintesi dello stack CDK consiste nel modificare il. DefaultStackSynthesizer Puoi personalizzare questo sintetizzatore per un singolo stack CDK utilizzando la proprietà della tua istanza. synthesizer Stack Puoi anche modificare tutti DefaultStackSynthesizer gli stack nell'app CDK utilizzando la proprietà dell'istanza. defaultStackSynthesizer App

Cambia il qualificatore

Il qualificatore viene aggiunto al nome delle risorse create durante il bootstrap. Di default, il valore è hnb659fds. Quando modificate il qualificatore durante il bootstrap, dovete personalizzare la sintesi dello stack CDK per utilizzare lo stesso qualificatore.

Per modificare il qualificatore, configurate la qualifier proprietà DefaultStackSynthesizer o configurate il qualificatore come chiave di contesto nel file del progetto CDK. cdk.json

Di seguito è riportato un esempio di configurazione della proprietà di: qualifier 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', }), });

Di seguito è riportato un esempio di configurazione del qualificatore come chiave di contesto in: cdk.json

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

Modificare i nomi delle risorse

Tutte le altre DefaultStackSynthesizer proprietà si riferiscono ai nomi delle risorse nel modello di bootstrap. È necessario fornire una di queste proprietà solo se si è modificato il modello di bootstrap e si sono modificati i nomi delle risorse o lo schema di denominazione.

Tutte le proprietà accettano i segnaposto speciali${Qualifier},, e${AWS::Partition}. ${AWS::AccountId} ${AWS::Region} Questi segnaposto vengono sostituiti rispettivamente dai valori del qualifier parametro e dalla AWS partizione, dall'ID dell'account e dai Regione AWS valori per l'ambiente dello stack.

L'esempio seguente mostra le proprietà più comunemente utilizzate DefaultStackSynthesizer insieme ai relativi valori predefiniti, come se si stesse istanziando il sintetizzatore. Per un elenco completo, consulta: 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, })

Utilizzare CliCredentialsStackSynthesizer

Per modificare le credenziali di sicurezza utilizzate per fornire le autorizzazioni durante le distribuzioni CDK, è possibile personalizzare la sintesi utilizzando. CliCredentialsStackSynthesizer Questo sintetizzatore funziona con AWS le risorse predefinite create durante il bootstrap per archiviare le risorse, come il bucket Amazon S3 e il repository Amazon ECR. Invece di utilizzare i ruoli IAM predefiniti creati dal CDK durante il bootstrap, utilizza le credenziali di sicurezza dell'attore che avvia la distribuzione. Pertanto, le credenziali di sicurezza dell'attore devono disporre di autorizzazioni valide per eseguire tutte le azioni di distribuzione. Il diagramma seguente illustra il processo di distribuzione quando si utilizza questo sintetizzatore:

Diagramma di flusso del processo di distribuzione predefinito. AWS CDK

Quando si utilizzaCliCredentialsStackSynthesizer:

  • Per impostazione predefinita, CloudFormation esegue chiamate API nel tuo account utilizzando le autorizzazioni dell'attore. Pertanto, l'identità corrente deve disporre dell'autorizzazione per apportare le modifiche necessarie alle AWS risorse dello CloudFormation stack, oltre alle autorizzazioni per eseguire le CloudFormation operazioni necessarie, come o. CreateStack UpdateStack Le funzionalità di distribuzione saranno limitate alle autorizzazioni dell'attore.

  • La pubblicazione e la CloudFormation distribuzione delle risorse verranno eseguite utilizzando l'attuale identità IAM. Questa identità deve disporre di autorizzazioni sufficienti sia per la lettura che per la scrittura nell'asset bucket e nell'archivio.

  • Le ricerche vengono eseguite utilizzando l'identità IAM corrente e le ricerche sono soggette alle relative politiche.

Quando si utilizza questo sintetizzatore, è possibile utilizzare un ruolo di CloudFormation esecuzione separato specificandolo utilizzando l'opzione con qualsiasi CDK --role-arn CLI comando.

CliCredentialsStackSynthesizercontratto bootstrap

CliCredentialsStackSynthesizerrichiede il seguente contratto bootstrap. Queste sono le risorse che devono essere create durante il bootstrap:

Risorsa Bootstrap Descrizione Nome predefinito della risorsa prevista Scopo

Bucket Amazon S3

Secchio di staging

cdk-hnb659fds-assets- - ACCOUNT REGION

Memorizza le risorse dei file.

Repository Amazon ECR

Archivio di staging

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

Archivia e gestisce Docker risorse di immagini.

La stringa hnb659fds nel nome della risorsa è denominata qualificatore. Il suo valore predefinito non ha alcun significato particolare. È possibile avere più copie delle risorse di bootstrap in un unico ambiente purché abbiano un qualificatore diverso. Avere più copie può essere utile per tenere separate le risorse di diverse applicazioni nello stesso ambiente.

È possibile implementare il modello di bootstrap predefinito per soddisfare il contratto CliCredentialsStackSynthesizer bootstrap. Il modello di bootstrap predefinito creerà i ruoli IAM, ma questo sintetizzatore non li utilizzerà. Puoi anche personalizzare il modello di bootstrap per rimuovere i ruoli IAM.

Modificare le CliCredentialsStackSynthesizer

Se modifichi il qualificatore o uno qualsiasi dei nomi di risorse bootstrap predefiniti durante il bootstrap, devi modificare il sintetizzatore in modo che utilizzi gli stessi nomi. Puoi modificare il sintetizzatore per un singolo stack o per tutti gli stack dell'app. Di seguito è riportato un esempio:

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

L'esempio seguente mostra le proprietà più comunemente utilizzate per CliCredentialsStackSynthesizer insieme ai relativi valori predefiniti. Per un elenco completo, vedere 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: '', })

Utilizzare LegacyStackSynthesizer

LegacyStackSynthesizerEmula il comportamento delle distribuzioni CDK v1. Le credenziali di sicurezza dell'attore che esegue la distribuzione verranno utilizzate per stabilire le autorizzazioni. Le risorse dei file verranno caricate in un bucket che deve essere creato utilizzando uno AWS CloudFormation stack denominato. CDKToolkit Il CDK CLI creerà un repository Amazon ECR non gestito denominato store aws-cdk/assets Docker risorse di immagini. Sarai responsabile della pulizia e della gestione di questo repository. Gli stack sintetizzati utilizzando il LegacyStackSynthesizer possono essere distribuiti solo utilizzando il CDK CLI.

Puoi utilizzarlo LegacyStackSynthesizer se stai migrando da CDK v1 a CDK v2 e non riesci a riavviare i tuoi ambienti. Per i nuovi progetti, si consiglia di non utilizzarlo. LegacyStackSynthesizer

LegacyStackSynthesizercontratto bootstrap

LegacyStackSynthesizerrichiede il seguente contratto bootstrap. Queste sono le risorse che devono essere create durante il bootstrap:

Risorsa Bootstrap Descrizione Nome predefinito della risorsa prevista Scopo

Bucket Amazon S3

Secchio di staging

cdk-hnb659fds-assets- - ACCOUNT REGION

Memorizza le risorse dei file.

CloudFormation uscita

Uscita del nome del bucket

Pila — CDKToolkit

Nome dell'output — BucketName

Un CloudFormation output che descrive il nome del bucket di staging

LegacyStackSynthesizerNon presuppone l'esistenza di un bucket Amazon S3 con un nome fisso. Il CloudFormation modello sintetizzato conterrà invece tre CloudFormation parametri per ogni asset di file. Questi parametri memorizzeranno il nome del bucket Amazon S3, la chiave dell'oggetto Amazon S3 e l'hash degli artefatti per ogni asset di file.

Docker le risorse di immagini verranno pubblicate in un repository Amazon ECR denominato. aws-cdk/assets Questo nome può essere modificato per risorsa. I repository verranno creati se non esistono.

Deve esistere uno CloudFormation stack con il nome predefinito. CDKToolkit Questo stack deve avere un nome di CloudFormation esportazione BucketName che si riferisca allo staging bucket.

Il modello di bootstrap predefinito soddisfa il contratto bootstrap. LegacyStackSynthesizer Tuttavia, verrà utilizzato solo il bucket Amazon S3 contenuto nelle risorse di bootstrap del modello di bootstrap. Puoi personalizzare il modello di bootstrap per rimuovere le risorse di bootstrap di Amazon ECR, IAM e SSM.

LegacyStackSynthesizerprocesso di distribuzione

Quando si utilizza questo sintetizzatore, durante la distribuzione viene eseguito il seguente processo:

  • Il CDK CLI cerca uno CloudFormation stack denominato CDKToolkit nel tuo ambiente. Da questo stack, il CDK CLI legge l'output denominato. CloudFormation BucketName È possibile utilizzare l'--toolkit-stack-nameopzione con cdk deploy per specificare un nome di pila diverso.

  • Le credenziali di sicurezza dell'attore che avvia la distribuzione verranno utilizzate per stabilire le autorizzazioni per la distribuzione. Pertanto, l'attore deve disporre di autorizzazioni sufficienti per eseguire tutte le azioni di distribuzione. Ciò include la lettura e la scrittura nel bucket di staging Amazon S3, la creazione e la scrittura nel repository Amazon ECR, l'avvio e il monitoraggio delle AWS CloudFormation distribuzioni e l'esecuzione di tutte le chiamate API necessarie per la distribuzione.

  • Se necessario e se le autorizzazioni sono valide, gli asset di file verranno pubblicati nel bucket di staging di Amazon S3.

  • Se necessario e se le autorizzazioni sono valide, Docker le risorse di immagini vengono pubblicate nell'archivio denominato dalla repositoryName proprietà della risorsa. Il valore predefinito è 'aws-cdk/assets' se non fornite un nome per il repository.

  • Se le autorizzazioni sono valide, viene eseguita la AWS CloudFormation distribuzione. Le posizioni del bucket di staging e delle chiavi di Amazon S3 vengono passate come parametri. CloudFormation

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.