Используя CloudFormation, я хочу установить некоторые свойства в AWS :: S3 :: Bucket на существующий ведро. Другими словами, я не хочу создавать корзину, я просто хочу принудительно применить некоторые настройки. Вот пример моего CloudFormation 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
Я создал ведро preview.website.com
. Я имею в виду, что это ведро принадлежит этому аккаунту. Как я могу установить такие вещи, как AccessControl
и WebsiteConfiguration
в существующей корзине с CloudFormation?
я видел другой вопрос, задающий что-то подобное, но на него нет подходящего ответа.
Я считаю, что вы ошиблись, используя CloudFormation для изменения своей инфраструктуры AWS. Цель CloudFormation - создать инфраструктуру AWS по шаблону. Он был расширен, чтобы позволить некоторое управление ресурсами, которые он создает, но управление существующей инфраструктурой не является его целью. Из страница приветствия:
AWS CloudFormation позволяет многократно и предсказуемо создавать и предоставлять развертывания инфраструктуры AWS.
Я считаю, что самое близкое, что вы сможете получить, - это установить политику сегмента для существующего сегмента, используя AWS :: S3 :: BucketPolicy. Помимо этого вы можете использовать AWS CLI S3 API чтобы изменить ведро: