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á.
Automatize backups orientados por eventos para o Amazon CodeCommit S3 usando e Eventos CodeBuild CloudWatch
Criado por Kirankumar Chandrashekar () AWS
Resumo
Na nuvem Amazon Web Services (AWS), você pode usar AWS CodeCommit para hospedar repositórios seguros baseados em Git. CodeCommit é um serviço de controle de origem totalmente gerenciado. No entanto, se um CodeCommit repositório for excluído acidentalmente, seu conteúdo também será excluído e não poderá ser restaurado
Esse padrão descreve como fazer backup automático de um CodeCommit repositório em um bucket do Amazon Simple Storage Service (Amazon S3) após uma alteração ser feita no repositório. Se o CodeCommit repositório for excluído posteriormente, essa estratégia de backup fornecerá uma opção de point-in-time recuperação.
Pré-requisitos e limitações
Pré-requisitos
Uma conta da AWS ativa.
Um CodeCommit repositório existente, com acesso do usuário configurado de acordo com seus requisitos. Para obter mais informações, consulte Configuração para AWS CodeCommit na CodeCommit documentação.
Um bucket S3 para fazer o upload dos CodeCommit backups.
Limitações
Esse padrão faz backup automático de todos os seus CodeCommit repositórios. Se quiser fazer backup de CodeCommit repositórios individuais, você deve modificar a regra do Amazon CloudWatch Events.
Arquitetura
O diagrama a seguir ilustra o fluxo de trabalho deste padrão.
![Nuvem AWS architecture showing Git push workflow from Users to S3 bucket via CodeCommit and CodeBuild.](images/pattern-img/b162a835-f24b-49ef-8184-6068c6c6b255/images/ddd61eb9-bcf7-42db-a1ab-4f695d038349.png)
O fluxo de trabalho consiste nas seguintes etapas:
O código é enviado para um CodeCommit repositório.
O CodeCommit repositório notifica CloudWatch os eventos de uma alteração no repositório (por exemplo, um
git push
comando).CloudWatch Events invoca AWS CodeBuild e envia as informações do CodeCommit repositório.
CodeBuild clona o CodeCommit repositório inteiro e o empacota em um arquivo.zip.
CodeBuild carrega o arquivo.zip em um bucket do S3.
Pilha de tecnologia
CloudWatch Eventos
CodeBuild
CodeCommit
Amazon S3
Ferramentas
Amazon CloudWatch Events — CloudWatch Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos AWS recursos.
AWS CodeBuild— CodeBuild é um serviço de integração contínua totalmente gerenciado que compila o código-fonte, executa testes e produz pacotes de software prontos para implantação.
AWS CodeCommit— CodeCommit é um serviço de controle de origem totalmente gerenciado que hospeda repositórios seguros baseados em Git.
AWSIdentity and Access Management (IAM) — IAM é um serviço web que ajuda você a controlar com segurança o acesso aos AWS recursos.
Amazon S3: o Amazon Simple Storage Service (Amazon S3) serve como armazenamento para a internet.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma função CodeBuild de serviço. | Faça login no Console de Gerenciamento da AWS e abra o console do IAM. Selecione Perfis e, depois, Criar perfil. Crie uma função de serviço CodeBuild para clonar o CodeCommit repositório, fazer upload de arquivos para o bucket do S3 e enviar registros para a Amazon. CloudWatch Para obter mais informações, consulte Criar uma função de CodeBuild serviço na CodeBuild documentação. | Administrador de nuvem |
Crie um CodeBuild projeto. | No CodeBuild console, escolha Criar CodeBuild projeto. Crie um CodeBuild projeto usando o | Administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma IAM função para CloudWatch Eventos. | No IAM console, escolha Funções e crie uma IAM função para CloudWatch Eventos. Para obter mais informações sobre isso, consulte IAMFunção de CloudWatch eventos na IAM documentação. ImportanteVocê deve adicionar | Administrador de nuvem |
Crie uma regra de CloudWatch eventos. |
ImportanteEssa regra de CloudWatch eventos descreve as alterações em todos os seus CodeCommit repositórios. Você deve modificar a regra de CloudWatch Eventos se quiser fazer backup de CodeCommit repositórios individuais ou usar buckets S3 separados para backups de repositórios diferentes. | Administrador de nuvem |
Recursos relacionados
Criando um CodeBuild projeto
Criando e configurando uma regra de CloudWatch eventos
Mais informações
CodeBuild modelo buildspec.yml
version: 0.2 phases: install: commands: - pip install git-remote-codecommit build: commands: - env - git clone -b $REFERENCE_NAME codecommit::$REPO_REGION://$REPOSITORY_NAME - dt=$(date '+%d-%m-%Y-%H:%M:%S'); - echo "$dt" - zip -yr $dt-$REPOSITORY_NAME-backup.zip ./ - aws s3 cp $dt-$REPOSITORY_NAME-backup.zip s3:// #substitute a valid S3 Bucket Name here
CloudWatch Regra de eventos
{ "source": [ "aws.codecommit" ], "detail-type": [ "CodeCommit Repository State Change" ], "detail": { "event": [ "referenceCreated", "referenceUpdated" ] } }
Transformador de entrada de amostra para o alvo da regra de CloudWatch eventos
Caminho de entrada:
{"referenceType":"$.detail.referenceType","region":"$.region","repositoryName":"$.detail.repositoryName","account":"$.account","referenceName":"$.detail.referenceName"}
Modelo de entrada (preencha os valores conforme apropriado):
{ "environmentVariablesOverride": [ { "name": "REFERENCE_NAME", "value": "" }, { "name": "REFERENCE_TYPE", "value": "" }, { "name": "REPOSITORY_NAME", "value": "" }, { "name": "REPO_REGION", "value": "" }, { "name": "ACCOUNT_ID", "value": "" } ] }