Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Automatizza i backup basati sugli eventi da Amazon CodeCommit S3 utilizzando and Events CodeBuild CloudWatch
Creato da Kirankumar Chandrashekar () AWS
Ambiente: produzione | Tecnologie: DevOps; Archiviazione e backup | Carico di lavoro: tutti gli altri carichi di lavoro |
AWSservizi: Amazon S3; Amazon CloudWatch; AWS CodeBuild AWS CodeCommit |
Riepilogo
Sul cloud Amazon Web Services (AWS), puoi utilizzarlo AWS CodeCommit per ospitare repository sicuri basati su Git. CodeCommit è un servizio di controllo del codice sorgente completamente gestito. Tuttavia, se un CodeCommit repository viene eliminato accidentalmente, anche il relativo contenuto viene eliminato e non può essere
Questo modello descrive come eseguire automaticamente il backup di un CodeCommit repository su un bucket Amazon Simple Storage Service (Amazon S3) dopo aver apportato una modifica al repository. Se il CodeCommit repository viene successivamente eliminato, questa strategia di backup offre un'opzione di ripristino. point-in-time
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo.
Un CodeCommit repository esistente, con accesso utente configurato in base alle esigenze dell'utente. Per ulteriori informazioni, consulta Configurazione AWS CodeCommit nella CodeCommit documentazione.
Un bucket S3 per caricare i backup. CodeCommit
Limitazioni
Questo modello esegue automaticamente il backup di tutti i tuoi repository. CodeCommit Se desideri eseguire il backup di singoli CodeCommit repository, devi modificare la regola di Amazon CloudWatch Events.
Architettura
Il diagramma seguente illustra il flusso di lavoro per questo modello.
Il flusso di lavoro consiste nei seguenti passaggi:
Il codice viene inviato a un repository. CodeCommit
Il CodeCommit repository notifica a CloudWatch Events una modifica del repository (ad esempio, un comando).
git push
CloudWatch Events richiama AWS CodeBuild e invia le informazioni del repository. CodeCommit
CodeBuild clona l'intero CodeCommit repository e lo impacchetta in un file.zip.
CodeBuild carica il file.zip in un bucket S3.
stack tecnologico
CloudWatch Eventi
CodeBuild
CodeCommit
Amazon S3
Strumenti
Amazon CloudWatch Events — CloudWatch Events offre un flusso quasi in tempo reale di eventi di sistema che descrivono i cambiamenti nelle AWS risorse.
AWS CodeBuild— CodeBuild è un servizio di integrazione continua completamente gestito che compila il codice sorgente, esegue test e produce pacchetti software pronti per l'implementazione.
AWS CodeCommit— CodeCommit è un servizio di controllo del codice sorgente completamente gestito che ospita repository sicuri basati su Git.
AWSIdentity and Access Management (IAM): IAM è un servizio Web che consente di controllare in modo sicuro l'accesso alle AWS risorse.
Amazon S3 — Amazon Simple Storage Service (Amazon S3) è uno storage per Internet.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un ruolo CodeBuild di servizio. | Accedi alla console di AWS gestione e apri la IAM console. Scegli Ruoli e scegli Crea ruolo. Crea un ruolo di servizio per CodeBuild clonare il CodeCommit repository, caricare file nel bucket S3 e inviare log ad Amazon. CloudWatch Per ulteriori informazioni, consulta Creare un ruolo di CodeBuild servizio nella documentazione. CodeBuild | Amministratore cloud |
Crea un CodeBuild progetto. | Sulla CodeBuild console, scegli Crea CodeBuild progetto. Crea un CodeBuild progetto utilizzando il | Amministratore cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un IAM ruolo per CloudWatch Events. | Sulla IAM console, scegli Ruoli e crea un IAM ruolo per CloudWatch Eventi. Per ulteriori informazioni su questo argomento, consulta il IAMruolo CloudWatch Events nella IAM documentazione. Importante: è necessario aggiungere | Amministratore cloud |
Crea una regola per CloudWatch gli eventi. |
Importante: questa regola CloudWatch degli eventi descrive le modifiche in tutti i tuoi CodeCommit repository. È necessario modificare la regola CloudWatch Events se si desidera eseguire il backup di singoli CodeCommit repository o utilizzare bucket S3 separati per backup di repository diversi. | Amministratore cloud |
Risorse correlate
Creazione di un CodeBuild progetto
Creazione e configurazione di una regola Events CloudWatch
Informazioni aggiuntive
CodeBuild modello 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 Regola degli eventi
{ "source": [ "aws.codecommit" ], "detail-type": [ "CodeCommit Repository State Change" ], "detail": { "event": [ "referenceCreated", "referenceUpdated" ] } }
Esempio di trasformatore di input per l'obiettivo della regola CloudWatch Events
Percorso di input:
{"referenceType":"$.detail.referenceType","region":"$.region","repositoryName":"$.detail.repositoryName","account":"$.account","referenceName":"$.detail.referenceName"}
Modello di input (inserisci i valori appropriati):
{ "environmentVariablesOverride": [ { "name": "REFERENCE_NAME", "value": "" }, { "name": "REFERENCE_TYPE", "value": "" }, { "name": "REPOSITORY_NAME", "value": "" }, { "name": "REPO_REGION", "value": "" }, { "name": "ACCOUNT_ID", "value": "" } ] }