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à.
Configurare gli ambienti da utilizzare con AWS CDK
È possibile configurare AWS gli ambienti in diversi modi da utilizzare con AWS Cloud Development Kit (AWS CDK). Il metodo migliore per gestire AWS gli ambienti varia in base alle esigenze specifiche.
Alla fine, ogni stack CDK dell'applicazione deve essere associato a un ambiente per determinare dove verrà distribuito lo stack.
Per un'introduzione agli AWS ambienti, vedere. Ambienti per AWS CDK
Argomenti
Da dove è possibile specificare gli ambienti
È possibile specificare gli ambienti nelle credenziali e nei file di configurazione oppure utilizzando la env
proprietà del costrutto della Stack
Construct Library AWS .
Credenziali e file di configurazione
È possibile utilizzare il AWS Command Line Interface comando (AWS CLI) per creare config
file credentials
e archiviare, organizzare e gestire le informazioni AWS sull'ambiente. Per ulteriori informazioni su questi file, consulta Impostazioni dei file di configurazione e credenziali nella Guida per l'AWS Command Line Interface utente.
I valori memorizzati in questi file sono organizzati per profili. Il modo in cui denominate i profili e le coppie chiave-valore in questi file varieranno in base al metodo di configurazione dell'accesso programmatico. Per ulteriori informazioni sui diversi metodi, consulta. Configurare le credenziali di sicurezza per AWS CDK CLI
In generale, AWS CDK risolve le Account AWS informazioni contenute nel credentials
file e le Regione AWS informazioni contenute nel fileconfig
.
Una volta configurati config
i file credentials
e i file, è possibile specificare l'ambiente da utilizzare con AWS CDK CLI e tramite variabili di ambiente.
proprietà env del costrutto Stack
È possibile specificare l'ambiente per ogni stack utilizzando la env
proprietà del costrutto. Stack
Questa proprietà definisce un account e una regione da utilizzare. È possibile passare valori codificati a questa proprietà o passare variabili di ambiente offerte dal CDK.
Per passare le variabili di ambiente, utilizzate le variabili di ambiente eAWS_DEFAULT_ACCOUNT
. AWS_DEFAULT_REGION
Queste variabili di ambiente possono trasmettere valori dai tuoi credentials
config
file. Puoi anche utilizzare la logica all'interno del codice CDK per determinare i valori di queste variabili di ambiente.
Precedenza dell'ambiente con AWS CDK
Se si utilizzano più metodi per specificare gli ambienti, AWS CDK rispetta la seguente precedenza:
-
Valori codificati specificati con la proprietà del costrutto.
env
Stack
-
AWS_DEFAULT_ACCOUNT
e variabili diAWS_DEFAULT_REGION
ambiente specificate con laenv
proprietà del costrutto.Stack
-
Informazioni sull'ambiente associate al profilo presenti nei
config
filecredentials
e trasmesse al CDK CLI utilizzando l'--profile
opzione. -
Il
default
profilo di Yourcredentials
andconfig
Files.
Quando specificare gli ambienti
Quando sviluppate con CDK, iniziate definendo gli stack CDK, che contengono costrutti che rappresentano le risorse. AWS Successivamente, si sintetizza ogni stack CDK in un modello. AWS CloudFormation Quindi distribuisci il modello nel CloudFormation tuo ambiente. Il modo in cui specificate gli ambienti determina quando le informazioni sull'ambiente vengono applicate e può influire sul comportamento e sui risultati di CDK.
Specificate gli ambienti durante la sintesi del modello
Quando si specificano informazioni sull'ambiente utilizzando la env
proprietà del Stack
costrutto, le informazioni sull'ambiente vengono applicate alla sintesi del modello. Esegue cdk synth
o cdk
deploy
produce un modello specifico per l'ambiente CloudFormation .
Se si utilizzano variabili di ambiente all'interno della env
proprietà, è necessario utilizzare l'--profile
opzione con CDK CLI comandi da passare nel profilo contenente le informazioni sull'ambiente ricavate dalle credenziali e dai file di configurazione. Queste informazioni verranno quindi applicate alla sintesi del modello per produrre un modello specifico per l'ambiente.
Le informazioni sull'ambiente contenute nel CloudFormation modello hanno la precedenza sugli altri metodi. Ad esempio, se si fornisce un ambiente diversocdk deploy --profile
, il profilo verrà ignorato.profile
Quando fornisci informazioni sull'ambiente in questo modo, puoi utilizzare codice e logica dipendenti dall'ambiente all'interno dell'app CDK. Ciò significa anche che il modello sintetizzato potrebbe essere diverso, in base alla macchina, all'utente o alla sessione in cui viene sintetizzato. Questo approccio è spesso accettabile o auspicabile durante lo sviluppo, ma non è consigliato per l'uso in produzione.
Specificate gli ambienti durante la distribuzione dello stack
Se non specificate un ambiente utilizzando la env
proprietà del Stack
costrutto, il CDK CLI produrrà un modello indipendente dall'ambiente al momento della sintesi CloudFormation . È quindi possibile specificare l'ambiente in cui eseguire la distribuzione utilizzando. cdk deploy --profile
profile
Se non si specifica un profilo quando si distribuisce un modello indipendente dall'ambiente, il CDK CLI tenterà di utilizzare i valori di ambiente del default
profilo dell'utente e dei file al momento della distribuzione. credentials
config
Se le informazioni sull'ambiente non sono disponibili al momento della distribuzione, AWS CloudFormation tenterà di risolvere le informazioni sull'ambiente durante la distribuzione tramite attributi relativi all'ambiente come stack.account
stack.region
, e. stack.availabilityZones
Per gli stack indipendenti dall'ambiente, i costrutti all'interno dello stack non possono utilizzare informazioni sull'ambiente e non è possibile utilizzare una logica che richieda informazioni sull'ambiente. Ad esempio, non è possibile scrivere codice simile if (stack.region ====
'us-east-1')
o utilizzare metodi di costruzione che richiedono informazioni sull'ambiente come. Vpc.fromLookup
Per utilizzare queste funzionalità, è necessario specificare un ambiente con la env
proprietà.
Per gli stack indipendenti dall'ambiente, qualsiasi costrutto che utilizza zone di disponibilità vedrà due zone di disponibilità, che consentono di distribuire lo stack in qualsiasi regione.
Come specificare gli ambienti con AWS CDK
Specificare ambienti codificati per ogni stack
Utilizzate la env
proprietà del Stack
costrutto per specificare i valori di AWS ambiente per il vostro stack. Di seguito è riportato un esempio:
Consigliamo questo approccio per gli ambienti di produzione. Specificando esplicitamente l'ambiente in questo modo, è possibile garantire che lo stack venga sempre distribuito nell'ambiente specifico.
Specificate gli ambienti utilizzando le variabili di ambiente
AWS CDK Fornisce due variabili di ambiente che è possibile utilizzare all'interno del codice CDK: CDK_DEFAULT_ACCOUNT
eCDK_DEFAULT_REGION
. Quando utilizzate queste variabili di ambiente all'interno della env
proprietà dell'istanza stack, potete passare le informazioni sull'ambiente dalle vostre credenziali e dai file di configurazione utilizzando il CDK CLI --profile
opzione.
Di seguito è riportato un esempio di come specificare queste variabili di ambiente:
Specificando gli ambienti utilizzando variabili di ambiente, è possibile fare in modo che lo stesso stack CDK venga sintetizzato in modelli per AWS CloudFormation ambienti diversi. Ciò significa che è possibile distribuire lo stesso stack CDK in AWS ambienti diversi senza dover modificare il codice CDK. È sufficiente specificare il profilo da utilizzare durante l'esecuzione. cdk synth
Questo approccio è ideale per gli ambienti di sviluppo quando si implementa lo stesso stack in ambienti diversi. Tuttavia, non consigliamo questo approccio per gli ambienti di produzione poiché lo stesso codice CDK può sintetizzare modelli diversi, a seconda del computer, dell'utente o della sessione in cui viene sintetizzato.
Specificate gli ambienti dalle vostre credenziali e dai file di configurazione con il CDK CLI
Quando implementate un modello indipendente dall'ambiente, utilizzate l'opzione con qualsiasi CDK --profile
CLI comando per specificare il profilo da utilizzare. Di seguito è riportato un esempio che implementa uno stack CDK denominato myStack
utilizzando il prod
profilo definito nei file and: credentials
config
$
cdk deploy
myStack
--profileprod
Per ulteriori informazioni sull'--profile
opzione, insieme ad altri CDK CLI comandi e opzioni, vedereAWS CDK CLI riferimento al comando.
Considerazioni relative alla configurazione degli ambienti con AWS CDK
I servizi definiti utilizzando costrutti all'interno degli stack devono supportare la regione in cui si esegue la distribuzione. Per un elenco dei servizi supportati Servizi AWS per regione, consulta AWS Servizi
È necessario disporre di credenziali AWS Identity and Access Management (IAM) valide per eseguire distribuzioni di stack con o AWS CDK negli ambienti specificati.
Esempi
Sintetizza un modello indipendente dall'ambiente da uno stack CDK CloudFormation
In questo esempio, creiamo un modello indipendente dall'ambiente dal nostro stack CDK. CloudFormation Possiamo quindi distribuire questo modello in qualsiasi ambiente.
Quello che segue è il nostro esempio di stack CDK. Questo stack definisce un bucket Amazon S3 e CloudFormation un output dello stack per la regione del bucket. Per questo esempio, non è definito: env
Quando eseguiamocdk synth
, il CDK CLI produce un CloudFormation modello con lo pseudo parametro AWS::Region
come valore di output per la regione del bucket. Questo parametro verrà risolto al momento della distribuzione:
Outputs: BucketRegion: Value: Ref: AWS::Region
Per distribuire questo stack in un ambiente specificato nel dev
profilo delle nostre credenziali e dei nostri file di configurazione, eseguiamo quanto segue:
$
cdk deploy CdkAppStack --profile dev
Se non specifichiamo un profilo, il CDK CLI tenterà di utilizzare le informazioni sull'ambiente del default
profilo nelle nostre credenziali e nei file di configurazione.
Usa la logica per determinare le informazioni sull'ambiente durante la sintesi del modello
In questo esempio, configuriamo la env
proprietà della nostra stack
istanza per utilizzare un'espressione valida. Specifichiamo due variabili di ambiente aggiuntive CDK_DEPLOY_ACCOUNT
eCDK_DEPLOY_REGION
. Queste variabili di ambiente possono sovrascrivere i valori predefiniti al momento della sintesi, se esistono:
Con l'ambiente del nostro stack dichiarato in questo modo, possiamo quindi scrivere un breve script o un file batch e impostare le variabili dagli argomenti della riga di comando, quindi chiamare. cdk deploy
Di seguito è riportato un esempio. Tutti gli argomenti oltre ai primi due vengono passati cdk deploy
a per specificare le opzioni o gli argomenti della riga di comando:
Possiamo quindi scrivere script aggiuntivi che utilizzano cdk-deploy-to
lo script per la distribuzione in ambienti specifici. Di seguito è riportato un esempio:
Di seguito è riportato un esempio che utilizza cdk-deploy-to
lo script per la distribuzione in più ambienti. Se la prima distribuzione fallisce, il processo si interrompe: