Parametri - 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à.

Parametri

I parametri sono valori personalizzati forniti al momento della distribuzione. I parametri sono una funzionalità di AWS CloudFormation. Poiché AWS Cloud Development Kit (AWS CDK) sintetizza i AWS CloudFormation modelli, offre anche supporto per i parametri relativi al tempo di implementazione.

Informazioni sui parametri

Utilizzando AWS CDK, è possibile definire i parametri, che possono quindi essere utilizzati nelle proprietà dei costrutti creati. È inoltre possibile distribuire pile che contengono parametri.

Quando si distribuisce il AWS CloudFormation modello utilizzando il AWS CDK Toolkit, si forniscono i valori dei parametri sulla riga di comando. Se si distribuisce il modello tramite la AWS CloudFormation console, vengono richiesti i valori dei parametri.

In generale, si sconsiglia di utilizzare AWS CloudFormation parametri con. AWS CDK I metodi usuali per passare valori nelle AWS CDK app sono i valori di contesto e le variabili di ambiente. Poiché non sono disponibili al momento della sintesi, i valori dei parametri non possono essere utilizzati facilmente per il controllo del flusso e per altri scopi nell'app CDK.

Nota

Per controllare il flusso con i parametri, è possibile utilizzare CfnConditioni costrutti, sebbene ciò sia scomodo rispetto alle istruzioni native. if

L'utilizzo dei parametri richiede di prestare attenzione al comportamento del codice che state scrivendo al momento della distribuzione e anche in fase di sintesi. Ciò rende più difficile comprendere e ragionare sull' AWS CDK applicazione, in molti casi con scarsi vantaggi.

In genere, è meglio fare in modo che l'app CDK accetti le informazioni necessarie in un modo ben definito e le utilizzi direttamente per dichiarare i costrutti nell'app CDK. Un AWS CloudFormation modello ideale AWS CDK generato è concreto, senza altri valori da specificare al momento dell'implementazione.

Esistono, tuttavia, casi d'uso per i quali AWS CloudFormation i parametri si adattano in modo univoco. Se disponi di team separati che definiscono e implementano l'infrastruttura, ad esempio, puoi utilizzare i parametri per rendere i modelli generati più utili. Inoltre, poiché AWS CDK supporta i AWS CloudFormation parametri, è possibile utilizzarli AWS CDK con AWS servizi che utilizzano AWS CloudFormation modelli (come Service Catalog). Questi AWS servizi utilizzano parametri per configurare il modello che viene distribuito.

Definizione dei parametri

Utilizzate la CfnParameterclasse per definire un parametro. Ti consigliamo di specificare almeno un tipo e una descrizione per la maggior parte dei parametri, sebbene entrambi siano tecnicamente opzionali. La descrizione viene visualizzata quando all'utente viene richiesto di immettere il valore del parametro nella AWS CloudFormation console. Per ulteriori informazioni sui tipi disponibili, vedere Tipi.

Nota

È possibile definire i parametri in qualsiasi ambito. Tuttavia, consigliamo di definire i parametri a livello di stack in modo che il loro ID logico non cambi quando rifattorizzate il codice.

TypeScript
const uploadBucketName = new CfnParameter(this, "uploadBucketName", { type: "String", description: "The name of the Amazon S3 bucket where uploaded files will be stored."});
JavaScript
const uploadBucketName = new CfnParameter(this, "uploadBucketName", { type: "String", description: "The name of the Amazon S3 bucket where uploaded files will be stored."});
Python
upload_bucket_name = CfnParameter(self, "uploadBucketName", type="String", description="The name of the Amazon S3 bucket where uploaded files will be stored.")
Java
CfnParameter uploadBucketName = CfnParameter.Builder.create(this, "uploadBucketName") .type("String") .description("The name of the Amazon S3 bucket where uploaded files will be stored") .build();
C#
var uploadBucketName = new CfnParameter(this, "uploadBucketName", new CfnParameterProps { Type = "String", Description = "The name of the Amazon S3 bucket where uploaded files will be stored" });

Utilizzo dei parametri

Un'CfnParameteristanza espone il suo valore all' AWS CDK app tramite un token. Come tutti i token, il token del parametro viene risolto al momento della sintesi. Ma si risolve in un riferimento al parametro definito nel AWS CloudFormation modello (che verrà risolto al momento della distribuzione), piuttosto che a un valore concreto.

È possibile recuperare il token come istanza della Token classe o in una stringa, in un elenco di stringhe o in una codifica numerica. La scelta dipende dal tipo di valore richiesto dalla classe o dal metodo con cui si desidera utilizzare il parametro.

TypeScript
Property kind of value
value Token class instance
valueAsList The token represented as a string list
valueAsNumber The token represented as a number
valueAsString The token represented as a string
JavaScript
Property kind of value
value Token class instance
valueAsList The token represented as a string list
valueAsNumber The token represented as a number
valueAsString The token represented as a string
Python
Property kind of value
value Token class instance
valore_come_lista The token represented as a string list
valore_come_numero The token represented as a number
valore_come_stringa The token represented as a string
Java
Property kind of value
recuperaValore () Token class instance
getValueAsElenco () The token represented as a string list
getValueAsNumero () The token represented as a number
getValueAsStringa () The token represented as a string
C#
Property kind of value
Valore Token class instance
ValueAsList The token represented as a string list
ValueAsNumber The token represented as a number
ValueAsString The token represented as a string

Ad esempio, per utilizzare un parametro in una Bucket definizione:

TypeScript
const bucket = new Bucket(this, "myBucket", { bucketName: uploadBucketName.valueAsString});
JavaScript
const bucket = new Bucket(this, "myBucket", { bucketName: uploadBucketName.valueAsString});
Python
bucket = Bucket(self, "myBucket", bucket_name=upload_bucket_name.value_as_string)
Java
Bucket bucket = Bucket.Builder.create(this, "myBucket") .bucketName(uploadBucketName.getValueAsString()) .build();
C#
var bucket = new Bucket(this, "myBucket") { BucketName = uploadBucketName.ValueAsString };

Distribuzione con parametri

Un modello generato contenente parametri può essere distribuito nel modo consueto tramite la AWS CloudFormation console. Ti vengono richiesti i valori di ogni parametro.

Il AWS CDK Toolkit (strumento da riga di cdk comando) supporta anche la specificazione dei parametri al momento della distribuzione. Questi vengono forniti sulla riga di comando dopo il --parameters flag. È possibile distribuire uno stack che utilizza il uploadBucketName parametro, come nell'esempio seguente.

cdk deploy MyStack --parameters uploadBucketName=uploadbucket

Per definire più parametri, utilizzate più --parameters flag.

cdk deploy MyStack --parameters uploadBucketName=upbucket --parameters downloadBucketName=downbucket

Se state distribuendo più stack, potete specificare un valore diverso di ogni parametro per ogni stack. A tale scopo, aggiungete al nome del parametro il nome dello stack e i due punti.

cdk deploy MyStack YourStack --parameters MyStack:uploadBucketName=uploadbucket --parameters YourStack:uploadBucketName=upbucket

Per impostazione predefinita, AWS CDK conserva i valori dei parametri delle distribuzioni precedenti e li utilizza nelle distribuzioni successive se non vengono specificati in modo esplicito. Utilizzate il --no-previous-parameters flag per richiedere che tutti i parametri siano specificati.