Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Automatisieren Sie ereignisgesteuerte Backups von CodeCommit zu Amazon S3 mithilfe CodeBuild von und Events CloudWatch
Erstellt von Kirankumar Chandrashekar () AWS
Umwelt: Produktion | Technologien: DevOps; Speicher und Backup | Arbeitslast: Alle anderen Workloads |
AWSDienste: Amazon S3; Amazon CloudWatch AWS CodeBuild; AWS CodeCommit |
Übersicht
In der Amazon Web Services (AWS) Cloud können AWS CodeCommit Sie sichere Git-basierte Repositorys hosten. CodeCommit ist ein vollständig verwalteter Dienst zur Quellcodeverwaltung. Wenn ein CodeCommit Repository jedoch versehentlich gelöscht wird, wird sein Inhalt ebenfalls gelöscht und kann nicht wiederhergestellt werden
Dieses Muster beschreibt, wie ein CodeCommit Repository automatisch in einem Amazon Simple Storage Service (Amazon S3) -Bucket gesichert wird, nachdem eine Änderung am Repository vorgenommen wurde. Wenn das CodeCommit Repository später gelöscht wird, bietet Ihnen diese Backup-Strategie eine point-in-time Wiederherstellungsoption.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
Ein vorhandenes CodeCommit Repository, dessen Benutzerzugriff gemäß Ihren Anforderungen konfiguriert ist. Weitere Informationen finden Sie AWS CodeCommit in der CodeCommit Dokumentation unter Einrichtung für.
Ein S3-Bucket zum Hochladen der CodeCommit Backups.
Einschränkungen
Dieses Muster sichert automatisch alle Ihre CodeCommit Repositorys. Wenn Sie einzelne CodeCommit Repositorys sichern möchten, müssen Sie die Amazon CloudWatch Events-Regel ändern.
Architektur
Das folgende Diagramm veranschaulicht den Arbeitsablauf für dieses Muster.
Der Workflow besteht aus folgenden Schritten:
Der Code wird in ein CodeCommit Repository übertragen.
Das CodeCommit Repository benachrichtigt CloudWatch Events über eine Änderung des Projektarchivs (z. B. einen
git push
Befehl).CloudWatch Events ruft die CodeCommit Repository-Informationen auf AWS CodeBuild und sendet sie.
CodeBuild klont das gesamte CodeCommit Repository und packt es in eine ZIP-Datei.
CodeBuild lädt die ZIP-Datei in einen S3-Bucket hoch.
Technologie-Stack
CloudWatch Ereignisse
CodeBuild
CodeCommit
Amazon S3
Tools
Amazon CloudWatch Events — CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen beschreiben, nahezu in Echtzeit.
AWS CodeBuild— CodeBuild ist ein vollständig verwalteter Continuous-Integration-Service, der Quellcode kompiliert, Tests durchführt und Softwarepakete erstellt, die sofort einsatzbereit sind.
AWS CodeCommit— CodeCommit ist ein vollständig verwalteter Quellcodeverwaltungsdienst, der sichere Git-basierte Repositorys hostet.
AWSIdentity and Access Management (IAM) — IAM ist ein Webdienst, mit dem Sie den Zugriff auf AWS Ressourcen sicher kontrollieren können.
Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine CodeBuild Servicerolle. | Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM Konsole. Wählen Sie Rollen und anschließend Rolle erstellen aus. Erstellen Sie eine Servicerolle für das CodeBuild Klonen des CodeCommit Repositorys, das Hochladen von Dateien in den S3-Bucket und das Senden von Protokollen an Amazon CloudWatch. Weitere Informationen finden Sie in der CodeBuild Dokumentation unter Eine CodeBuild Servicerolle erstellen. | Cloud-Administrator |
Erstellen Sie ein CodeBuild Projekt. | Wählen Sie in der CodeBuild Konsole die Option CodeBuild Projekt erstellen aus. Erstellen Sie ein CodeBuild Projekt mithilfe der | Cloud-Administrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine IAM Rolle für CloudWatch Ereignisse. | Wählen Sie in der IAM Konsole Rollen aus und erstellen Sie eine IAM Rolle für CloudWatch Ereignisse. Weitere Informationen dazu finden Sie in der IAM Dokumentation unter IAMRolle „CloudWatch Ereignisse“. Wichtig: Sie müssen der IAM Rolle für CloudWatch Ereignisse | Cloud-Administrator |
Erstellen Sie eine CloudWatch Ereignisregel. |
Wichtig: Diese CloudWatch Ereignisregel beschreibt Änderungen in all Ihren CodeCommit Repositorys. Sie müssen die CloudWatch Ereignisregel ändern, wenn Sie einzelne CodeCommit Repositorys sichern oder separate S3-Buckets für verschiedene Repository-Backups verwenden möchten. | Cloud-Administrator |
Zugehörige Ressourcen
Ein CodeBuild Projekt erstellen
Eine CloudWatch Ereignisregel erstellen und konfigurieren
Zusätzliche Informationen
CodeBuild buildspec.yml-Vorlage
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 Regel für Ereignisse
{ "source": [ "aws.codecommit" ], "detail-type": [ "CodeCommit Repository State Change" ], "detail": { "event": [ "referenceCreated", "referenceUpdated" ] } }
Beispiel für einen Eingangstransformator für das Regelziel „ CloudWatch Ereignisse“
Eingabepfad:
{"referenceType":"$.detail.referenceType","region":"$.region","repositoryName":"$.detail.repositoryName","account":"$.account","referenceName":"$.detail.referenceName"}
Eingabevorlage (bitte geben Sie die entsprechenden Werte ein):
{ "environmentVariablesOverride": [ { "name": "REFERENCE_NAME", "value": "" }, { "name": "REFERENCE_TYPE", "value": "" }, { "name": "REPOSITORY_NAME", "value": "" }, { "name": "REPO_REGION", "value": "" }, { "name": "ACCOUNT_ID", "value": "" } ] }