Quando tento atualizar uma pilha do AWS CloudFormation, recebo uma mensagem de erro semelhante à seguinte: “O CloudFormation não pode atualizar uma pilha quando um recurso com nome personalizado precisa ser substituído. Renomeie 'MyResource###' e atualize a pilha novamente.”
Breve descrição
Esse erro ocorre quando uma atualização de pilha tenta substituir recursos que têm propriedades por nomes personalizados. O CloudFormation não substitui um recurso que tenha um nome personalizado, a menos que esse nome personalizado seja alterado para um nome diferente. Para evitar uma falha na pilha, antes de atualizar uma pilha, certifique-se de alterar todos os recursos com nomes personalizados para usar nomes diferentes.
A resolução desse erro pressupõe o seguinte:
- Você está atualizando uma pilha existente e não criando uma nova pilha.
- Você está alterando os nomes dos recursos com nomes personalizados existentes e não criando novos recursos com nomes personalizados.
Solução
-
Em um editor de código, abra o modelo do CloudFormation para a pilha que você deseja atualizar.
-
Substitua os nomes ou valores de qualquer propriedade de recurso que tenha nomes personalizados para usar nomes diferentes.
Observação: no exemplo a seguir, a propriedade DBInstanceIdentifier do recurso MyRDS é definida com o nome personalizado PRODdb. A pilha do CloudFormation não pode ser atualizada até que o nome PRODdb seja alterado para um nome diferente, como PRODdb1. Ou omita a propriedade DBInstanceIdentifier do seu modelo para que o CloudFormation gere uma ID física exclusiva para usar na instância de banco de dados.
"MyRDS": { "Type": "AWS::RDS::DBInstance",
"Properties": {
"DBInstanceClass": "db.m3.medium",
"Engine": "MySQL",
"DBInstanceIdentifier": "PRODdb",
"AllocatedStorage": "10",
"AutoMinorVersionUpgrade": "true",
"BackupRetentionPeriod": "0",
. . .
. . .
}
}
Importante: Quando você renomeia um recurso com nome personalizado, o CloudFormation substitui esse recurso. Para mais informações, consulte Tipo de nome. Sem o backup adequado, a substituição de certos recursos pode causar perda de dados. Para mais informações, consulte Substituição.
-
Salve as alterações em seu modelo do CloudFormation e, em seguida, use o modelo para atualizar sua pilha.
Informações relacionadas
Gerenciando recursos da AWS como uma única unidade com pilhas do CloudFormation
Entender comportamentos de atualização dos recursos da pilha
Referência de tipos de recursos e propriedades da AWS