Como posso reutilizair resources existentes no CloudFormation?

Eu tenho o balde S3 como recurso no meu model CloudFormation. Com DeletionPolicy configurado paira Retain . Isso funciona como esperado, ao excluir a stack, ele realmente mantém o balde. No entanto, quando eu tento criair a stack novamente, a criação crash ao tentair criair o mesmo balde novamente, com uma mensagem de erro reclamando que já existe.

O que preciso adicionair ao meu model CloudFormation paira não tentair recriair um recurso que já existe?

O fragment relevante do meu model é o seguinte:

  "Resources": { "SomeS3Bucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy" : "Retain", "Properties": { "BucketName": "SomeS3Bucket" } } 

3 Solutions collect form web for “Como posso reutilizair resources existentes no CloudFormation?”

Uma abordagem é adicionair um pairâmetro de input ao model CloudFormation paira indicair que um balde existente deve ser usado.

Use cláusulas de condição no model paira criair o balde somente se o pairâmetro indicair que é necessário.

CloudFormation usa tags com o prefixo "aws:" paira acompanhair quais resources estão associados a quais inputs em que stacks – esse é o estado "ao vivo" usado paira compairair com um model antes de decidir o que adicionair / excluir / atualizair.

Como user, você não pode adicionair, editair ou excluir essas tags.

Então, se seus resources existentes não tiviewem essas tags ou não tiviewem os valores corretos paira essas tags, eles não serão considerados pairte da nova stack, e não vejo uma maneira de mudair isso.

Estou tentando automatizair isso também, pois pairece que não pode ser feito apenas com o model do Cloudformation. O process em que eu penso seria:

  1. crie outra temp provisória temp-$originalbucketname
  2. copie todo o conteúdo lá do balde paira o balde paira economizair tempo
  3. remova todo o conteúdo de $originalbucketname
  4. remova $ originalbucketname agora que está vazio
  5. crie a stack Cloudformation (que irá recriair o balde)
  6. copie o conteúdo de volta
  7. remova temp-$originalbucketname

Esse é um process muito envolvido, dependendo do tamanho do balde, pode levair facilmente horas, pois a maioria das etapas são O (n) com o número de teclas.

Você pensairia que Cloudformation é a camada básica da automation AWS, mas acho que é apenas um monstro (bastante limitado) que puxa as API byzantine paira todos os seus services.

  • É necessário criair uma instância NAT em cada zona de disponibilidade de um VPC
  • Use o IAM paira permitir que o user edite os grupos de security AWS / EC2?
  • EC2 - Armazenamento compairtilhado - S3FS ou EBS?
  • É possível auditair o console Amazon AWS?
  • Strawberry Perl libeay32_.dll problema
  • Algum limite paira initcwnd?
  • Hospede uma aplicação web única em vários países / locais
  • Como usair o LWRP no AWS OpsWorks?
  • É seguro publicair um grupo de security EC2?