Questa è la guida per sviluppatori AWS CDK v2. La versione precedente della CDK versione 1 è entrata 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 CDK stack 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 CDKCLI
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 da. CDK
Per passare le variabili di ambiente, utilizzate le variabili di ambiente AWS_DEFAULT_ACCOUNT
andAWS_DEFAULT_REGION
. Queste variabili di ambiente possono trasmettere valori dai tuoi credentials
e dai tuoi config
file. Puoi anche utilizzare la logica all'interno CDK del codice 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 provenienti dai tuoi
config
filecredentials
e passate a CDK CLI utilizzando l'--profile
opzione. -
Il
default
profilo di Yourcredentials
andconfig
Files.
Quando specificare gli ambienti
Quando sviluppate conCDK, iniziate a definire gli CDK stack, che contengono costrutti che rappresentano AWS le risorse. Successivamente, si sintetizza ogni CDK pila in un modello. AWS CloudFormation Quindi distribuisci il CloudFormation modello nel tuo ambiente. Il modo in cui si specificano gli ambienti determina quando le informazioni sull'ambiente vengono applicate e può influire sul CDK comportamento e sui risultati.
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'opzione con --profile
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 l'implementazione dello stack
Se non specificate un ambiente utilizzando la env
proprietà del Stack
costrutto, 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 durante la distribuzione di un modello indipendente dall'ambiente, 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 CDK del codice: CDK_DEFAULT_ACCOUNT
eCDK_DEFAULT_REGION
. Quando utilizzate queste variabili di ambiente all'interno della env
proprietà della vostra 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 sintetizzare lo stesso CDK stack in AWS CloudFormation modelli per ambienti diversi. Ciò significa che puoi distribuire lo stesso CDK stack in AWS ambienti diversi senza dover modificare il codice. CDK Devi solo specificare il profilo da usare 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 CDK codice può sintetizzare modelli diversi, a seconda della macchina, 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 --profile
CDK CLI comando per specificare il profilo da utilizzare. Di seguito è riportato un esempio che distribuisce uno CDK stack denominato myStack
utilizzando il prod
profilo definito nei file credentials
andconfig
:
$
cdk deploy
myStack
--profileprod
Per ulteriori informazioni sull'--profile
opzione, insieme ad altre 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 the AWS CDK negli ambienti specificati.
Esempi
Sintetizza un modello indipendente dall'ambiente da uno stack CloudFormation CDK
In questo esempio, creiamo un modello indipendente dall'ambiente dal nostro stack. CloudFormation CDK Possiamo quindi distribuire questo modello in qualsiasi ambiente.
Quello che segue è il nostro CDK stack di esempio. 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 corriamocdk 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 ambientali 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: