Skip to content

mentoriaiac/iac-modulo-s3

Repository files navigation

iac-modulo-s3

Módulo s3 para criação e manutenção de bucket na AWS S3.

Requisitos

Name Version
aws ~> 3.27

Providers

Name Version
aws 3.75.1

Recursos

Name Type
aws_s3_bucket.my_bucket resource
aws_s3_bucket_acl.acl_bucket resource
aws_s3_bucket_logging.s3_log resource
aws_s3_bucket_public_access_block.policy_s3 resource
aws_s3_bucket_versioning.versioning_example resource

Inputs

Name Description Type Default Required
acl ACL aplicada ao bucket string "private" no
bucket_name Nome do bucket string n/a yes

Outputs

Name Description
this_s3_bucket_acl The acl applied to this bucket
this_s3_bucket_id The id of this bucket.
this_s3_bucket_region The aws region of this bucket

Como utilizar o módulo

No diretório examples/ podem ser encontrados exemplos de utilização, incluindo instruções de como executá-los.

Mas para adiantar um exemplo simples, a utilização do módulo pode ser feita da seguinte maneira:

  • Criação de um bucket com ACL private
module "s3_bucket" {
  source      = "github.com/marcelomansur/iac-modulo-s3"
  bucket_name = "my-private-bucket"
}

Como testar o módulo

No diretório tests/ podem ser encontrados os testes automatizados do módulos, usando terratest + localstack.

Para testar, executar comandos pelo Makefile:

$ make localtest-private-bucket # Executa teste de criação de um bucket privado
$ make localtest-public-bucket # Executa teste de criação de um bucket público

É necessário ter o Go >= 1.15 e Docker >= 20.10.5 para execução dos testes localmente.

TODO

  • Criar novos recursos no módulo (policy, tags, etc)
  • Adicionar mais exemplos (cenários de utilização do módulo)
  • Adicionar mais testes em cada cenário de utilização
  • Criar pipeline CI com testes automatizados (terratest + localstack)