Esta es la guía para AWS CDK desarrolladores de la versión 2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde 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.
La AWS Cloud Development Kit (AWS CDK) aplicación o app es un conjunto de una o más pilas de CDK. Las pilas son un conjunto de una o más estructuras que definen AWS los recursos y las propiedades. Por lo tanto, la agrupación general de sus pilas y constructos se conoce como una aplicación de CDK.
Cómo crear una aplicación de CDK
Para crear una aplicación, define una instancia de aplicación en el archivo de aplicación de su proyecto. Para ello, importe y utilice el componente fijo de la App
biblioteca de componentes fijos AWS . El constructo App
no requiere ningún argumento para la inicialización. Es el único constructo que se puede utilizar como raíz.
Stack
Las clases App
y de la AWS biblioteca de componentes son construcciones únicas. En comparación con otras construcciones, no configuran AWS los recursos por sí mismas. En cambio, se utilizan para proporcionar contexto para los otros constructos. Todos los constructos que representan AWS recursos deben definirse, directa o indirectamente, dentro del ámbito de un Stack
constructo. Stack
los constructos se definen dentro del ámbito de un App
constructo.
Luego, las aplicaciones se sintetizan para crear AWS CloudFormation plantillas para tus pilas. A continuación, se muestra un ejemplo:
const app = new App();
new MyFirstStack(app, 'hello-cdk');
app.synth();
Las pilas de una sola aplicación pueden hacer referencia a los recursos y las propiedades de las demás con facilidad. AWS CDK Deduce las dependencias entre las pilas para que se puedan implementar en el orden correcto. Puede implementar cualquiera de las pilas de una aplicación o todas ellas con un solo comando cdk deploy
.
El árbol de constructos
Los constructos se definen dentro de otros constructos mediante el argumento scope
que se pasa a cada constructo, con la clase App
como raíz. De esta forma, una AWS CDK aplicación define una jerarquía de componentes conocida como árbol de componentes.
La raíz de este árbol es su aplicación, que es una instancia de la clase App
. Dentro de la aplicación, se crean instancias de una o más pilas. Dentro de las pilas, se crean instancias de los constructos, que, a su vez, pueden crear instancias de recursos u otros constructos, y así sucesivamente en el resto del árbol.
Los constructos siempre se definen de forma explícita en el ámbito de otro constructo, lo cual crea relaciones entre los constructos. Casi siempre, debe pasar this
(en Python, self
) como el ámbito, lo que indica que el nuevo constructo es un elemento secundario del constructo actual. El patrón previsto consiste en derivar su constructo a partir de Construct
y, luego, crear una instancia de los constructos que utiliza en su constructor.
Pasar el ámbito de forma explícita permite que cada constructo se agregue a sí mismo al árbol. Este comportamiento se limita exclusivamente a la clase base Construct
. Funciona de la misma manera en todos los idiomas admitidos por el AWS CDK y no requiere ninguna personalización adicional.
importante
Técnicamente, es posible pasar un ámbito distinto a this
cuando se genere un constructo. Puede agregar constructos en cualquier parte del árbol, incluso en otra pila de la misma aplicación. Por ejemplo, puede escribir una función de estilo mixto que agregue constructos a un ámbito que se pasó como argumento. La dificultad práctica en este caso es que no puedes asegurarte fácilmente de que la que IDs elijas para tus construcciones sea única en el ámbito de otra persona. Esta práctica también hace que sea más difícil entender, mantener y reutilizar el código. Por lo tanto, se recomienda utilizar la estructura general del árbol de constructos.
AWS CDK Utiliza todos los constructos IDs de la ruta desde la raíz del árbol hasta cada constructo secundario para generar el único IDs requerido por. AWS CloudFormation Este enfoque significa que la construcción IDs solo tiene que ser única dentro de su ámbito, y no dentro de toda la pila, como en el caso de la versión nativa AWS CloudFormation. Sin embargo, si mueves una construcción a un ámbito diferente, la ID única de la pila generada cambiará y AWS CloudFormation no se considerará el mismo recurso.
El árbol de construcciones es independiente de las construcciones que definas en el código. AWS CDK Sin embargo, se puede acceder a él con el atributo node
de cualquier constructo, que es una referencia al nodo que representa ese constructo en el árbol. Cada nodo es una instancia Node
, cuyos atributos proporcionan acceso a la raíz del árbol y a los ámbitos principales y secundarios del nodo.
-
node.children
: los elementos secundarios del constructo. -
node.id
: el identificador del constructo dentro de su ámbito. -
node.path
— La ruta completa de la construcción, incluida la IDs de todos sus padres. -
node.root
: la raíz del árbol de constructos (la aplicación). -
node.scope
: el ámbito (principal) del constructo o indefinido si el nodo es la raíz. -
node.scopes
: todos los elementos principales del constructo, hasta la raíz. -
node.uniqueId
: el identificador alfanumérico único de este constructo dentro del árbol (se genera de forma predeterminada a partir denode.path
y un hash).
El árbol de constructos establece un orden implícito en el que los constructos se sintetizan en recursos de la plantilla final de AWS CloudFormation . Donde se debe crear un recurso antes que otro, AWS CloudFormation o la biblioteca de AWS construcción generalmente deduce la dependencia. Luego, se aseguran de que los recursos se creen en el orden correcto.
También puede agregar una dependencia explícita entre dos nodos mediante node.addDependency()
. Para obtener más información, consulte Dependencies en la Referencia de la API de AWS CDK .
AWS CDK Proporciona una forma sencilla de visitar todos los nodos del árbol de construcción y realizar una operación en cada uno de ellos. Para obtener más información, consulte Aspectos y AWS CDK.