Desde la v2, AWS CDK ha consolidado las partes estables de la Construct Library en un solo paquete, aws-cdk-lib. Esto significa que ya no necesitas instalar y referenciar numerosos paquetes individuales para diferentes servicios de AWS—simplemente puedes importarlos desde el paquete base.
En un artículo anterior, compartí un stack para desplegar un sitio estático Jekyll en AWS usando S3 y CloudFront. La sección de importaciones de ese stack se veía así:
import * as s3 from "aws-cdk-lib/aws-s3";
import * as cloudfront from "aws-cdk-lib/aws-cloudfront";
import * as acm from "aws-cdk-lib/aws-certificatemanager";
import * as route53 from "aws-cdk-lib/aws-route53";
import * as origins from "aws-cdk-lib/aws-cloudfront-origins";
import * as targets from "aws-cdk-lib/aws-route53-targets";
import * as s3deploy from "aws-cdk-lib/aws-s3-deployment";
En lugar de este enfoque, la mejor práctica es usar importaciones v2:
import { aws_s3 as s3 } from "aws-cdk-lib";
import { aws_cloudfront as cloudfront } from "aws-cdk-lib";
import { aws_certificatemanager as acm } from "aws-cdk-lib";
import { aws_route53 as route53 } from "aws-cdk-lib";
import { aws_cloudfront_origins as origins } from "aws-cdk-lib";
import { aws_route53_targets as targets } from "aws-cdk-lib";
import { aws_s3_deployment as s3deploy } from "aws-cdk-lib";
He estado trabajando para adoptar este nuevo estilo de importación, y en realidad lo prefiero porque me parece más legible. Lo irónico es que la v2 fue lanzada hace aproximadamente cuatro años, y no empecé a aprender CDK hasta el año pasado. Simplemente no recibí el memo (y la mayoría de los recursos de los que aprendí usaban la antigua sintaxis de importación).
Igual, ¡vale la pena adoptar la mejor práctica actual!
¡Espero que esto te sea útil!
