ใช้ CloudFormation กับที่ฝากข้อมูล S3 ที่มีอยู่


27

ใช้ CloudFormation ฉันต้องการตั้งค่าคุณสมบัติบางอย่างในAWS :: S3 :: Bucketบนฝากข้อมูลที่มีอยู่ กล่าวอีกนัยหนึ่งฉันไม่ต้องการสร้างที่เก็บข้อมูลฉันเพียงต้องการบังคับใช้การตั้งค่าบางอย่าง นี่เป็นตัวอย่างของ JSON ของฉัน

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

ไม่น่าแปลกใจที่สิ่งนี้ล้มเหลวในคอนโซลของ cloudformation:

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

ฉันสร้าง bucket preview.website.com แล้ว ฉันหมายถึงบัญชีนี้ "เป็นเจ้าของ" ฝากข้อมูลนั้น ฉันจะตั้งค่าสิ่งต่าง ๆ ที่ชอบAccessControlและWebsiteConfigurationบนที่ฝากข้อมูลที่มีอยู่ด้วย CloudFormation ได้อย่างไร

ฉันเคยเห็นคำถามอื่นถามสิ่งที่คล้ายกันแต่มันไม่มีคำตอบที่เหมาะสม

คำตอบ:


7

ฉันเชื่อว่าคุณเข้าใจผิดในการใช้ CloudFormation เพื่อแก้ไขโครงสร้างพื้นฐาน AWS ของคุณ เป้าหมายของ CloudFormation คือการสร้างโครงสร้างพื้นฐาน AWS ในรูปแบบ templated มันได้รับการขยายเพื่อให้การจัดการทรัพยากรที่สร้าง แต่การจัดการโครงสร้างพื้นฐานที่มีอยู่ไม่ได้เป็นเป้าหมาย จากหน้ายินดีต้อนรับ :

AWS CloudFormation ช่วยให้คุณสร้างและจัดเตรียมการปรับใช้โครงสร้างพื้นฐาน AWS ได้อย่างคาดการณ์และซ้ำ ๆ

ผมเชื่อว่าที่ใกล้เคียงที่สุดที่คุณจะสามารถที่จะได้รับคือการกำหนดนโยบายถังในถังมีอยู่โดยใช้AWS :: S3 :: BucketPolicy นอกเหนือจากนั้นคุณสามารถใช้AWS CLI S3 APIเพื่อแก้ไขที่เก็บข้อมูลของคุณ:


17
เขาอาจจะมาจากทิศทางที่แตกต่างกัน แต่ความจริงที่ว่าเมื่อคุณลบสแต็คหากนโยบายการลบ S3 bucket เป็น "เก็บ" แล้วคุณไปเตรียมสแต็กเดียวกันอีกครั้งคุณจะมีข้อผิดพลาดนี้ รำคาญมากที่จะพูดน้อย อย่างน้อยที่สุดคุณสามารถถ่ายภาพและกู้คืนไดรฟ์ข้อมูลได้อย่างสมบูรณ์คุณไม่สามารถทำอะไรกับ S3 ได้
Sleeper Smith

2
อีกทิศทางหนึ่งคือถ้าคุณต้องการเปลี่ยนชื่อสแต็กของคุณ ฉันลงคะแนนเพราะคำตอบนี้ถือว่า OP ต้องการแก้ไขโครงสร้างพื้นฐาน AWS สิ่งนี้มักเป็นจริงเพียงเพราะข้อ จำกัด อื่น ๆ ของ CF ดังนั้นจึงไม่มีอะไรผิดปกติที่ต้องการทำเช่นนี้
user239558
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.