View a markdown version of this page

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

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.

cdk diff

Realice una diferencia para ver los cambios de 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 local AWS CloudFormation .

De 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.

--method, -m <STRING>

Especifica cómo calcular la diferencia.

  • auto— Predeterminado. Crea un conjunto de AWS CloudFormation cambios para mostrar información de reemplazo precisa. Si el conjunto de cambios no se puede crear (por ejemplo, debido a la falta de permisos), se recurre a una diferencia solo de plantillas. Utiliza la función de despliegue.

  • change-set— Siempre crea un conjunto de cambios y falla si no se puede crear. Úselo cuando necesite una precisión garantizada. Utiliza la función de despliegue.

  • template— Compara CloudFormation las plantillas directamente. Más rápido, pero menos preciso. Cualquier cambio detectado en las propiedades que requieren la sustitución de recursos se muestra como una sustitución de recursos, incluso si el cambio es meramente estético. Utiliza la función de búsqueda.

    Valor predeterminado: auto

--change-set <BOOLEAN>(obsoleto)

Especifica si se debe crear un conjunto de cambios para analizar las sustituciones de recursos. En su lugar, use --method.

--change-setse asigna a. --method=auto --no-change-setmapea a--method=template.

--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>

Especifique si desea compararla con la plantilla con las CloudFormation transformaciones 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 CloudFormation plantilla con la que se va a comparar una pila de CDK. Implica--method=template.

Ejemplos

Diferencia con la pila actualmente desplegada denominada 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 --method=template 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.

Diferencia con una CloudFormation plantilla específica

$ 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