Faça upload de um arquivo da máquina local para o depósito s3 por meio do script cloudformation

1

Eu escrevi um script cloudformation para criar um bucket s3 com regras de versionamento e ciclo de vida. Agora eu quero fazer upload de um arquivo (documento de texto) da minha máquina local para o bucket s3 recém-criado, mas eu não quero fazê-lo manualmente. Existe alguma maneira eu posso dar caminho para o meu arquivo no script cloudformation ou qualquer outra sugestão? Aqui está meu script 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"
            }
        }
      }
   }
 }
    
por Devendra Prakash Date 19.04.2017 / 07:51

1 resposta

2

Se eu entendi corretamente, você está perguntando se há uma maneira de fazer upload de um arquivo para um bucket do S3 por meio da pilha do CloudFormation que cria o bucket. Então a resposta é sim, mas não é simples nem direta.

Existem duas maneiras de conseguir isso.

1) Crie uma instância do EC2 que carregue o arquivo na inicialização. Você provavelmente não deseja iniciar uma instância do EC2 e deixá-la em execução apenas para enviar um único arquivo, mas funcionaria.

2) Use um recurso personalizado suportado pelo Lambda. Consulte o link para obter informações sobre recursos personalizados. No CloudFormation, você pode criar a própria função do Lambda e criar um recurso personalizado com base nessa função do Lambda. Quando o recurso personalizado é criado, a função do Lambda seria chamada e você poderia usar essa chamada de função para carregar o arquivo.

Note que ambas as abordagens também exigiriam a criação de uma função do IAM para conceder as permissões necessárias para executar o upload do S3.

    
por 19.04.2017 / 18:16