Esta es la guía para AWS CDK desarrolladores de la versión 2. La versión anterior del CDK v1 entró en mantenimiento el 1 de junio de 2022 y dejó de ofrecer soporte el 1 de junio de 2023.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configure los entornos para usarlos con el AWS CDK
Puede configurar AWS los entornos de varias maneras para usarlos con AWS Cloud Development Kit (AWS CDK). El mejor método de administración de AWS los entornos variará en función de sus necesidades específicas.
Cada pila de CDK de su aplicación debe asociarse eventualmente a un entorno para determinar dónde se implementará la pila.
Para obtener una introducción a los AWS entornos, consulteEntornos.
Temas
Dónde puede especificar los entornos
Puede especificar los entornos en los archivos de credenciales y configuración, o bien mediante la env
propiedad del componente fijo Stack
de la biblioteca de AWS componentes fijos.
Credenciales y archivos de configuración
Puede usar AWS Command Line Interface (AWS CLI) para crear credentials
config
archivos que almacenen, organicen y administren la información de su AWS entorno. Para obtener más información sobre estos archivos, consulte los ajustes de configuración y de los archivos de credenciales en la Guía del AWS Command Line Interface usuario.
Los valores almacenados en estos archivos se organizan por perfiles. La forma en que nombre sus perfiles y los pares clave-valor de estos archivos variarán en función del método que utilice para configurar el acceso mediante programación. Para obtener más información sobre los distintos métodos, consulte. Configure las credenciales de seguridad para el AWS CDKCLI
En general, AWS CDK resuelve la Cuenta de AWS información de su credentials
archivo y la Región de AWS información de su config
archivo.
Una vez configurados sus config
archivos credentials
y, puede especificar el entorno que se va a utilizar con las variables de entorno AWS CDK CLI y de paso.
propiedad env de la construcción Stack
Puede especificar el entorno de cada pila mediante la env
propiedad de la Stack
construcción. Esta propiedad define la cuenta y la región que se van a utilizar. Puede pasar valores codificados a esta propiedad o transferir variables de entorno que ofrece la CDK.
Para transferir variables de entorno, utilice las variables de AWS_DEFAULT_REGION
entorno AWS_DEFAULT_ACCOUNT
y. Estas variables de entorno pueden transmitir valores de sus config
archivos credentials
y. También puede utilizar la lógica del código CDK para determinar los valores de estas variables de entorno.
Prioridad del entorno con respecto a AWS CDK
Si utiliza varios métodos para especificar entornos, AWS CDK se sigue la siguiente prioridad:
-
Valores codificados de forma rígida especificados con la
env
propiedad del componente fijo.Stack
-
AWS_DEFAULT_ACCOUNT
y variables deAWS_DEFAULT_REGION
entorno especificadas con laenv
propiedad de laStack
construcción. -
La información de entorno asociada al perfil proviene de sus
config
archivoscredentials
y se transfiere a la CDK CLI mediante la--profile
opción. -
El
default
perfil de susconfig
archivoscredentials
y.
Cuándo especificar los entornos
Cuando se desarrolla con la CDK, se empieza por definir las pilas de CDK, que contienen construcciones que representan los recursos. AWS A continuación, se sintetiza cada pila de CDK en una plantilla. AWS CloudFormation A continuación, implementa la CloudFormation plantilla en su entorno. La forma en que especifique los entornos determina cuándo se aplica la información del entorno y puede afectar al comportamiento y los resultados de las CDK.
Especifique los entornos en la síntesis de la plantilla
Al especificar la información del entorno mediante la env
propiedad de la Stack
construcción, la información del entorno se aplica en la síntesis de la plantilla. Ejecuta cdk synth
o cdk
deploy
produce una plantilla específica del entorno CloudFormation .
Si usa variables de entorno dentro de la env
propiedad, debe usar la --profile
opción con CLI comandos CDK para transferir el perfil que contiene la información de entorno de sus credenciales y archivos de configuración. Luego, esta información se aplicará en la síntesis de la plantilla para producir una plantilla específica para el entorno.
La información ambiental incluida en la CloudFormation plantilla tiene prioridad sobre otros métodos. Por ejemplo, si proporciona un entorno diferentecdk deploy --profile
, se ignorará el perfil.profile
Si proporciona información sobre el entorno de esta manera, puede utilizar el código y la lógica dependientes del entorno en su aplicación CDK. Esto también significa que la plantilla sintetizada puede ser diferente en función de la máquina, el usuario o la sesión en la que se sintetiza. Este enfoque suele ser aceptable o deseable durante el desarrollo, pero no se recomienda para su uso en producción.
Especifique los entornos en el despliegue de la pila
Si no especifica un entorno mediante la env
propiedad de la Stack
construcción, la CDK CLI generará una plantilla independiente del entorno en el momento de CloudFormation la síntesis. A continuación, puede especificar el entorno en el que desea realizar la implementación mediante. cdk deploy --profile
profile
Si no especificas un perfil al implementar una plantilla independiente del entorno, la CDK CLI intentará utilizar los valores del entorno de tu default
perfil credentials
y config
de tus archivos en el momento de la implementación.
Si la información del entorno no está disponible en el momento de la implementación, AWS CloudFormation intentará resolverla mediante atributos relacionados con el entorno, como, y. stack.account
stack.region
stack.availabilityZones
En el caso de las pilas independientes del entorno, las construcciones incluidas en la pila no pueden utilizar la información del entorno y no se puede utilizar una lógica que requiera información del entorno. Por ejemplo, no puede escribir código similar if (stack.region ====
'us-east-1')
ni utilizar métodos de construcción que requieran información del entorno, por ejemplo. Vpc.fromLookup
Para utilizar estas funciones, debe especificar un entorno con la env
propiedad.
En el caso de las pilas independientes del entorno, cualquier construcción que utilice zonas de disponibilidad tendrá dos zonas de disponibilidad, lo que permitirá implementar la pila en cualquier región.
Cómo especificar los entornos con AWS CDK
Especifique entornos codificados de forma rígida para cada pila
Utilice la env
propiedad de la Stack
construcción para especificar los valores de AWS entorno de la pila. A continuación, se muestra un ejemplo:
Recomendamos este enfoque para los entornos de producción. Al especificar explícitamente el entorno de esta manera, puede asegurarse de que la pila siempre se implemente en el entorno específico.
Especifique los entornos mediante variables de entorno
AWS CDK Proporciona dos variables de entorno que puede usar en su código CDK: CDK_DEFAULT_ACCOUNT
yCDK_DEFAULT_REGION
. Si utiliza estas variables de entorno en la env
propiedad de su instancia de pila, puede transferir la información del entorno de sus credenciales y archivos de configuración mediante la opción CDK CLI--profile
.
A continuación, se muestra un ejemplo de cómo especificar estas variables de entorno:
Al especificar los entornos mediante variables de entorno, puede hacer que la misma pila de CDK se sintetice en AWS CloudFormation plantillas para diferentes entornos. Esto significa que puede implementar la misma pila de CDK en diferentes AWS entornos sin tener que modificar el código de CDK. Solo tiene que especificar el perfil que se utilizará al ejecutar. cdk synth
Este enfoque es ideal para los entornos de desarrollo cuando se implementa la misma pila en diferentes entornos. Sin embargo, no recomendamos este enfoque para los entornos de producción, ya que el mismo código CDK puede sintetizar diferentes plantillas, según la máquina, el usuario o la sesión en la que se sintetiza.
Especifique los entornos a partir de sus credenciales y archivos de configuración con la CDK CLI
Al implementar una plantilla independiente del entorno, utilice la --profile
opción con cualquier CLI comando del CDK para especificar el perfil que se va a utilizar. A continuación, se muestra un ejemplo en el que se implementa una pila de CDK denominada myStack
mediante el prod
perfil definido en los archivos and: credentials
config
$
cdk deploy
myStack
--profileprod
Para obtener más información sobre la --profile
opción, junto con otros CLI comandos y opciones del CDK, consulte. Referencia de los comandos AWS CDK CLI
Consideraciones a la hora de configurar entornos con el AWS CDK
Los servicios que defina mediante el uso de componentes integrados en sus pilas deben ser compatibles con la región en la que vaya a realizar los despliegues. Para ver una lista de los servicios compatibles Servicios de AWS por región, consulta AWS los servicios por
Debe tener credenciales AWS Identity and Access Management (IAM) válidas para realizar despliegues de pilas con ellas AWS CDK en los entornos especificados.
Ejemplos
Sintetice una plantilla independiente del entorno a partir de una pila de CDK CloudFormation
En este ejemplo, creamos una plantilla independiente del entorno a partir de nuestra pila de CDK CloudFormation . A continuación, podemos implementar esta plantilla en cualquier entorno.
El siguiente es nuestro ejemplo de pila de CDK. Esta pila define un bucket de Amazon S3 y un resultado de CloudFormation pila para la región del bucket. Para este ejemplo, no env
está definido:
Cuando lo ejecutamoscdk synth
, la CDK CLI genera una CloudFormation plantilla con el pseudoparámetro AWS::Region
como valor de salida para la región del depósito. Este parámetro se resolverá en el momento de la implementación:
Outputs: BucketRegion: Value: Ref: AWS::Region
Para implementar esta pila en un entorno especificado en el dev
perfil de nuestras credenciales y archivos de configuración, ejecutamos lo siguiente:
$
cdk deploy CdkAppStack --profile dev
Si no especificamos un perfil, la CDK CLI intentará utilizar la información del entorno del default
perfil en nuestras credenciales y archivos de configuración.
Utilice la lógica para determinar la información del entorno en la síntesis de la plantilla
En este ejemplo, configuramos la env
propiedad de nuestra stack
instancia para usar una expresión válida. Especificamos dos variables de entorno adicionales CDK_DEPLOY_ACCOUNT
yCDK_DEPLOY_REGION
. Estas variables de entorno pueden anular los valores predeterminados en el momento de la síntesis, si existen:
Con el entorno de nuestra pila declarado de esta manera, podemos escribir un script corto o un archivo por lotes y establecer variables a partir de los argumentos de la línea de comandos y, luego, llamar. cdk deploy
A continuación, se muestra un ejemplo. Todos los argumentos que no sean los dos primeros se pasan cdk deploy
a para especificar opciones o argumentos de la línea de comandos:
Luego, podemos escribir scripts adicionales que usen el cdk-deploy-to
script para implementarlos en entornos específicos. A continuación, se muestra un ejemplo:
El siguiente es un ejemplo en el que se usa el cdk-deploy-to
script para implementarlo en varios entornos. Si la primera implementación falla, el proceso se detiene: