Назад | Перейти на главную страницу

Загрузите файл с локального компьютера в корзину s3 через облачный скрипт

Я написал сценарий облачной информации для создания корзины 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.