2017-05-17 5 views
1

Nous avons déjà créé une infrastructure manuellement et avec terraform, y compris des seaux s3. À l'avenir, j'aimerais utiliser CloudFormation pur pour définir l'infrastructure en tant que code.AWS 'Bucket existe déjà' - comment "migrer" des ressources existantes vers CloudFormation?

Je créé une définition YAML CloudFormation qui fait référence à un seau existant:

AWSTemplateFormatVersion: '2010-09-09' 
Resources: 
    TheBucket: 
    Type: AWS::S3::Bucket 
    Properties: 
     BucketName: my-existing-bucket-name 

Lorsque je tente de l'appliquer, l'exécution échoue, avec l'événement de la pile de CloudFormation:

The following resource(s) failed to update: [TheBucket]. 
12:33:47 UTC+0200 UPDATE_FAILED AWS::S3::Bucket TheBucket 
    my-existing-bucket-name already exists 

Comment puis-je commencer gestion ressources existantes avec CloudFormation sans les recréer? Ou est-ce impossible par conception?

Répondre

1

Vous devez créer un nouveau compartiment et synchroniser les données de l'ancien compartiment avec le nouveau compartiment. Je n'ai pas vu un moyen d'utiliser une modification d'un compartiment S3 existant.

1

La section ressources d'un modèle de formation au cloud définit les ressources qui doivent être créées par la formation de nuages. Essayez de vous référer aux ressources existantes en les définissant comme des paramètres à la place.

+0

Je voudrais ** gérer **, c'est-à-dire aussi ajuster la ressource, par ex. changer cors_rules, etc. Pas seulement se référer via le paramètre. – geekQ

+2

J'ai peur que cela ne fonctionne pas avec le cloudformation. Ou je ferais mieux de dire que je ne sais pas comment cela pourrait fonctionner. L'idée de cloudformation est de construire votre infrastructure basée sur des modèles et ne se concentre pas sur la manipulation des ressources existantes. L'approche dans la cloudformation préfèrerait tout effacer et construire à partir de zéro puis changer les ressources existantes. – bschroers