2017-05-17 71 views
1

我们已经手动创建了一些基础设施,并且使用了terraform,包括一些s3桶。在未来,我想使用纯粹的CloudFormation将基础架构定义为代码。AWS'Bucket already exists' - 如何将现有资源“迁移”到CloudFormation?

所以我创建了一个CloudFormation YAML定义,引用现有的斗:

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

当我尝试应用它,执行失败,与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 

如何开始使用CloudFormation管理现有的资源而无需重新创建它们?还是设计不可能?

回答

1

您将需要创建一个新桶并将旧桶中的数据同步到新桶。我还没有看到使用修改现有S3存储桶的方法。

1

云形成模板的资源部分定义了应由云形成创建哪些资源。尝试通过将它们定义为参数来引用现有资源。

+0

我想**管理**,即也调整资源,例如更改cors_rules等。不只是通过参数来引用。 – geekQ

+2

恐怕这不适用于云信息。或者我最好说,我不知道这可能会如何工作。 云信息的想法是基于模板构建您的基础架构,而不关注对现有资源的操纵。云计算中的方法宁可删除所有并从头开始构建,然后改变现有的资源。 – bschroers

相关问题