Cuando intento actualizar una pila de AWS CloudFormation, aparece un mensaje de error similar al siguiente: “CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename 'MyResource###' and update the stack again”.
Descripción breve
Este error se produce cuando una actualización de pila intenta reemplazar los recursos que tienen propiedades con nombres personalizados. CloudFormation no reemplaza un recurso que tenga un nombre personalizado, a menos que ese nombre personalizado se cambie por un nombre diferente. Para evitar un error en la pila, antes de actualizar una pila, asegúrate de cambiar los recursos con nombres personalizados para que usen nombres diferentes.
La resolución de este error asume lo siguiente:
- Estás actualizando una pila existente y no creando una pila nueva.
- Estás cambiando los nombres de los recursos personalizados existentes con nombres personalizados y no creando nuevos recursos con nombres personalizados.
Resolución
-
En un editor de código, abre la plantilla de CloudFormation para la pila que deseas actualizar.
-
Reemplaza los nombres o valores de cualquier propiedad de recurso que tenga nombres personalizados para que usen nombres diferentes.
Nota: En el ejemplo siguiente, la propiedad DBInstanceIdentifier del recurso MyRDS se establece en el nombre personalizado PRODdb. La pila de CloudFormation no se puede actualizar hasta que el nombre PRODdb se cambie por otro nombre, como PRODdb1. O bien, omite la propiedad DBInstanceIdentifier de la plantilla para que CloudFormation genere un ID físico único para usarlo en la instancia de base de datos.
"MyRDS": { "Type": "AWS::RDS::DBInstance",
"Properties": {
"DBInstanceClass": "db.m3.medium",
"Engine": "MySQL",
"DBInstanceIdentifier": "PRODdb",
"AllocatedStorage": "10",
"AutoMinorVersionUpgrade": "true",
"BackupRetentionPeriod": "0",
. . .
. . .
}
}
Importante: Al cambiar el nombre de un recurso con nombre personalizado, CloudFormation reemplaza ese recurso. Para obtener más información, consulta Tipo de nombre. El reemplazo de determinados recursos puede provocar la pérdida de datos sin una copia de seguridad adecuada. Para obtener más información, consulta Reemplazo.
-
Guarda los cambios en la plantilla de CloudFormation y, a continuación, utilízala para actualizar la pila.
Información relacionada
Administrar los recursos de AWS como una sola unidad con pilas AWS CloudFormation
Comprensión de los comportamientos de actualización de los recursos de la pila
Referencia de tipos de recursos y propiedades de AWS