

Esta es la guía para desarrolladores de AWS CDK v2. 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.

# Marcas de características de AWS CDK
<a name="featureflags"></a>

AWS CDK utiliza *marcas de características* para habilitar posibles comportamientos disruptivos en una versión. Las marcas se almacenan como [valores de contexto y los valores de AWS CDK](context.md) en `cdk.json` (o `~/.cdk.json`). Los comandos `cdk context --clear` y `cdk context --reset` no los eliminan.

Las marcas de características están desactivadas de forma predeterminada. Los proyectos existentes que no especifiquen la marca funcionarán como antes en las versiones de AWS CDK posteriores. Los nuevos proyectos creados con `cdk init` incluyen marcas que habilitan todas las características disponibles en la versión en la que se creó el proyecto. Edite `cdk.json` para deshabilitar las marcas para las que prefiera el comportamiento anterior. También puede agregar marcas para habilitar nuevos comportamientos después de actualizar el AWS CDK.

Puede encontrar una lista de todas las marcas de características actuales en el repositorio de AWS CDK de GitHub en [FEATURE\$1FLAGS.md](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md). Consulte `CHANGELOG` de una versión determinada para ver una descripción de las nuevas marcas de características agregadas en esa versión.

## Restablecer al comportamiento de la v1
<a name="featureflags-disabling"></a>

En la v2 de CDK, los valores predeterminados de algunas marcas de características cambiaron con respecto a la v1. Puede volver a configurarlos como `false` para volver al comportamiento específico de la v1 de AWS CDK. Utilice el comando `cdk diff` para inspeccionar los cambios en la plantilla sintetizada y ver si se necesita alguna de estas marcas.

 `@aws-cdk/core:newStyleStackSynthesis`   
Utilice el nuevo método de síntesis de pilas, que asume recursos de arranque con nombres conocidos. Requiere un [arranque moderno](bootstrapping.md), pero a cambio permite CI/CD a través de [CDK Pipelines](cdk-pipeline.md) y las implementaciones entre cuentas desde el primer momento.

 `@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId`   
Si su aplicación utiliza varias claves de API de Amazon API Gateway y las asocia a planes de uso.

 `@aws-cdk/aws-rds:lowercaseDbIdentifier`   
Si su aplicación utiliza instancias de bases de datos o clústeres de bases de datos de Amazon RDS y especifica de forma explícita su identificador.

 `@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021`   
Si su aplicación utiliza la política de seguridad TLS\$1V1\$12\$12019 con las distribuciones de Amazon CloudFront. El CDK v2 utiliza la política de seguridad TLSv1.2\$12021 de forma predeterminada.

 `@aws-cdk/core:stackRelativeExports`   
Si la aplicación utiliza varias pilas y hace referencia a los recursos de una pila en otra, esto determinará si se utiliza la ruta absoluta o relativa para construir las exportaciones de AWS CloudFormation.

 `@aws-cdk/aws-lambda:recognizeVersionProps`   
Si se establece en `false`, el CDK incluye metadatos al detectar si una función de Lambda cambió. Esto puede provocar errores de implementación cuando solo se modificaron los metadatos, ya que no se permiten versiones duplicadas. No es necesario revertir esta marca si realizó al menos un cambio en todas las funciones de Lambda en la aplicación.

La sintaxis para revertir estas marcas en `cdk.json` se muestra aquí.

```
{
  "context": {
    "@aws-cdk/core:newStyleStackSynthesis": false,
    "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": false,
    "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": false,
    "@aws-cdk/aws-rds:lowercaseDbIdentifier": false,
    "@aws-cdk/core:stackRelativeExports": false,
    "@aws-cdk/aws-lambda:recognizeVersionProps": false
  }
}
```