簡體   English   中英

AWS 'Bucket 已經存在' - 如何將現有資源“遷移”到 CloudFormation?

[英]AWS 'Bucket already exists' - how to “migrate” existing resources to CloudFormation?

我們已經手動和使用 terraform 創建了一些基礎設施,包括一些 s3 存儲桶。 將來我想使用純 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 管理現有資源? 還是設計上不可能?

您需要創建一個新存儲桶並將舊存儲桶中的數據同步到新存儲桶。 我還沒有看到使用修改現有 S3 存儲桶的方法。

雲形成模板的資源部分定義了雲形成應創建哪些資源。 嘗試通過將現有資源定義為參數來引用它們。

您應該能夠使用“將資源導入堆棧”選項來導入它:

在此處輸入圖片說明

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-existing-stack.html

正如文檔所解釋的那樣,您應該為堆棧中的現有資源添加一個"DeletionPolicy": "Retain"屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM