Prácticas recomendadas
Constructos de capa 1
-
No siempre se puede evitar el uso directo de los constructos de capa 1, pero hay que evitarlos siempre que sea posible. Si un constructo de capa 2 específico no es compatible con su caso particular extremo, puede explorar estas dos opciones en lugar de utilizar el constructo de capa 1 de manera directa:
-
Acceso
defaultChild: si la propiedad CloudFormation que necesita no está disponible en un constructo de capa 2, puede acceder al constructo de capa 1 subyacente medianteL2Construct.node.defaultChild. Puede actualizar las propiedades públicas del constructo de capa 1. Para ello, acceda a este a través de esta propiedad, en lugar de tener que crear el constructo de capa 1. -
Utilice anulaciones de propiedades: ¿Qué sucede si la propiedad que quiere actualizar no es pública? La mejor vía de escape que permite a AWS CDK hacer cualquier cosa que pueda hacer una plantilla de CloudFormation es utilizar un método disponible en todos los constructos de capa 1: addPropertyOverride. Puede manipular la pila a nivel de plantilla de CloudFormation al pasar el nombre y el valor de la propiedad de CloudFormation de manera directa a este método.
-
Constructos de capa 2
-
Recuerde aprovechar los métodos auxiliares que suelen ofrecer los constructos de capa 2. Con la capa 2, no tiene que pasar cada propiedad tras la creación de instancias. Los métodos auxiliares de la capa 2 pueden hacer que el aprovisionamiento de recursos sea exponencialmente más práctico, sobre todo cuando es necesaria la lógica condicional. Uno de los métodos auxiliares más prácticos se deriva de la clase Grant. Esta clase no se utiliza de manera directa, pero muchos constructos de la capa 2 la utilizan para proporcionar métodos auxiliares que facilitan mucho la implementación de los permisos. Por ejemplo, si quiere dar permiso a una función de Lambda de la capa 2 para acceder a un bucket de la capa 2 de S3, puede llamar a
s3Bucket.grantReadWrite(lambdaFunction)en lugar de crear un rol y política nuevos.
Constructos de capa 3
-
Si bien los constructos de la capa 3 pueden resultar muy prácticos si quiere que las pilas sean más reutilizables y personalizables, le recomendamos utilizarlas con cuidado. Considere qué tipo de constructo de la capa 3 necesita o si necesita algún constructo de nivel 3:
-
Si no interactúa de manera directa con los recursos de AWS, suele ser más adecuado crear una clase auxiliar en lugar de ampliar la case
Construct. Esto se debe a que la claseConstructrealiza muchas acciones de manera predeterminada que solo son necesarias si interactúa de manera directa con los recursos de AWS. Por lo tanto, si no es necesario que se realicen esas acciones, es más eficiente evitarlas. -
Si determina que es adecuado crear un constructo nuevo de la capa 3, en la mayoría de los casos será conveniente ampliar la clase
Constructde manera directa. Amplíe otros constructos de la capa 2 solo cuando desee actualizar las propiedades predeterminadas del constructo. Si están implicados otros constructos de la capa 2 o una lógica personalizada, amplíeConstructde manera directa y cree una instancia de todos los recursos del constructor.
-