A AWS anunciou a descontinuação do CodeCommit, a sua solução de repositório Git gerido. Para muitas equipas, isto representa um desafio, uma vez que o CodeCommit fornecia controlo de versões, gestão de acessos e integração nativa com outros serviços AWS. No entanto, existe uma alternativa robusta dentro do próprio ecossistema AWS: o Amazon S3.
Embora não seja um repositório Git, o S3 oferece funcionalidades que podem satisfazer muitas das necessidades de versionamento e colaboração. Vamos explorar como tirar partido das suas capacidades para substituir o CodeCommit de forma eficiente.
- Controlo de Versões com o S3 O S3 possui uma funcionalidade de controlo de versões integrada que pode ser ativada para rastrear todas as alterações feitas nos ficheiros armazenados. Isto permite:
Manter um histórico completo de alterações.
Restaurar versões anteriores de ficheiros quando necessário.
Proteger contra eliminações acidentais.
Para ativar o controlo de versões no S3:
aws s3api put-bucket-versioning --bucket meu-repositorio --versioning-configuration Status=Enabled
Isto garante que quaisquer modificações ou eliminações de ficheiros sejam registadas e reversíveis.
- Notificações e Integrações com SNS, EventBridge e CloudWatch O CodeCommit fornecia notificações para alterações nos repositórios. O S3 pode substituir esta funcionalidade através de notificações automáticas com SNS, EventBridge e CloudWatch:
SNS (Simple Notification Service): Permite alertas em tempo real para os programadores sobre alterações em ficheiros específicos.
EventBridge: Facilita a integração com outros serviços AWS para automação, como o acionamento de processos CI/CD.
CloudWatch e CloudTrail: Monitorizam acessos e modificações, garantindo uma auditoria completa.
Para configurar uma notificação SNS quando um novo objeto for carregado:
aws s3api put-bucket-notification-configuration --bucket meu-repositorio --notification-configuration '{
"TopicConfigurations": [
{
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MeuTopico",
"Events": ["s3:ObjectCreated:*"]
}
]
}'
Isto garante que sempre que um novo ficheiro for adicionado ou atualizado, uma notificação será enviada.
- Controlo de Acesso e Auditoria com IAM e CloudTrail O CodeCommit oferecia um controlo refinado de permissões via IAM. No S3, isto pode ser replicado com políticas IAM e registos detalhados do CloudTrail.
Políticas IAM: Definem quem pode aceder ou modificar ficheiros no S3.
CloudTrail: Regista todas as ações realizadas no bucket para auditoria e conformidade.
Exemplo de uma política IAM para permitir acesso apenas de leitura a um bucket S3:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::meu-repositorio/"
}
]
}
Conclusão
A descontinuação do CodeCommit pode parecer um problema, mas o S3 pode tornar-se um substituto eficaz. Com controlo de versões, notificações, monitorização e um robusto sistema de gestão de acessos, permite um armazenamento e gestão de código seguros e escaláveis.
Se procura uma alternativa dentro do ecossistema AWS, o S3 pode ser a solução ideal para as suas necessidades!