AWS CodeBuild – Häufig gestellte Fragen
Allgemeines
F: Was ist AWS CodeBuild?
AWS CodeBuild ist ein vollständig verwalteter Service für die kontinuierliche Integration in der Cloud. CodeBuild kompiliert Quellcode, führt Tests aus und generiert implementierbare Softwarepakete. Dank CodeBuild brauchen Sie keine eigenen Entwicklungsserver mehr bereitzustellen, zu verwalten und zu skalieren. CodeBuild skaliert automatisch auf- und abwärts und kann auch mehrere Builds gleichzeitig verarbeiten. Keine Builds bleiben mehr in Warteschlangen hängen. Mit den vorkonfigurierten Build-Umgebungen von CodeBuild gelingt der Einstieg leicht. Jedoch können Sie auch benutzerdefinierte Build-Umgebungen mit Ihren eigenen Entwicklungstools verwenden. Die Services von CodeBuild werden minutengenau abgerechnet.
F: Weshalb sollte ich CodeBuild verwenden?
Anstatt eigene Build-Server-Software einrichten, aktualisieren und verwalten zu müssen, können Sie den vollständig verwalteten Service von CodeBuild verwenden. Sie reichen Ihre Build-Aufträge in CodeBuild ein, und CodeBuild führt diese in temporären Rechencontainern aus, die für jeden Build neu erstellt und danach verworfen werden. Sie brauchen keine Build-Serverhardware oder -software mehr zu verwalten. CodeBuild passt sich automatisch an Ihr Build-Volumen an. Es verarbeitet die eingereichten Build-Aufträge sofort, wobei mehrere Builds auch parallel ausgeführt werden können. Keine Builds bleiben mehr in Warteschlangen hängen.
F: Wie sieht die Preisgestaltung von CodeBuild aus?
Einzelheiten finden Sie auf der Seite mit der Preisübersicht zu AWS CodeBuild.
F: Kann ich CodeBuild zur Automatisierung meines Freigabeprozesses verwenden?
Ja. CodeBuild ist mit AWS CodePipeline integriert. Daher können Sie eine Build-Aktion hinzufügen und einen Continuous Integration-/Continuous Delivery-Prozess einrichten, der in der Cloud ausgeführt wird. Informationen zur Einrichtung und Überwachung Ihrer Builds in der CodePipeline-Konsole erhalten Sie hier.
Verwendung von CodeBuild
F: Was ist ein Build-Projekt?
Ein Build-Projekt definiert, wie CodeBuild einen Build ausführt. Es gibt an, wo sich der Quellcode befindet, welche Build-Umgebung verwendet werden soll, welche Build-Befehle ausgeführt werden sollen und wo die Build-Ausgabe gespeichert werden soll. Eine Build-Umgebung ist eine Kombination aus Betriebssystem, Laufzeit der Programmiersprache und den von CodeBuild zur Ausführung eines Builds verwendeten Tools.
F: Wie konfiguriere ich ein Build-Projekt?
Ein Build-Projekt kann über die Konsole oder in der AWS Befehlszeilenschnittstelle konfiguriert werden. Sie geben den Speicherort des Quellrepositorys, die Laufzeitumgebung, die Build-Befehle, die vom Container angenommene IAM-Rolle und die für die Ausführung des Builds erforderliche Verarbeitungsklasse an. Optional können Sie die Build-Befehle auch in der Datei „buildspec.yml“ angeben.
F: Welche Quellrepositorys unterstützt CodeBuild?
Zum Abrufen des Quellcodes für die Builds kann CodeBuild Verbindungen mit AWS CodeCommit, S3, GitHub und GitHub Enterprise und Bitbucket herstellen.
F: Welche Programmierungs-Frameworks unterstützt CodeBuild?
CodeBuild stellt vorkonfigurierte Umgebungen für unterstützte Versionen von Java, Ruby, Python, Go, Node.js, Android, .NET Core, PHP und Docker bereit. Sie können auch eine eigene Umgebung konfigurieren, indem Sie ein Docker-Image erstellen und dieses in die Amazon EC2 Container Registry oder in die Docker Hub Registry hochladen. Dieses benutzerdefinierte Image können Sie dann in Ihrem Build-Projekt referenzieren.
F: Welche vorkonfigurierten Windows-Build-Laufzeitversionen stellt CodeBuild bereit?
CodeBuild stellt eine vorkonfigurierte Windows-Build-Umgebung für .NET Core 2.0 bereit. Wir würden gerne eine vorkonfigurierte Build-Umgebung für Microsoft .NET Framework-Nutzer bereitstellen, von denen viele bereits eine Lizenz für die Nutzung von proprietären Microsoft-Bibliotheken besitzen. Microsoft konnte sich bisher jedoch noch nicht entschließen, mit uns in diesem Punkt zusammen zu arbeiten, sodass wir diesem Kundenwunsch derzeit noch nicht entsprechen können. Sie können jedoch eine eigene Umgebung konfigurieren, um andere Build-Plattformziele wie z. B. NET Framework zu unterstützen, indem Sie ein Docker-Image erstellen und es in die Amazon EC2 Container Registry oder die Docker Hub Registry hochladen. Dieses benutzerdefinierte Image können Sie dann in Ihrem Build-Projekt referenzieren.
F: Was geschieht bei der Ausführung eines Builds?
CodeBuild erstellt einen temporären Rechencontainer mit der im Build-Projekt definierten Klasse, lädt in diesem Container die angegebene Laufzeitumgebung, lädt den Quellcode herunter, führt die im Projekt konfigurierten Befehle aus, lädt das generierte Artefakt in ein S3-Bucket hoch und verwirft den Rechencontainer danach wieder. Während des Builds streamt CodeBuild die Build-Ausgabe auf die Servicekonsole und in die Amazon CloudWatch-Protokolle.
F: Wie richte ich meinen ersten Build ein?
Melden Sie sich bei der AWS Management Console an, erstellen Sie ein Build-Projekt und führen Sie dann einen Build aus. Eine Einführung in CodeBuild erhalten Sie im Abschnitt Erste Schritte, der auch ein Tutorial mit einer Schritt-für-Schritt-Anleitung enthält. Außerdem können Sie auch CodeBuild Local verwenden, um Ihren Build lokal zu testen und zu debuggen.
F: Kann ich CodeBuild mit Jenkins verwenden?
Ja. Zur Integration von CodeBuild in Jenkins-Aufträge verwenden Sie das CodeBuild-Plug-in für Jenkins. Die Build-Aufträge werden an CodeBuild gesendet. Damit entfällt für Sie die Bereitstellung und Verwaltung der Jenkins-Worker-Knoten.
F: Wie zeige ich frühere Build-Ergebnisse an?
Ihre früheren Build-Ergebnisse können Sie über die Konsole, CloudWatch oder die API anzeigen. Die Ergebnisse umfassen Ausgang (Erfolg oder Fehler), Build-Dauer, Speicherort des Ausgabeartefakts und Protokollpfad. Mit dem CodeBuild-Dashboard können Sie Metriken anzeigen, um das Build-Verhalten im Verlauf der Zeit zu verstehen. Das Dashboard zeigt die Anzahl der in Angriff genommenen, erfolgreichen und fehlgeschlagenen Builds sowie die Build-Dauer an. Sie können die CloudWatch-Konsole auch aufrufen, um sich ausführlichere Build-Metriken anzusehen. Weitere Informationen über die Überwachung von CodeBuild mit CloudWatch finden Sie in unserer Dokumentation.
F: Wie kann ich einen fehlgeschlagenen Build debuggen?
Sie können einen Build debuggen, indem Sie die während der Ausführung des Builds generierten Protokolldetails überprüfen oder CodeBuild Local für das lokale Testen und Debugging Ihrer Builds verwenden.
F: Weshalb wird bei .NET Core für Windows Build-Umgebungen „build.general1.small“ nicht unterstützt?
Für die .NET Core für Windows Build-Umgebung ist aufgrund der Größe des Windows Docker-Basiscontainers und zusätzlicher Bibliotheken mehr Speicher- und Prozessorleistung erforderlich, wie im Rechen-Instance-Typ build.general1.small zur Verfügung steht. Infolge dieser Beschränkung steht kein kostenloses Kontingent für die .NET Core für Windows Build-Umgebung zur Verfügung.
F: Wie kann ich Benachrichtigungen oder Warnungen für Ereignisse in AWS CodeBuild erhalten?
Sie können Benachrichtigungen für Ereignisse erstellen, die sich auf Ihre Build-Projekte auswirken. Benachrichtigungen erfolgen in Form von Amazon SNS-Benachrichtigungen. Jede Benachrichtigung enthält eine Statusmeldung sowie einen Link zu den Ressourcen, deren Ereignis diese Benachrichtigung ausgelöst hat. Für Benachrichtigungen fallen keine zusätzlichen Kosten an. Möglicherweise werden Ihnen aber andere AWS-Services in Rechnung gestellt, die von Benachrichtigungen genutzt werden, beispielsweise Amazon SNS. Informationen zu den ersten Schritten mit Benachrichtigungen finden Sie im Benutzerhandbuch für Benachrichtigungen. Zusätzlich können Nutzer von AWS Chatbot Benachrichtigungen konfigurieren, die an ihre Slack Channels oder Amazon Chime-Chatrooms gesendet werden. Weitere Informationen finden Sie hier.
Sicherheit
F: Kann ich die von CodeBuild gespeicherten Build-Artefakte verschlüsseln?
Ja. Zur Verschlüsselung Ihrer Artefakte können Sie einen im AWS Key Management Service (AWS KMS) gespeicherten Schlüssel angeben.
F: Wie isoliert CodeBuild Builds anderer Kunden?
CodeBuild führt jeden Build in einer neuen Umgebung aus, die von den Umgebungen anderer Benutzer isoliert ist. Nach Abschluss eines Builds wird die Build-Umgebung wieder verworfen. CodeBuild bietet Sicherheit und Isolation auf Infrastruktur- und Ausführungsebene.
F: Kann ich AWS Identity and Access Management (IAM) zum Verwalten des Zugriffs auf CodeBuild verwenden?
Ja. Sie können den Zugriff auf Ihre Build-Projekte über IAM-Richtlinien mit Berechtigungen auf Ressourcenebene steuern.
Regionen
F: Welche Regionen unterstützt CodeBuild?
Weitere Informationen finden Sie unter Regionale Produkte und Services.
Weitere Informationen zu den Preisen für AWS CodeBuild