Tengo un depósito S3 como recurso en mi plantilla de CloudFormation. Con DeletionPolicy
conjunto a Retain
. Esto funciona como se esperaba, al eliminar la pila, de hecho, retiene el depósito. Sin embargo, cuando intento crear la pila nuevamente, la creación falla al intentar crear el mismo depósito nuevamente, con un mensaje de error quejándose de que ya existe.
¿Qué necesito agregar a mi plantilla de CloudFormation para que no intente recrear un recurso que ya existe?
El fragmento relevante de mi plantilla es el siguiente:
"Resources": {
"SomeS3Bucket" : {
"Type" : "AWS::S3::Bucket",
"DeletionPolicy" : "Retain",
"Properties": {
"BucketName": "SomeS3Bucket"
}
}
Respuestas:
Un enfoque es agregar un parámetro de entrada a la plantilla de CloudFormation para indicar que se debe usar un depósito existente.
Use cláusulas de condición en la plantilla para crear el depósito solo si el parámetro indica que es necesario.
fuente
CloudFormation usa etiquetas con el prefijo "aws:" para realizar un seguimiento de qué recursos están asociados con qué entradas en qué pilas, ese es el estado "en vivo" que usa para comparar con una plantilla antes de decidir qué agregar / eliminar / actualizar.
Como usuario, no puede agregar, editar o eliminar tales etiquetas.
Entonces, si sus recursos existentes no tienen estas etiquetas, o no tienen los valores correctos para esas etiquetas, entonces no se consideran parte de la nueva pila, y no veo una manera de cambiar eso.
fuente
Estoy tratando de automatizar esto también, ya que parece que no se puede hacer solo con la plantilla Cloudformation. El proceso en el que estoy pensando sería:
temp-$originalbucketname
$originalbucketname
temp-$originalbucketname
Ese es un proceso muy complicado, dependiendo del tamaño del cubo, podría llevar horas fácilmente ya que la mayoría de los pasos son O (n) con la cantidad de teclas.
Pensarías que Cloudformation es la capa básica de la automatización de AWS, pero creo que es solo un monstruo (bastante limitado) que reúne API bizantinas para todos sus servicios.
fuente