

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Melhores práticas para módulos comunitários
<a name="community"></a>

Usar módulos de forma eficaz é fundamental para gerenciar configurações complexas do Terraform e promover a reutilização. Esta seção fornece as melhores práticas sobre módulos, dependências, fontes, abstração e contribuições da comunidade.

**Topics**
+ [Descubra os módulos da comunidade](#discovery)
+ [Entenda as dependências](#dependencies)
+ [Use fontes confiáveis](#trusted-sources)
+ [Contribua com os módulos da comunidade](#contribute-community)

## Descubra os módulos da comunidade
<a name="discovery"></a>

Pesquise no [Registro do Terraform](https://registry.terraform.io/namespaces/terraform-aws-modules) e em outras fontes os AWS módulos existentes que possam resolver seu caso de uso antes de criar um novo módulo. [GitHub](https://github.com/terraform-aws-modules) Procure opções populares que tenham atualizações recentes e sejam mantidas ativamente.

### Use variáveis para personalização
<a name="customization"></a>

Ao usar módulos comunitários, passe as entradas por meio de variáveis em vez de bifurcar ou modificar diretamente o código-fonte. Substitua os padrões quando necessário, em vez de alterar os componentes internos do módulo.

A bifurcação deve se limitar a contribuir com correções ou recursos para o módulo original para beneficiar a comunidade em geral.

## Entenda as dependências
<a name="dependencies"></a>

Antes de usar o módulo, revise o código-fonte e a documentação para identificar dependências:
+ **Provedores obrigatórios**: observe as versões do AWS Kubernetes ou de outros provedores que o módulo exige.
+ **Módulos aninhados**: verifique se há outros módulos usados internamente que introduzem dependências em cascata.
+ **Fontes de dados externas**: observe as APIs, plug-ins personalizados ou dependências de infraestrutura nas quais o módulo depende.

Ao mapear a árvore completa de dependências diretas e indiretas, você pode evitar surpresas ao usar o módulo.

## Use fontes confiáveis
<a name="trusted-sources"></a>

O fornecimento de módulos do Terraform de editores não verificados ou desconhecidos apresenta um risco significativo. Use módulos somente de fontes confiáveis.
+ Dê preferência aos módulos certificados do [Terraform Registry](https://registry.terraform.io/namespaces/terraform-aws-modules) que são publicados por criadores verificados, como AWS ou HashiCorp parceiros.
+ Para módulos personalizados, revise o histórico do editor, os níveis de suporte e a reputação de uso, mesmo que o módulo seja da sua própria organização.

Ao não permitir módulos de fontes desconhecidas ou não verificadas, você pode reduzir o risco de injetar vulnerabilidades ou problemas de manutenção em seu código.

### Assinar notificações do
<a name="subscribe"></a>

Inscreva-se para receber notificações de lançamentos de novos módulos de editores confiáveis:
+ Observe os repositórios do GitHub módulo para receber alertas sobre novas versões do módulo.
+ Monitore os blogs e registros de alterações dos editores em busca de atualizações.
+ Receba notificações proativas para novas versões de fontes verificadas e altamente avaliadas, em vez de obter atualizações implicitamente.

O consumo de módulos somente de fontes confiáveis e o monitoramento de alterações fornecem estabilidade e segurança. Módulos aprovados aumentam a produtividade e minimizam o risco da cadeia de suprimentos.

## Contribua com os módulos da comunidade
<a name="contribute-community"></a>

Envie correções e aprimoramentos para os módulos da comunidade hospedados em: GitHub
+ Abra solicitações pull em módulos para resolver defeitos ou limitações que você encontra em seu uso.
+ Solicite que novas configurações de melhores práticas sejam adicionadas aos módulos OSS existentes criando problemas.

Contribuir com os módulos da comunidade aprimora os padrões codificados e reutilizáveis para todos os profissionais do Terraform.