In manchen Szenarien kann es erforderlich sein, ein AWS CodeCommit-Repository zu replizieren. Als ich eine Testorganisation mit AWS Deployment Framework (ADF) einrichtete, stieß ich selbst auf dieses Problem. Da ich die Bereitstellung meiner Landing Zone testen wollte, benötigte ich eine genaue Replikation. Dazu gehört auch die CodeCommit-Einrichtung.
Aber gleichzeitig wollte ich den Entwicklungs-Workflow nicht ändern. Der Arbeitsablauf ist ziemlich einfach. Sie erstellen einen Funktionszweig, in dem Sie arbeiten. Wenn Sie fertig sind, führen Sie ihn mit einem development Zweig zusammen. Wenn es in die Produktion gehen soll, führen Sie es mit dem Zweig main zusammen.
Wir werden also den Zweig development für die Bereitstellung in der Testorganisation verwenden. Aber da die Testorganisation eine Kopie der Produktionsumgebung ist. Das Zusammenführen mit der Verzweigung development mit der Testorganisation synchronisieren.
Wie funktioniert es?
Wir werden eine AWS Lambda-Funktion mit einem Git-Client verwenden, um die folgenden Aktionen durchzuführen:
- Klonen Sie das CodeCommit-Repository.
- Sehen Sie sich die Seite
developmentan. - Nehmen Sie die IAM-Rolle im Zielkonto an.
- Führen Sie eine
git pushdurch. Der Name der CodeCommit-Repositorys in beiden Organisationen ist identisch. Indem Sie eine Rolle in dem AWS-Konto übernehmen, das die CodeCommit-Repositories in der Testorganisation hostet. Sie können einegit pushdurchführen, vorausgesetzt, Sie haben die richtigen Berechtigungen. Die Änderungen werden dann in das Repository in der Testorganisation übertragen. Es gibt einen Unterschied zwischen der Test- und der Produktionsorganisation. Die Testorganisation ist so konfiguriert, dass sie auf den Zweighört. Die Produktionsorganisation hört auf die Verzweigung main. Damit haben Sie den folgenden Arbeitsablauf: - Erstellen Sie eine Pull-Anfrage für Ihren Funktionszweig in
development. - Nach der Überprüfung und Genehmigung können Sie die Pull-Anfrage zusammenführen.
- (automatisch) ein Ereignis ausgelöst wird, verwenden wir eine Ereignisregel, um die Lambda-Funktion auszulösen.
- (Automatisch) wird die Lambda-Funktion dann:
- Klonen Sie den Code und ziehen Sie ihn aus dem Produktions-Repository.
- Übernehmen Sie eine Rolle in der Testorganisation.
- Übertragen Sie den Code in das entfernte Repository der Testorganisation.
- (Automatisch) wird die CodePipeline für das Repository ausgelöst.
Jetzt müssen Sie nur noch bestätigen, ob Ihre Änderungen in der Testorganisation korrekt sind. Wenn Sie damit zufrieden sind, können Sie die Änderung in den Zweig
einbringen. Dadurch werden die gleichen Änderungen in der Produktion eingesetzt.
Fazit
Die Synchronisierung von Git-Repositories kann Ihnen bei automatisierten Tests helfen. Weitere Informationen finden Sie im aws-lambda-git Repository.
Verfasst von

Joris Conijn
Joris is the AWS Practise CTO of the Xebia Cloud service line and has been working with the AWS cloud since 2009 and focussing on building event-driven architectures. While working with the cloud from (almost) the start, he has seen most of the services being launched. Joris strongly believes in automation and infrastructure as code and is open to learning new things and experimenting with them because that is the way to learn and grow.
Unsere Ideen
Weitere Blogs
Contact




