cdk diff - AWS Cloud Development Kit (AWS CDK) v2

Esta es la segunda versión de la Guía para desarrolladores de AWS CDK. 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.

cdk diff

Ejecute diff para ver los cambios en la infraestructura entre las pilas de AWS CDK.

En general, este comando se usa para comparar las diferencias entre el estado actual de las pilas de su aplicación de CDK local y las pilas implementadas. Sin embargo, también puede comparar una pila implementada con cualquier plantilla de AWS CloudFormation local.

Uso

$ cdk diff <arguments> <options>

Argumentos

ID de pila de CDK

El ID de constructo de la pila de CDK correspondiente a su aplicación para ejecutar diff.

Tipo: cadena

Obligatorio: no

Opciones

Para obtener una lista de las opciones globales que funcionan con todos los comandos de la CLI de CDK, consulte Opciones globales.

--change-set <BOOLEAN>

Especifica si desea crear un conjunto de cambios para analizar las sustituciones de recursos.

Si está configurado como true, la CLI de CDK creará un conjunto de cambios de AWS CloudFormation para mostrar los cambios exactos que se realizarán en la pila. Este resultado incluye si se actualizarán o reemplazarán los recursos. La CLI de CDK utiliza el rol de implementación en lugar del rol de búsqueda para realizar esta acción.

Si está configurado como false, se ejecuta diff de manera más rápida pero menos precisa, y se comparan las plantillas de CloudFormation. Cualquier cambio que se detecte en las propiedades que requieran la sustitución de recursos se mostrará como una sustitución de recursos, incluso si el cambio es meramente cosmético, como la sustitución de la referencia a un recurso por un ARN con codificación rígida.

Valor predeterminado: true

--context-lines <NUMBER>

Número de líneas de contexto que se van a incluir en la representación JSON arbitraria de diff.

Valor predeterminado: 3

--exclusively, -e <BOOLEAN>

El comando diff solo se aplica a las pilas solicitadas y no se incluyen las dependencias.

--fail <BOOLEAN>

Se produce un error y se cierra con un código de 1 si se detectan diferencias.

--help, -h <BOOLEAN>

Muestra la información de referencia del comando cdk diff.

--processed <BOOLEAN>

Especifica si desea realizar la comparación con la plantilla con las transformaciones de CloudFormation ya procesadas.

Valor predeterminado: false

--quiet, -q <BOOLEAN>

No imprime el nombre de la pila de CDK y usa la opción predeterminada de mensaje de cdk diff stdout cuando no se detectan cambios.

Valor predeterminado: false

--security-only <BOOLEAN>

El comando diff solo se aplica para cambios de seguridad ampliada.

Valor predeterminado: false

--strict <BOOLEAN>

Modifica el comportamiento de cdk diff para que sea más preciso o riguroso. Si está configurado como verdadero, la CLI del CDK no filtrará los recursos de AWS::CDK::Metadata ni los caracteres ilegibles que no sean ASCII.

Valor predeterminado: false

--template <STRING>

La ruta a la plantilla de CloudFormation con la que se comparará una pila de CDK.

Ejemplos

Ejecución de diff con la pila actualmente implementada que se llama MyStackName

La CLI de CDK utiliza los siguientes símbolos en la salida diff:

  • [+]: identifica el código o los recursos que se añadirán si implementa los cambios.

  • [-]: identifica el código o los recursos que se eliminarán si implementa los cambios.

  • [~]: identifica un recurso o una propiedad que se modificará si implementa los cambios.

El siguiente es un ejemplo que muestra una diferencia de cambios locales en una función de Lambda:

$ cdk diff MyStackName start: Building <asset-hash>:<account:Region> success: Built <asset-hash>:<account:Region> start: Publishing <asset-hash>:<account:Region> success: Published <asset-hash>:<account:Region> Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff) Stack MyStackName Resources [~] AWS::Lambda::Function HelloWorldFunction <resource-logical-ID> └─ [~] Code └─ [~] .ZipFile: ├─ [-] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; └─ [+] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello from CDK!'), }; }; ✨ Number of stacks with differences: 1

Un indicador [~] de los recursos que se van a modificar no siempre significa que se sustituyan todos los recursos:

  • Algunas propiedades del recurso, por ejemplo Code, actualizarán el recurso.

  • Algunas propiedades del recurso, por ejemplo FunctionName, pueden provocar un reemplazo total del recurso.

Ejecutar diff con una plantilla específica de CloudFormation

$ cdk diff MyStackName --app='node bin/main.js' --template-path='./MyStackNameTemplate.yaml'

Diferencia una pila local de su pila implementada. No imprime stdout si no se detectan cambios.

$ cdk diff MyStackName --app='node bin/main.js' --quiet