использование 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"
    }
  }
},

Не удивительно, что это не удается в консоли облачной информации:

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

Я создал ведро preview.website.com. Я имею в виду, этот аккаунт "владеет" этим ведром. Как я могу установить такие вещи, как AccessControlи WebsiteConfigurationна существующую корзину с CloudFormation?

Я видел другой вопрос, задающий что-то похожее , но у него нет подходящего ответа.

tedder42
источник

Ответы:

7

Я полагаю, что вы ошиблись в использовании CloudFormation для изменения своей инфраструктуры AWS. Цель CloudFormation - создать инфраструктуру AWS на основе шаблонов. Он был расширен, чтобы обеспечить некоторое управление ресурсами, которые он создает, но управление существующей инфраструктурой не является его целью. Со страницы приветствия :

AWS CloudFormation позволяет предсказуемо и многократно создавать и предоставлять развертывания инфраструктуры AWS.

Я считаю, что самое близкое, что вы сможете получить, - это установить политику сегмента для существующего сегмента, используя AWS :: S3 :: BucketPolicy . Кроме того, вы можете использовать AWS CLI S3 API для изменения вашего сегмента:

dialt0ne
источник
17
Он может исходить из другого направления, но тот факт, что при удалении стека, если политика удаления для сегмента S3 «сохранить», а затем вы снова предоставите тот же стек, у вас будет эта ошибка. Очень раздражает, если не сказать больше. По крайней мере, с томами, которые можно снимать и восстанавливать, с S3 вы абсолютно ничего не можете сделать.
Спящий Смит
2
Еще одно направление, если вы хотите переименовать свой стек. Я опущен, потому что этот ответ предполагает, что ОП хочет изменить инфраструктуру AWS. Это часто верно только из-за других ограничений CF, поэтому нет ничего плохого в желании сделать это.
user239558