Esta es la guía para AWS CDK desarrolladores de la versión 2. La CDK versión anterior entró en mantenimiento el 1 de junio de 2022 y finalizó el 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.
AWS CDK aplicaciones
La AWS Cloud Development Kit (AWS CDK) aplicación o app es un conjunto de una o más pilas. CDK Las pilas son un conjunto de una o más estructuras que definen los AWS recursos y las propiedades. Por lo tanto, la agrupación general de las pilas y las construcciones se conoce como aplicación. CDK
¿Cómo crear una aplicación CDK
Para crear una aplicación, defina una instancia de aplicación en el archivo de aplicación de su proyecto. Para ello, importe y utilice el componente fijo App
de la biblioteca AWS de componentes. La App
construcción no requiere ningún argumento de inicialización. Es la única construcción que se puede utilizar como raíz.
Stack
Las clases App
y de la biblioteca de AWS construcciones son construcciones únicas. En comparación con otras construcciones, no configuran AWS los recursos por sí mismas. En cambio, se utilizan para proporcionar contexto a las otras construcciones. Todos los constructos que representan AWS recursos deben definirse, directa o indirectamente, dentro del ámbito de un Stack
constructo. Stack
las construcciones se definen dentro del ámbito de una App
construcción.
Luego, las aplicaciones se sintetizan para crear AWS CloudFormation plantillas para tus pilas. A continuación, se muestra un ejemplo:
Las pilas de una sola aplicación pueden hacer referencia fácilmente a los recursos y propiedades de las demás. AWS CDK Deduce las dependencias entre las pilas para poder desplegarlas en el orden correcto. Puedes implementar una o todas las pilas de una aplicación con un solo comando. cdk deploy
El árbol de construcción
Las construcciones se definen dentro de otras construcciones mediante el scope
argumento que se pasa a cada construcción, con la App
clase como raíz. De esta forma, una AWS CDK aplicación define una jerarquía de construcciones conocida como árbol de construcciones.
La raíz de este árbol es tu aplicación, que es una instancia de la App
clase. Dentro de la aplicación, se crean instancias de una o más pilas. Dentro de las pilas, se crean instancias de componentes fijos, que a su vez pueden crear instancias de recursos u otros componentes, y así sucesivamente en el resto del árbol.
Los constructos siempre se definen de forma explícita dentro del ámbito de otro constructo, lo que crea relaciones entre los constructos. Casi siempre, debes pasar this
(en Pythonself
) como ámbito, lo que indica que la nueva construcción es un elemento secundario de la construcción actual. El patrón previsto consiste en derivar la construcción y, a continuación Construct
, crear una instancia de las construcciones que utiliza en su constructor.
Pasar el ámbito de forma explícita permite que cada construcción se añada al árbol, y este comportamiento está contenido exclusivamente en la Construct
clase base. 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 algún ámbito distinto this
al de instanciar una construcción. Puedes añadir componentes fijos en cualquier parte del árbol o incluso en otra pila de la misma aplicación. Por ejemplo, puedes escribir una función de estilo mixto que añada construcciones a un ámbito pasado como argumento. La dificultad práctica en este caso es que no es fácil asegurarse de que la construcción que IDs elija sea única dentro del ámbito de otra persona. Esta práctica también hace que el código sea más difícil de entender, mantener y reutilizar. Por lo tanto, se recomienda utilizar la estructura general del árbol de construcción.
AWS CDK Utiliza todos los componentes fijos IDs de la ruta desde la raíz del árbol hasta cada componente secundario para generar el valor ú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 a través del node
atributo de cualquier construcción, que es una referencia al nodo que representa esa construcción en el árbol. Cada nodo es una Node
instancia, cuyos atributos proporcionan acceso a la raíz del árbol y a los ámbitos principales y secundarios del nodo.
-
node.children
— Los hijos directos de la construcción. -
node.id
— El identificador del constructo dentro de su ámbito. -
node.path
— La ruta completa del constructo, incluidos todos sus progenitores. IDs -
node.root
— La raíz del árbol de construcción (la aplicación). -
node.scope
— El ámbito (principal) de la construcción o indefinido si el nodo es la raíz. -
node.scopes
— Todos los padres de la construcción, hasta la raíz. -
node.uniqueId
— El identificador alfanumérico único de esta construcción dentro del árbol (de forma predeterminada, se genera a partir denode.path
un hash).
El árbol de construcciones define un orden implícito en el que las construcciones se sintetizan en recursos en la plantilla final. AWS CloudFormation Donde se debe crear un recurso antes que otro, AWS CloudFormation o la biblioteca de AWS construcción generalmente deduce la dependencia. A continuación, se aseguran de que los recursos se creen en el orden correcto.
También puede añadir una dependencia explícita entre dos nodos mediantenode.addDependency()
. Para obtener más información, consulte Dependencias en la AWS CDK APIreferencia.
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.