Я написал сценарий облачной информации для создания корзины s3 с управлением версиями и правилом жизненного цикла. теперь я хочу загрузить один файл (текстовый документ) с моего локального компьютера во вновь созданное ведро s3, но я не хочу делать это вручную. Есть ли способ указать путь к моему файлу в облачном скрипте или другом предложении? Вот мой сценарий CF
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"S3Bucket" : {
"Type" : "AWS::S3::Bucket",
"Properties" : {
"AccessControl" : "PublicRead",
"BucketName" : "s3testdemo",
"LifecycleConfiguration": {
"Rules": [
{
"Id": "GlacierRule",
"Status": "Enabled",
"ExpirationInDays": "365",
"Transition": {
"TransitionInDays": "30",
"StorageClass": "Glacier"
}
}
]
},
"VersioningConfiguration" : {
"Status" : "Enabled"
}
}
}
}
}
Если я правильно вас понял, вы спрашиваете, есть ли способ загрузить файл в корзину S3 через стек CloudFormation, который создает корзину. Тогда ответ - да, но это непросто.
Это можно сделать двумя способами.
1) Создайте экземпляр EC2, который загружает файл при запуске. Вы, вероятно, не захотите запускать экземпляр EC2 и оставлять его работающим только для отправки одного файла, но это сработает.
2) Используйте настраиваемый ресурс с поддержкой Lambda. Видеть http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html для получения информации о пользовательских ресурсах. В CloudFormation вы можете создать саму лямбда-функцию, а затем создать собственный ресурс на основе этой лямбда-функции. При создании настраиваемого ресурса будет вызвана функция Lambda, и вы сможете использовать вызов этой функции для загрузки файла.
Обратите внимание, что оба подхода также потребуют создания роли IAM для предоставления разрешений, необходимых для выполнения загрузки S3.