menggunakan CloudFormation dengan bucket S3 yang ada

27

Menggunakan CloudFormation, saya ingin mengatur beberapa properti di AWS :: S3 :: Bucket pada bucket yang ada . Dengan kata lain, saya tidak ingin membuat ember, saya hanya ingin menegakkan beberapa pengaturan. Berikut adalah contoh JSON cloudformation saya:

"websitePreviewBucket": {
  "Type": "AWS::S3::Bucket",
  "Properties": {
    "AccessControl": "PublicRead",
    "VersioningConfiguration": {
      "Status": "Suspended"
    },
    "BucketName": "preview.website.com",
    "WebsiteConfiguration": {
      "IndexDocument": "index.html",
      "ErrorDocument": "error.html"
    }
  }
},

Tidak mengherankan, ini gagal di konsol cloudformation:

The following resource(s) failed to create: [websitePreviewBucket].
preview.website.com already exists

Saya telah membuat bucket preview.website.com. Maksudku, akun ini "memiliki" ember itu. Bagaimana saya bisa mengatur hal-hal seperti AccessControldan WebsiteConfigurationpada bucket yang ada dengan CloudFormation?

Saya telah melihat pertanyaan lain yang menanyakan hal serupa , tetapi tidak memiliki jawaban yang cocok.

tedder42
sumber

Jawaban:

7

Saya yakin Anda salah dalam menggunakan CloudFormation untuk memodifikasi infrastruktur AWS Anda. Tujuan CloudFormation adalah untuk menciptakan infrastruktur AWS dengan cara templated. Telah diperluas untuk memungkinkan beberapa manajemen sumber daya yang diciptakannya, tetapi mengelola infrastruktur yang ada bukanlah tujuannya. Dari halaman sambutan :

AWS CloudFormation memungkinkan Anda untuk membuat dan menyediakan penyebaran infrastruktur AWS yang dapat diprediksi dan berulang kali.

Saya yakin yang paling dekat yang bisa Anda dapatkan adalah menetapkan kebijakan bucket pada bucket yang ada menggunakan AWS :: S3 :: BucketPolicy . Selain itu, Anda dapat menggunakan AWS CLI S3 API untuk memodifikasi bucket Anda:

dialt0ne
sumber
17
Dia mungkin datang dari arah yang berbeda, tetapi fakta bahwa ketika Anda menghapus tumpukan, jika kebijakan penghapusan untuk ember S3 adalah "retain" dan kemudian Anda pergi menyediakan tumpukan yang sama lagi, Anda akan memiliki kesalahan ini. Sangat menjengkelkan untuk sedikitnya. Setidaknya dengan volume yang dapat Anda snapshot dan pulihkan, sama sekali tidak ada yang dapat Anda lakukan dengan S3.
Sleeper Smith
2
Namun arah lain adalah jika Anda ingin mengubah nama tumpukan Anda. Saya downvoted karena jawaban ini mengasumsikan OP ingin memodifikasi infrastruktur AWS. Ini sering benar hanya karena keterbatasan CF lainnya, sehingga tidak ada yang salah dengan keinginan untuk melakukan ini.
user239558