AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in...

485
AWS CodeBuild Benutzerhandbuch API-Version 2016-10-06

Transcript of AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in...

Page 1: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuildBenutzerhandbuch

API-Version 2016-10-06

Page 2: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

AWS CodeBuild: BenutzerhandbuchCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Table of ContentsWas ist AWS CodeBuild? .................................................................................................................... 1

Ausführen von CodeBuild ............................................................................................................ 1Preise für CodeBuild ................................................................................................................... 2Erste Schritte mit CodeBuild ......................................................................................................... 2Konzepte ................................................................................................................................... 3

Funktionsweise von CodeBuild ............................................................................................. 3Nächste Schritte ................................................................................................................. 4

Erste Schritte ..................................................................................................................................... 5Erste Schritte mit der Konsole ...................................................................................................... 5

Schritte ............................................................................................................................. 5Schritt 1: Erstellen von zwei S3-Buckets ................................................................................ 6Schritt 2: Erstellen des Quellcodes ........................................................................................ 6Schritt 3: Erstellen der Build-Spezifikationsdatei ....................................................................... 8Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei ...................................... 10Schritt 5: Erstellen des Build-Projekts ................................................................................... 11Schritt 6: Ausführen des Builds ........................................................................................... 12Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen ........................................... 13Schritt 8: Anzeigen der detaillierten Build-Informationen .......................................................... 13Schritt 9: Abrufen des Build-Ausgabeartefakts ....................................................................... 14Schritt 10: Löschen des S3-Empfangs-Buckets ...................................................................... 15Nachbearbeitung ............................................................................................................... 15

Erste Schritte mit der AWS CLI ................................................................................................... 16Steps .............................................................................................................................. 16Schritt 1 Zwei S3-Buckets erstellen ...................................................................................... 16Schritt 2 Erstellen des Quellcodes ....................................................................................... 17Schritt 3 Erstellen der Buildspec-Datei .................................................................................. 19Schritt 4. Quellcode und die Datei für die Gebäudespezifikation hochladen ................................. 21Schritt 5. Das Build-Projekt erstellen .................................................................................... 21Schritt 6. Führen Sie den Build aus. ..................................................................................... 24Schritt 7. Zusammengefasste Build-Informationen anzeigen ..................................................... 25Schritt 8. Detaillierte Informationen zum Aufbau anzeigen ........................................................ 27Schritt 9 Erstellen Sie das Build-Output-Artefakt ..................................................................... 29Schritt 10 S3-Eingangskatheter löschen ................................................................................ 30Nachbearbeitung ............................................................................................................... 30

Beispiele .......................................................................................................................................... 31Windows-Beispiele .................................................................................................................... 31

Ausführen der Beispiele ..................................................................................................... 31Verzeichnisstruktur ............................................................................................................ 32Files ................................................................................................................................ 33

Anwendungsfallbasierte Beispiele ................................................................................................ 48Zugriffstokenbeispiel ......................................................................................................... 50Amazon ECR-Beispiel ....................................................................................................... 54Amazon EFS-Beispiel ........................................................................................................ 58AWS CodeDeploy-Beispiel ................................................................................................. 62AWS CodePipeline Integration mit Batch erstellt Probe .......................................................... 66Beispiel für AWS CodePipeline-Integration mit mehreren Eingabequellen und Ausgabeartefakten .. 70AWS Config-Beispiel ......................................................................................................... 73AWS Elastic Beanstalk-Beispiel ........................................................................................... 74Beispiel einer Bitbucket-Pull-Anfrage und eines Webhook-Filters .............................................. 83Build Badges-Beispiel ........................................................................................................ 86Build-Benachrichtigungsbeispiel ........................................................................................... 89Erstellen eines Testberichts mithilfe des AWS CLI-Beispiels ................................................... 107Docker im benutzerdefinierten Image – Beispiel ................................................................... 112Docker-Beispiel ............................................................................................................... 114

API-Version 2016-10-06iii

Page 4: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

GitHub Enterprise Server-Beispiel ...................................................................................... 121Beispiel einer GitHub-Pull-Anfrage und eines Webhook-Filters ................................................ 127Hosten der Build-Ausgabe in einem S3-Bucket ................................................................... 130Laufzeitversionen im Build-Spezfikationsdateibeispiel ........................................................... 132Beispiel für eine Quellversion ............................................................................................ 140Beispiel einer privaten Registrierung mit AWS Secrets Manager ............................................. 142Beispiel für mehrere Eingabequellen und Ausgabeartefakte .................................................. 144Beispiel für die Verwendung des semantischen Versionings zum Benennen von Build-Artefakten .. 147

Planen eines Builds ......................................................................................................................... 149Build-Spezifikationsreferenz ...................................................................................................... 150

Dateiname der Build-Spezifikation und Speicherort ............................................................... 151Syntax der Build-Spezifikation ........................................................................................... 151Beispiel für eine Build-Spezifikation .................................................................................... 167Versionen der Build-Spezifikationen ................................................................................... 169ChargenbuildSpezifikationsreferenz .................................................................................... 170

Build-Umgebungsreferenz ......................................................................................................... 174Von CodeBuild bereitgestellte Docker-Images ...................................................................... 175Arten der Datenverarbeitung bei der Build-Umgebung ........................................................... 180Shells und Befehle in Build-Umgebungen ............................................................................ 181Umgebungsvariablen in Build-Umgebungen ......................................................................... 182Hintergrundaufgaben in Build-Umgebungen ......................................................................... 185

Lokales Testen und Debuggen .................................................................................................. 186Testen und Debuggen auf einem lokalen Rechner mit dem CodeBuild-Agenten ........................ 186Erhalten von Benachrichtigungen über neue CodeBuild-Agenten-Versionen .............................. 186

VPC-Unterstützung .......................................................................................................................... 188Anwendungsfälle ..................................................................................................................... 188Zulassen des Amazon VPCZugriffs in Ihren CodeBuild-Projekten .................................................... 188Bewährte Methoden für VPCs ................................................................................................... 189Fehlerbehebung für Ihre VPC-Einrichtung ................................................................................... 190Verwenden von VPC-Endpunkten .............................................................................................. 190

Vorbereitungen für das Erstellen von VPC-Endpunkten ......................................................... 191Erstellen von VPC-Endpunkten für CodeBuild ..................................................................... 191Erstellen einer VPC-Endpunktrichtlinie für CodeBuild ........................................................... 192

AWS CloudFormation VPC-Vorlage ........................................................................................... 192Verwenden eines Proxy-Servers ................................................................................................ 196

Erforderliche Komponenten zur Ausführung von CodeBuild in einem Proxy-Server .................... 197Ausführen von CodeBuild in einem expliziten Proxy-Server ................................................... 200Ausführung von CodeBuild in einem transparenten Proxy-Server ........................................... 203Ausführung eines Paket-Managers und anderer Tools in einem Proxy-Server ............................ 204

Arbeiten mit Build-Projekten und Builds .............................................................................................. 206Arbeit mit Build-Projekten ......................................................................................................... 206

Erstellen eines Build-Projekts () ......................................................................................... 206Create a notification rule .................................................................................................. 230Anzeigen einer Liste mit Build-Projektnamen () .................................................................... 232Anzeigen der Details eines Build-Projekts ........................................................................... 233Build-Caching ................................................................................................................. 235Erstellen von Build-Auslösern ............................................................................................ 239Bearbeiten von Build-Auslösern ......................................................................................... 241Bitbucket-Webhook-Ereignisse .......................................................................................... 243GitHub-Webhook-Ereignisse .............................................................................................. 251Ändern der Einstellungen eines Build-Projekts () .................................................................. 259Löschen eines Build-Projekts ............................................................................................ 269Arbeiten mit freigegebenen Projekten ................................................................................. 270Markieren eines Projekts .................................................................................................. 274Batch-Builds ................................................................................................................... 278

Verwenden von Builds ............................................................................................................. 278Ausführen eines Build () ................................................................................................... 279

API-Version 2016-10-06iv

Page 5: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Anzeigen von Build-Details ............................................................................................... 290Anzeigen einer Liste mit Build-IDs () .................................................................................. 293Anzeigen einer Liste mit Build-IDs für ein Build-Projekt () ....................................................... 295Stoppen eines Builds ....................................................................................................... 298Batch-Aufbau stoppen ...................................................................................................... 299Eine Build-Funktion erneut versuchen ................................................................................ 300Session Manager ............................................................................................................ 301Löschen von Builds ......................................................................................................... 304

Arbeiten mit Testberichten ................................................................................................................ 306Erstellen eines Testberichts ...................................................................................................... 307Arbeiten mit Berichtsgruppen .................................................................................................... 307

Erstellen einer Berichtsgruppe ........................................................................................... 308Aktualisieren einer Berichtsgruppe ..................................................................................... 311Angeben der Testdateien ................................................................................................. 314Angeben der Testbefehle ................................................................................................ 314Benennung von Berichtsgruppen ....................................................................................... 314Markieren einer Berichtgruppe ........................................................................................... 315Arbeiten mit freigegebenen Berichtsgruppen. ....................................................................... 320

Arbeiten mit Berichten .............................................................................................................. 324Arbeiten mit Testberichtberechtigungen ...................................................................................... 324

Erstellen einer Rolle für Testberichte .................................................................................. 325Berechtigungen für Testberichtoperationen .......................................................................... 326Beispiele für Testberichtberechtigungen .............................................................................. 326

Anzeigen von Testberichten ...................................................................................................... 327Anzeigen von Testberichten für einen Build ......................................................................... 327Anzeigen der Testberichte für eine Berichtsgruppe ............................................................... 327Anzeigen von Testberichten in Ihrem AWS-Konto ................................................................. 328

Testberichte mit Test-Frameworks ............................................................................................. 328Berichterstellung mit Jasmine ............................................................................................ 328Berichterstellung mit Jest .................................................................................................. 330Berichterstellung mit Pytest ............................................................................................... 331Berichterstellung mit RSpec .............................................................................................. 331

Codeabdeckungsberichte .......................................................................................................... 332.................................................................................................................................... 332

Einen Codeabdeckungsbericht erstellen .............................................................................. 333Protokollierung und Überwachung ...................................................................................................... 334

Protokollieren von AWS CodeBuild-API-Aufrufen mit AWS CloudTrail .............................................. 334AWS CodeBuild-Informationen in CloudTrail ........................................................................ 334Grundlagen zu AWS CodeBuild-Protokolldateieinträgen ......................................................... 335

Überwachung von AWS CodeBuild ............................................................................................ 336CloudWatch-Metriken. ...................................................................................................... 337CloudWatch Ressourcennutzungsmetriken .......................................................................... 339CloudWatch-Dimensionen ................................................................................................. 340CloudWatch-Alarme. ........................................................................................................ 340CodeBuild-Metriken. ......................................................................................................... 341CodeBuild Ressourcennutzungsmetriken ............................................................................. 345CodeBuild-Alarme ............................................................................................................ 350

Sicherheit ....................................................................................................................................... 357Datenschutz ........................................................................................................................... 357

Datenverschlüsselung ...................................................................................................... 358Schlüsselverwaltung ........................................................................................................ 359Datenschutz für Datenverkehr .......................................................................................... 359

Identitäts- und Zugriffsverwaltung ............................................................................................... 359Authentication ................................................................................................................. 359Zugriffskontrolle ............................................................................................................... 361Übersicht über die Verwaltung von Zugriffsberechtigungen .................................................... 361Verwenden identitätsbasierter Richtlinien ............................................................................ 364

API-Version 2016-10-06v

Page 6: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Referenz für AWS CodeBuild-Berechtigungen ...................................................................... 381Verwenden von Tags zur Steuerung des Zugriffs auf AWS CodeBuild-Ressourcen ..................... 386Anzeigen von Ressourcen in der Konsole ........................................................................... 388

Compliance-Validierung ............................................................................................................ 389Ausfallsicherheit ...................................................................................................................... 389Sicherheit der Infrastruktur ........................................................................................................ 390

Erweiterte Themen .......................................................................................................................... 391Erweiterte Einstellungen ........................................................................................................... 391

Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern ............ 391Erstellen Sie eine CodeBuild-Servicerolle ............................................................................ 396Erstellen und Konfigurieren eines AWS KMS-CMK für CodeBuild ............................................ 400Installieren und Konfigurieren der AWS CLI. ........................................................................ 402

Befehlszeilenreferenz ............................................................................................................... 403AWS SDKs- und Tools-Referenz ............................................................................................... 404

Unterstützte AWS SDKs und Tools für AWS CodeBuild ......................................................... 404Angeben des Endpunkts .......................................................................................................... 404

Angeben des AWS CodeBuild-Endpunkts (AWS CLI) ............................................................ 405Angeben des AWS CodeBuild-Endpunkts (AWS SDK) .......................................................... 405

Direktes Ausführen von CodeBuild ............................................................................................. 407Prerequisites .................................................................................................................. 407Direktes Ausführen von AWS CodeBuild ............................................................................. 407

Verwenden von CodePipeline mit CodeBuild ............................................................................... 407Prerequisites .................................................................................................................. 408Erstellen einer Pipeline, die CodeBuild (CodePipeline-Konsole) verwendet ............................... 409Erstellen einer Pipeline unter Verwendung von CodeBuild (AWS CLI) ...................................... 412Hinzufügen einer CodeBuild-Build-Aktion zu einer Pipeline (CodePipeline-Konsole) .................... 416Hinzufügen einer CodeBuild-Testaktion zu einer Pipeline (CodePipeline-Konsole) ...................... 420

Verwenden von CodeBuild mit Jenkins ....................................................................................... 424Einrichten von Jenkins ..................................................................................................... 424Installieren des Plugins .................................................................................................... 424Verwenden des Plug-Ins .................................................................................................. 424

Verwendung von CodeBuild mit Codecov ................................................................................... 425Integrieren von Codecov in ein Build-Projekt ....................................................................... 426

Serverlose Anwendungen ......................................................................................................... 428Zugehörige Ressourcen ..................................................................................................... 58

Fehlerbehebung .............................................................................................................................. 430Apache Maven erstellt Referenzartefakte aus dem falschen Repository ............................................ 431Build-Befehle werden standardmäßig als Root-Benutzer ausgeführt ................................................. 432Builds können fehlschlagen, wenn Dateinamen nicht in den USA enthalten sind. Englische Zeichen ...... 432Builds könnten fehlschlagen, wenn Parameter aus dem Amazon EC2-Parameterspeicher abgerufenwerden .................................................................................................................................. 433Zugriff auf Verzweigungsfilter in der CodeBuild-Konsole nicht möglich ............................................. 433Erfolg oder Misserfolg der Build-Erstellung wird nicht angezeigt ..................................................... 434Das Basis-Image der Windows Server Core 2016-Plattform kann nicht gefunden und ausgewähltwerden .................................................................................................................................. 434Vorherige Befehle in den Build-Spezifikationsdateien werden von nachfolgenden Befehlen nichterkannt .................................................................................................................................. 434Fehler "Zugriff verweigert" beim Versuch Cache herunterzuladen .................................................... 435Fehler "BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE" bei Verwendung eines benutzerdefiniertenBuild-Images .......................................................................................................................... 435Fehler "Build-Container vor Abschluss des Builds gefunden. Build-Container verstirbt, weil er nichtgenügend Arbeitsspeicher hat oder das Docker-Image nicht unterstützt wird. ErrorCode 500 ................ 436Fehler „Verbindung zum Docker-Daemon kann nicht hergestellt werden“, wenn ein Build ausgeführtwird ....................................................................................................................................... 436Fehler: "CodeBuild beim Ausführen eines Builds ein Problem hat .................................................... 437Fehler: "CodeBuild ist nicht berechtigt, Folgendes auszuführen: sts:AssumeRole" beim Erstellen oderAktualisieren eines Build-Projekts .............................................................................................. 437

API-Version 2016-10-06vi

Page 7: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Fehler "Fehler beim Aufrufen von GetBucketAcl: Entweder hat sich der Bucket-Eigentümer geändertoder die Service-Rolle hat keine Berechtigung mehr, s3:GetBucketAcl" aufzurufen ............................. 438Fehler "Artefakte konnten nicht hochgeladen werden: Ungültiger Arn" beim Ausführen eines Builds ....... 438Fehler "Git Clone fehlgeschlagen: Zugriff nicht möglich 'your-repository-URL': Problem mit SSL-Zertifikat: Selbstsigniertes Zertifikat ............................................................................................ 439Fehler „Der Bucket, auf den Sie zugreifen möchten, muss mit dem angegebenen Endpunkt adressiertwerden“, wenn Sie einen Build ausführen ................................................................................... 439Fehler "Die Standardversion der Richtlinie wurde nicht von der erweiterten Zero-Click-Rollenerstellungerstellt oder war nicht die neueste Version, die von der erweiterten Zero-Click-Rollenerstellung erstelltwurde." .................................................................................................................................. 440Fehler "Für dieses Build-Image muss mindestens eine Laufzeitversion ausgewählt werden." ................ 440Fehler IN WARTESCHLANGE INSUFFICIENT_SUBNET" wenn ein Build in einer Build-Warteschlangefehlschlägt .............................................................................................................................. 441Fehler "Cache kann nicht heruntergeladen werden: Anforderungsfehler: Senden der Anfragefehlgeschlagen, verursacht durch: x509: Systemwurzeln konnten nicht geladen werden und es wurdenkeine Roots bereitgestellt" ........................................................................................................ 442Fehler "Zertifikat kann nicht von S3 heruntergeladen werden. AccessDenied ..................................... 442Fehler "Anmeldeinformationen können nicht gefunden werden" ...................................................... 442RequestError-Timeout-Fehler beim Ausführen von CodeBuild in einem Proxy-Server ......................... 443Die Bourne-Shell (sh) muss in Build-Images vorhanden sein .......................................................... 444Warnung "Überspringen der Installation von Laufzeiten. Laufzeitversionsauswahl wird von diesemBuild-Image nicht unterstützt" beim Ausführen eines Builds ............................................................ 445Fehler AUFBAU_BEHÄLTER_UNABLE_TO_PULL_IMAGE ............................................................ 445Fehler "JobWorker-Identität kann nicht überprüft werden" .............................................................. 445

Kontingente .................................................................................................................................... 446Build-Projekte ......................................................................................................................... 446Builds .................................................................................................................................... 446Berichte ................................................................................................................................. 447Tags ...................................................................................................................................... 447

Hinweise von Drittanbietern für AWS CodeBuild für Windows ................................................................. 4491) Grundlegendes Docker-Image — windowsservercore ................................................................ 4492) Auf Windows basierendes Docker-Image — Choco .................................................................. 4503) Auf Windows basierendes Docker-Image — git --version 2.16.2 .................................................. 4504) Auf Windows basierendes Docker-Image — microsoft-build-tools --version 15.0.26320.2 ................. 4515) Auf Windows basierendes Docker-Image — nuget.commandline --Version 4.5.1 ............................ 4537) Auf Windows basierendes Docker-Image — netfx-4.6.2-devpack ................................................. 4548) Auf Windows basierendes Docker-Image — visualfsharptools, v 4.0 ............................................ 4559) Auf Windows basierendes Docker-Image — netfx-pcl-reference-assemblies-4.6 ............................. 45510) Auf Windows basierendes Docker-Image —visualcppbuildtools v 14.0.25420.1 ............................ 45811) Auf Windows basierendes Docker-Image — microsoft-windows-netfx3-ondemand-package.cab ...... 46012) Auf Windows basierendes Docker-Image — dotnet-sdk ........................................................... 461

Dokumentverlauf ............................................................................................................................. 463Frühere Updates ..................................................................................................................... 469

AWS-Glossar .................................................................................................................................. 478

API-Version 2016-10-06vii

Page 8: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen von CodeBuild

Was ist AWS CodeBuild?AWS CodeBuild ist ein vollständig verwalteter Build-Service in der Cloud. Mit CodeBuild könnenSie Quellcode kompilieren, Einheitentests ausführen und bereitstellbare Artefakte generieren. DieBereitstellung, Verwaltung und Skalierung von eigenen Build-Servern entfällt dank CodeBuild. Es bietetvorgefertigte Build-Umgebungen für gängige Programmiersprachen und Build-Tools wie Apache Maven,Gradle und mehr. Sie können auch Build-Umgebungen in CodeBuild anpassen, um eigene Build-Tools zuerstellen. CodeBuild wird automatisch skaliert, um Build-Anforderungsspitzen abzufangen.

CodeBuild bietet folgende Vorteile:

• Vollständig verwaltet – Dank CodeBuild brauchen Sie keine eigenen Entwicklungsserver mehreinzurichten, mit Patches zu aktualisieren und zu verwalten.

• Bedarfsorientiert – CodeBuild kann nach Bedarf für Ihre Build-Anforderungen skaliert werden. Sie zahlennur für die Anzahl der Build-Minuten, die Sie wirklich nutzen.

• Sofort einsatzbereit – CodeBuild stellt vorkonfigurierte Build-Umgebungen für die gängigstenProgrammiersprachen bereit. Sie müssen lediglich auf Ihr Build-Skript verweisen, um den ersten Build zustarten.

Weitere Informationen finden Sie unter AWS CodeBuild.

Themen• Ausführen von CodeBuild (p. 1)• Preise für CodeBuild (p. 2)• Erste Schritte mit CodeBuild (p. 2)• AWS CodeBuild-Konzepte (p. 3)

Ausführen von CodeBuildZum Ausführen von CodeBuild können Sie die AWS CodeBuild- oder die AWS CodePipeline-Konsoleverwenden. Außerdem können Sie die Ausführung von CodeBuild mithilfe der AWS Command LineInterface (AWS CLI) oder der AWS-SDKs automatisieren.

Informationen zum Ausführen von CodeBuild mit der CodeBuild-Konsole, der AWS CLI oder AWS-SDKsfinden Sie unter Direktes Ausführen von AWS CodeBuild (p. 407).

API-Version 2016-10-061

Page 9: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchPreise für CodeBuild

Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum Build oderzur Testphase einer Pipeline in AWS CodePipeline hinzufügen. AWS CodePipeline ist ein kontinuierlicherBereitstellungsservice, mit dem Sie die zur Freigabe Ihres Codes erforderlichen Schritte entwickeln,visualisieren und automatisieren können. Dazu gehört auch der Code-Build. Eine Pipeline ist ein Workflow,der beschreibt, wie Codeänderungen das Freigabeverfahren durchlaufen.

Informationen, wie Sie CodePipeline zum Erstellen einer Pipeline verwenden und dann eine CodeBuild-Build- oder Testaktion hinzufügen, finden Sie unter Verwenden von CodePipeline mit CodeBuild (p. 407).Weitere Informationen zu CodePipelinefinden Sie im AWS CodePipeline-Benutzerhandbuch.

Mit der CodeBuild-Konsole können Sie zudem schnell nach Ihren Ressourcen, z. B. Repositorys,Build-Projekte, Deployment-Anwendungen und Pipelines, suchen. Wählen Sie Go to Ressource (ZurRessource) oder drücken Sie die Taste / und geben Sie dann den Namen der Ressource ein. AlleÜbereinstimmungen werden in der Liste angezeigt. Bei der Suche wird nicht zwischen Groß- undKleinschreibung unterschieden. Sie sehen nur die Ressourcen, für die Sie die Berechtigung besitzen.Weitere Informationen finden Sie unter Anzeigen von Ressourcen in der Konsole (p. 388).

Preise für CodeBuildWeitere Informationen finden Sie unter CodeBuild-Preise.

Erste Schritte mit CodeBuildWir empfehlen, dass Sie zuerst die folgenden Schritte ausführen:

1. Erfahren Sie mehr überCodeBuild, indem Sie die Informationen unter Konzepte (p. 3) lesen.2. Experimentieren Sie mit CodeBuild in einem Beispielszenario, indem Sie den Anleitungen unter Erste

Schritte mit der Konsole (p. 5) folgen.3. Verwenden Sie CodeBuild in Ihren eigenen Szenarien, indem Sie den Anleitungen unter Planen eines

Builds (p. 149) folgen.

API-Version 2016-10-062

Page 10: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchKonzepte

AWS CodeBuild-KonzepteDie folgenden Konzepte sind wichtig für ein Verständnis der Funktionsweise von CodeBuild.

Themen• Funktionsweise von CodeBuild (p. 3)• Nächste Schritte (p. 4)

Funktionsweise von CodeBuildIm folgenden Diagramm sind die Vorgänge bei der Ausführung eines Builds in CodeBuild dargestellt:

1. Das Build-Projekt dient als Eingabe in CodeBuild. Eine Build-Umgebung stellt eine Kombination ausBetriebssystem, Programmiersprachenlaufzeit und Tools dar, die CodeBuild zum Ausführen einesBuilds verwendet. Ein Build-Projekt enthält Informationen zur Ausführung eines Builds: wo befindetsich der Quellcode, welche Build-Umgebung soll verwendet werden, welche Build-Befehle sollenausgeführt werden und wo soll die Build-Ausgabe gespeichert werden. Weitere Informationen findenSie unter:

• Erstellen eines Build-Projekts () (p. 206)• Build-Umgebungsreferenz (p. 174)

2. CodeBuild verwendet das Build-Projekt zum Erstellen der Build-Umgebung.3. CodeBuild lädt den Quellcode in die Build-Umgebung und verwendet anschließend die Build-

Spezifikation (buildspec), wie diese im Build-Projekt definiert wurde oder im Quellcode direkt enthaltenist. Eine buildspec ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format, die CodeBuild zum Ausführen eines Builds verwendet. Weitere Informationen hierzu finden Sieunter Build-Spezifikationsreferenz (p. 150).

4. Wenn eine Build-Ausgabe vorhanden ist, lädt die Build-Umgebung diese Ausgabe in einen S3-Bucket.Die Build-Umgebung kann auch Aufgaben ausführen, die Sie in den Build-Spezifikationen festlegen(z. B. das Senden von Build-Benachrichtigungen an ein Amazon SNS-Thema). Ein Beispiel finden Sieunter Build-Benachrichtigungsbeispiel (p. 89).

5. Während der Ausführung des Builds sendet die Build-Umgebung Informationen an CodeBuild undAmazon CloudWatch Logs.

6. Während der Build-Ausführung können Sie die AWS CodeBuild-Konsole, AWS CLI oder AWS-SDKsverwenden, um eine Zusammenfassung der Build-Informationen von CodeBuild sowie ausführliche

API-Version 2016-10-063

Page 11: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchNächste Schritte

Build-Informationen von Amazon CloudWatch Logs zu erhalten. Wenn Sie AWS CodePipeline zurBuild-Ausführung verwenden, erhalten Sie nur eingeschränkte Build-Informationen von CodePipeline.

Nächste SchritteNun, da Sie mehr über AWS CodeBuild wissen, empfehlen wir Ihnen diese nächsten Schritte:

1. Experimentieren Sie mit CodeBuild in einem Beispielszenario, indem Sie den Anleitungen unter ErsteSchritte mit der Konsole (p. 5) folgen.

2. Verwenden Sie CodeBuild in Ihren eigenen Szenarien, indem Sie den Anleitungen unter Planen einesBuilds (p. 149) folgen.

API-Version 2016-10-064

Page 12: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErste Schritte mit der Konsole

Erste Schritte mit CodeBuildIn den folgenden Tutorials können Sie mit AWS CodeBuild aus einer Sammlung von Beispiel-Quellcodeeingabedateien eine bereitstellbare Version des Quellcodes erstellen.

Beide Tutorials haben die gleichen Eingaben und Ergebnisse, ein Tutorial nutzt jedoch die AWS CodeBuild-Konsole und das andere die AWS CLI.

Important

Die Verwendung des AWS-Root-Kontos für dieses Tutorial wird nicht empfohlen.

Erste Schritte mit AWS CodeBuild unterVerwendung der Konsole

In diesem Tutorial erstellen Sie mit AWS CodeBuild aus einer Sammlung von Beispielquellcode-Eingabedateien (Build-Eingabeartefakte oder Build-Eingabe) eine bereitstellbare Version des Quellcodes(Build-Ausgabeartefakt oder Build-Ausgabe). Genau genommen weisen Sie CodeBuild an, Apache Maven,ein gängiges Build-Tool, zum Erstellen einer Sammlung von Java-Klassendateien für eine Java-Archivdatei(JAR) zu verwenden. Dieses Tutorial setzt nicht voraus, dass Sie mit Apache Maven oder Java vertrautsind.

Sie können über die CodeBuild-Konsole, AWS CodePipeline, die AWS CLI oder die AWS-SDKs mitCodeBuild arbeiten. In diesem Tutorial wird die Verwendung der CodeBuild-Konsole veranschaulicht.Für weitere Informationen zur Nutzung von CodePipeline siehe Verwenden von CodePipeline mitCodeBuild (p. 407). Für weitere Informationen zur Verwendung der AWS-SDKs siehe Direktes Ausführenvon CodeBuild (p. 407).

Important

Die Schritte in diesem Tutorial setzen voraus, dass Sie Ressourcen (z. B. einen S3-Bucket)erstellen, die Kosten für das AWS-Konto verursachen können. Dies umfasst mögliche Kosten fürCodeBuild- und AWS-Ressourcen sowie Aktionen in Verbindung mit Amazon S3, AWS KMS undCloudWatch Logs. Weitere Informationen finden Sie unter AWS CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise und Amazon CloudWatch-Preise.

Schritte• Schritt 1: Erstellen von zwei S3-Buckets (p. 6)• Schritt 2: Erstellen des Quellcodes (p. 6)• Schritt 3: Erstellen der Build-Spezifikationsdatei (p. 8)• Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei (p. 10)• Schritt 5: Erstellen des Build-Projekts (p. 11)• Schritt 6: Ausführen des Builds (p. 12)• Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen (p. 13)• Schritt 8: Anzeigen der detaillierten Build-Informationen (p. 13)• Schritt 9: Abrufen des Build-Ausgabeartefakts (p. 14)• Schritt 10: Löschen des S3-Empfangs-Buckets (p. 15)• Nachbearbeitung (p. 15)

API-Version 2016-10-065

Page 13: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 1: Erstellen von zwei S3-Buckets

Schritt 1: Erstellen von zwei S3-Buckets(Teil von: Erste Schritte mit AWS CodeBuild unter Verwendung der Konsole (p. 5))

Auch wenn Sie einen einzelnen Bucket für dieses Tutorial verwenden können, ist mit zwei Bucketseinfacher zu erkennen, woher die Build-Eingabe stammt und wohin die Build-Ausgabe geschrieben wird.

• Einer dieser Buckets (Eingangs-Bucket) speichert die Build-Eingabe. In diesem Tutorial lautet der Namedieses Eingabe-Buckets codebuild-region-ID-account-ID-input-bucket, wobei region-IDdie AWS-Region des Buckets und account-ID die AWS-Konto-ID angibt.

• Der andere Bucket (Ausgabe-Bucket) nimmt die Build-Ausgabe auf. In diesem Tutorial ist der Namedieses Ausgabe-Buckets codebuild-region-ID-account-ID-output-bucket.

Wenn Sie andere Namen für diese Buckets gewählt haben, müssen Sie diese Namen im gesamten Tutorialverwenden.

Die beiden Buckets müssen sich in derselben AWS-Region wie Ihre Builds befinden. Wenn Siebeispielsweise CodeBuild anweisen, einen Build in der Region USA Ost (Ohio) auszuführen, müssen sichdiese Buckets ebenfalls in der Region USA Ost (Ohio) befinden.

Weitere Informationen finden Sie unter Erstellen eines Buckets im Amazon Simple Storage Service-Benutzerhandbuch.

Note

Obwohl CodeBuild auch Build-Eingaben unterstützt, die in CodeCommit-, GitHub- und Bitbucket-Repositorys gespeichert sind, geht dieses Tutorial nicht auf deren Verwendung ein. WeitereInformationen finden Sie unter Planen eines Builds (p. 149).

Nächster SchrittSchritt 2: Erstellen des Quellcodes (p. 6)

Schritt 2: Erstellen des Quellcodes(Vorheriger Schritt: Schritt 1: Erstellen von zwei S3-Buckets (p. 6))

In diesem Schritt erstellen Sie den Quellcode, dessen Build CodeBuild im Ausgabe-Bucket erstellen soll.Dieser Quellcode besteht aus zwei Java-Klassendateien und einer Apache Maven Project Object Model(POM)-Datei.

1. Erstellen Sie in einem leeren Verzeichnis auf Ihrem lokalen Computer oder der Instance folgendeVerzeichnisstruktur.

(root directory name) `-- src |-- main | `-- java `-- test `-- java

2. Erstellen Sie diese Datei mithilfe eines Texteditors, benennen Sie sie MessageUtil.java undspeichern Sie sie im Verzeichnis src/main/java.

public class MessageUtil { private String message;

API-Version 2016-10-066

Page 14: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 2: Erstellen des Quellcodes

public MessageUtil(String message) { this.message = message; }

public String printMessage() { System.out.println(message); return message; }

public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; }}

Diese Klassendatei erstellt die Zeichenfolge, die an sie übergeben wurde, als Ausgabe. DerMessageUtil-Konstruktor legt die Zeichenfolge fest. Die printMessage-Methode erstellt dieAusgabe. Die salutationMessage-Methode gibt Hi! gefolgt von der Zeichenfolge aus.

3. Erstellen Sie diese Datei, benennen Sie sie TestMessageUtil.java und speichern Sie sie imVerzeichnis /src/test/java.

import org.junit.Test;import org.junit.Ignore;import static org.junit.Assert.assertEquals;

public class TestMessageUtil {

String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); }

@Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); }}

Diese Klassendatei setzt die message-Variable in der Klasse MessageUtil auf Robert.Anschließend führt sie einen Test durch, um zu sehen, ob die message-Variable erfolgreich festgelegtwurde, indem sie überprüft, ob die Zeichenfolgen Robert und Hi!Robert in der Ausgabe vorhandensind.

4. Erstellen Sie diese Datei, benennen Sie sie pom.xml und speichern Sie sie im Stammverzeichnis(oberste Ebene).

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging>

API-Version 2016-10-067

Page 15: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 3: Erstellen der Build-Spezifikationsdatei

<name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build></project>

Apache Maven verwendet die Anweisungen in dieser Datei, um die Dateien MessageUtil.java undTestMessageUtil.java in eine Datei namens messageUtil-1.0.jar zu konvertieren und danndie angegebenen Tests auszuführen.

An diesem Punkt sollte Ihre Dateistruktur wie folgt aussehen:

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Nächster SchrittSchritt 3: Erstellen der Build-Spezifikationsdatei (p. 8)

Schritt 3: Erstellen der Build-Spezifikationsdatei(Vorheriger Schritt: Schritt 2: Erstellen des Quellcodes (p. 6))

In diesem Schritt erstellen Sie eine Build-Spezifikationsdatei. Eine buildspec ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format, die CodeBuild zum Ausführen eines Buildsverwendet. Ohne Build-Spezifikation ist CodeBuild nicht in der Lage, die Build-Eingabe erfolgreich in eineBuild-Ausgabe zu konvertieren oder das Build-Ausgabeartefakt, das in den Ausgabe-Bucket hochgeladenwerden soll, in der Build-Umgebung zu erkennen.

Erstellen Sie diese Datei, benennen Sie sie buildspec.yml und speichern Sie sie im Stammverzeichnis(oberste Ebene).

version: 0.2

phases: install: runtime-versions:

API-Version 2016-10-068

Page 16: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 3: Erstellen der Build-Spezifikationsdatei

java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date`artifacts: files: - target/messageUtil-1.0.jar

Important

Da es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt, ist dieFormatierung in einer Build-Spezifikationsdeklaration wichtig. Wenn die Anzahl der Leerzeichenin der Build-Spezifikationsdeklaration nicht mit dieser übereinstimmt, schlägt der Build ggf.sofort fehl. Verwenden Sie eine YAML-Validierung, um zu testen, ob es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt.

Note

Statt eine Build-Spezifikationsdatei in Ihren Quellcode einzuschließen, können Sie Build-Befehlebeim Erstellen eines Build-Projekts separat deklarieren. Das ist hilfreich, wenn Sie Ihren Quellcodemit unterschiedlichen Build-Befehlen erstellen möchten, ohne jedes Mal das Quellcode-Repositoryzu aktualisieren. Weitere Informationen finden Sie unter Syntax der Build-Spezifikation (p. 151).

In dieser Build-Spezifikationsdeklaration gilt:

• version steht für die Version des verwendeten Build-Spezifikationsstandards. Diese Build-Spezifikationsdeklaration verwendet die aktuelle Version, 0.2.

• phases steht für die Build-Phasen, in denen Sie CodeBuild anweisen können, Befehle auszuführen.Diese Build-Phasen sind hier als install, pre_build, build und post_build aufgelistet. Siekönnen die Schreibweise dieser Build-Phasennamen nicht ändern und Sie können keine zusätzlichenBuild-Phasennamen erstellen.

In diesem Beispiel führt CodeBuild während der build-Phase den Befehl mvn install aus. DieserBefehl weist Apache Maven an, die Java-Klassendateien zu kompilieren, zu testen und die kompiliertenDateien in ein Build-Ausgabeartefakt zu verpacken. Der Vollständigkeit halber sind in diesem Beispieleinige echo-Befehle in jeder Build-Phase platziert. Wenn Sie die detaillierten Build-Informationen späterin diesem Tutorial anzeigen, können Sie der Ausgabe dieser echo-Befehle entnehmen, wie und inwelcher Reihenfolge CodeBuild Befehle ausführt. (Auch wenn alle Build-Phasen in diesem Beispielenthalten sind, müssen Sie nicht unbedingt eine Build-Phase einschließen, wenn Sie nicht vorhaben,während dieser Phase Befehle auszuführen.) Für jede enthaltene Build-Phase führt CodeBuild jedenangegebenen Befehl aus, jeweils einzeln in der aufgeführten Reihenfolge, vom Anfang bis zum Ende.

• artifacts stellt den Satz von Build-Ausgabeartefakten dar, die CodeBuild in den Ausgabe-Buckethochlädt. files stellt die Dateien dar, die in die Build-Ausgabe eingeschlossen werden sollen.CodeBuild lädt die messageUtil-1.0.jar-Einzeldatei hoch, die sich im relativen target-Verzeichnisder Build-Umgebung befindet. Der Dateiname messageUtil-1.0.jar und der Verzeichnisnametarget, unter denen Apache Maven Build-Ausgabeartefakte erstellt und speichert, gelten nur für diesesBeispiel. In Ihren eigenen Builds lauten diese Dateinamen und Verzeichnisse anders.

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).

An diesem Punkt sollte Ihre Dateistruktur wie folgt aussehen:

API-Version 2016-10-069

Page 17: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 4: Hochladen des Quellcodes

und der Build-Spezifikationsdatei

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Nächster SchrittSchritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei (p. 10)

Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei(Vorheriger Schritt: Schritt 3: Erstellen der Build-Spezifikationsdatei (p. 8))

In diesem Schritt fügen Sie den Quellcode und die Build-Spezifikationsdatei zum Empfangs-Bucket hinzu.

Erstellen Sie mit dem ZIP-Dienstprogramm Ihres Betriebssystems eine Datei namens MessageUtil.zip,die MessageUtil.java, TestMessageUtil.java, pom.xml und buildspec.yml enthält.

Die Verzeichnisstruktur der Datei MessageUtil.zip muss wie folgt aussehen:

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Important

Schließen Sie nicht das Verzeichnis (root directory name) ein, sondern nur dieVerzeichnisse und Dateien, die im Verzeichnis (root directory name) enthalten sind.

Laden Sie die Datei MessageUtil.zip in den Empfangs-Bucket namens codebuild-region-ID-account-ID-input-bucket.

Important

Bei CodeCommit-, GitHub- und Bitbucket-Repositorys müssen Sie in der Regel eine Build-Spezifikationsdatei namens buildspec.yml im Stammverzeichnis (oberste Ebene) eines jedenRepositorys speichern oder die Build-Spezifikationsdeklaration als Teil der Build-Projektdefinitioneinschließen. Erstellen Sie keine ZIP-Datei, die den Quellcode und die Build-Spezifikationsdateides Repositorys enthält.Bei Build-Eingaben, die nur in S3-Buckets gespeichert sind, müssen Sie eine ZIP-Dateierstellen, die den Quellcode enthält, und – gemäß Konvention – eine Build-Spezifikationsdateinamens buildspec.yml im Stammverzeichnis (oberste Ebene) speichern oder die Build-Spezifikationsdeklaration in die Build-Projektdefinition einschließen.

API-Version 2016-10-0610

Page 18: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 5: Erstellen des Build-Projekts

Wenn Sie einen anderen Namen für Ihre Build-Spezifikationsdatei verwenden oder auf eine Build-Spezifikation verweisen möchten, die nicht im Stammverzeichnis gespeichert ist, können Sie eineÜberschreibung der Build-Spezifikation im Rahmen der Build-Projektdefinition angeben. WeitereInformationen finden Sie unter Dateiname der Build-Spezifikation und Speicherort (p. 151).

Nächster SchrittSchritt 5: Erstellen des Build-Projekts (p. 11)

Schritt 5: Erstellen des Build-Projekts(Vorheriger Schritt: Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei (p. 10))

In diesem Schritt erstellen Sie ein Build-Projekt, das AWS CodeBuild zum Ausführen des Builds verwendet.Ein Build-Projekt enthält Informationen zur Ausführung eines Builds: wo befindet sich der Quellcode,welche Build-Umgebung soll verwendet werden, welche Build-Befehle sollen ausgeführt werden undwo soll die Build-Ausgabe gespeichert werden. Eine Build-Umgebung stellt eine Kombination ausBetriebssystem, Programmiersprachenlaufzeit und Tools dar, die CodeBuild zum Ausführen eines Buildsverwendet. Die Build-Umgebung wird als Docker-Image dargestellt. Weitere Informationen finden Sie unterDocker Overview auf der Docker Docs-Website.

Für diese Build-Umgebung weisen Sie CodeBuild an, ein Docker-Image zu verwenden, das eine Versiondes Java Development Kit (JDK) und Apache Maven enthält.

So erstellen Sie ein Build-Projekt

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS CodeBuild-Konsoleunter https://console.aws.amazon.com/codesuite/codebuild/home.

2. Verwenden Sie die AWS-Regionenauswahl, um eine AWS-Region auszuwählen, in der CodeBuildunterstützt wird. Weitere Informationen finden Sie unter AWS CodeBuild-Endpunkte und -Kontingenteim Allgemeine Amazon Web Services-Referenz.

3. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekterstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

4. Geben Sie auf der Seite Create build project (Build-Projekt erstellen) unter Project configuration(Projektkonfiguration) für Project name (Projektname) einen Namen für dieses Build-Projekt ein (indiesem Beispiel codebuild-demo-project). Build-Projektnamen müssen in allen AWS-Konteneindeutig sein. Wenn Sie einen anderen Namen vergeben, müssen Sie diesen im gesamten Tutorialverwenden.

Note

Auf der Seite Create build project (Build-Projekt erstellen) wird möglicherweise eineFehlermeldung ähnlich der folgenden angezeigt: You are not authorized to performthis operation (Sie sind nicht berechtigt, diesen Vorgang auszuführen).. Dies liegthöchstwahrscheinlich daran, dass Sie sich bei der AWS Management Console-Konsoleals IAM-Benutzer angemeldet haben, der keine Berechtigungen zum Erstellen eines Build-Projekts hat. Um dies zu umgehen, melden Sie sich von der AWS Management Consoleab und melden sich dann mit den Anmeldeinformationen einer der folgenden IAM-Entitätenwieder an:

• Ein IAM-Administratorbenutzer des AWS-Kontos. Detaillierte Anweisungen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAMim IAM-Benutzerhandbuch.

• Ein IAM-Benutzer im AWS-Konto mit den verwalteten RichtlinienAWSCodeBuildAdminAccess, AmazonS3ReadOnlyAccess und IAMFullAccess, die

API-Version 2016-10-0611

Page 19: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 6: Ausführen des Builds

diesem IAM-Benutzer oder aber einer IAM-Gruppe angefügt sind, der der IAM-Benutzerangehört. Wenn Sie nicht über einen IAM-Benutzer oder eine IAM-Gruppe mit diesenBerechtigungen in Ihrem AWS-Konto verfügen und diese Berechtigungen auch nichtzum IAM-Benutzer oder zur IAM-Gruppe hinzufügen können, wenden Sie sich an denAWS-Kontoadministrator. Für weitere Informationen siehe AWS-verwaltete (vordefinierte)Richtlinien für AWS CodeBuild (p. 366).

Beide Optionen beinhalten Administratorrechte, die es Ihnen ermöglichen, ein Build-Projekt zu erstellen, damit Sie dieses Tutorial abschließen können. Es wird empfohlen,immer die Mindestberechtigungen zu verwenden, die für die Ausführung Ihrer Aufgabeerforderlich sind. Weitere Informationen finden Sie unter Referenz für AWS CodeBuild-Berechtigungen (p. 381).

5. Wählen Sie unter Source für Source provider Amazon S3 aus.6. Wählen Sie für Bucket codebuild-region-ID-account-ID-input-bucket aus.7. Geben Sie für S3 object key (S3-Objektschlüssel) MessageUtil.zip ein.8. Wählen Sie unter Environment für Environment image weiterhin Managed Image aus.9. Wählen Sie für Operating system (Betriebssystem) die Option Amazon Linux 2 aus.10. Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.11. Wählen Sie für Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:3.0 aus.12. Wählen Sie unter Service role weiterhin New service role aus und lassen Sie Role name unverändert.13. Belassen Sie für Buildspec die Option Use a buildspec file (Eine buildspec-Datei verwenden) aktiviert.14. Wählen Sie unter Artifacts für Type Amazon S3 aus.15. Wählen Sie für Bucket name codebuild-region-ID-account-ID-output-bucket aus.16. Lassen Sie Name und Path (Pfad) leer.17. Wählen Sie Create build project (Build-Projekt erstellen) aus.

Nächster SchrittSchritt 6: Ausführen des Builds (p. 12)

Schritt 6: Ausführen des Builds(Vorheriger Schritt: Schritt 5: Erstellen des Build-Projekts (p. 11))

In diesem Schritt weisen Sie AWS CodeBuild an, den Build mit den Einstellungen des Build-Projektsauszuführen.

So führen Sie den Build aus

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Wählen Sie in der Liste der Build-Projekte codebuild-demo-project und dann Start build aus.4. Wählen Sie auf der Seite Start build (Build starten) die Option Start build (Build starten) aus.

Nächster SchrittSchritt 7: Anzeigen der Zusammenfassung der Build-Informationen (p. 13)

API-Version 2016-10-0612

Page 20: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 7: Anzeigen der Zusammenfassung

der Build-Informationen

Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen(Vorheriger Schritt: Schritt 6: Ausführen des Builds (p. 12))

In diesem Schritt zeigen Sie eine Zusammenfassung der Informationen über den Build-Status an.

So zeigen Sie eine Zusammenfassung der Build-Informationen an1. Falls die Seite codebuild-demo-project:build-ID nicht angezeigt wird, wählen Sie in der

Navigationsleiste Build history (Build-Verlauf) aus. Wählen Sie anschließend in der Liste für Project(Projekt) den Link Build run (Build ausführen) für codebuild-demo-project aus. Es sollte nur einpassender Link vorhanden sein. (Wenn Sie dieses Tutorial bereits zuvor durchgearbeitet haben,wählen Sie in der Spalte Completed (Fertiggestellt) den Link mit dem neuesten Wert aus.)

2. Auf der Seite mit den Build-Details sollten unter Phase details (Phasendetails) die folgenden Build-Phasen mit dem Eintrag Succeeded (Erfolgreich) in der Spalte Status angezeigt werden:

• SUBMITTED• IN WARTESCHLANGE• PROVISIONING• DOWNLOAD_SOURCE• INSTALL• PRE_BUILD• BUILD• POST_BUILD• UPLOAD_ARTIFACTS• FINALIZING• COMPLETED

Unter Build-Status sollte Succeeded angezeigt werden.

Wenn stattdessen In Progress (Verarbeitung läuft...) angezeigt wird, wählen Sie die Schaltfläche zumAktualisieren aus.

3. Neben jeder Build-Phase gibt der Wert Duration (Dauer) an, wie lange diese Build-Phase gedauert hat.Der Wert End time gibt an, wann die Build-Phase beendet wurde.

Nächster SchrittSchritt 8: Anzeigen der detaillierten Build-Informationen (p. 13)

Schritt 8: Anzeigen der detaillierten Build-Informationen(Vorheriger Schritt: Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen (p. 13))

In diesem Schritt zeigen Sie detaillierte Informationen über den Build in CloudWatch Logs an.

Note

Zum Schutz vertraulicher Informationen wird in CodeBuild-Protokollen Folgendes ausgeblendet:

API-Version 2016-10-0613

Page 21: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 9: Abrufen des Build-Ausgabeartefakts

• AWS-Zugriffsschlüssel-IDs. Weitere Informationen finden Sie unter Verwalten derZugriffsschlüssel für IAM-Benutzer im AWS Identity and Access Management-Benutzerhandbuch.

• Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unterSystems Manager Parameter Store und in den Anleitungen zur Systems Manager ParameterStore-Konsole im Amazon EC2 Systems Manager Benutzerhandbuch.

• Mit dem AWS Secrets Manager angegebene Zeichenfolgen. Weitere Informationen finden Sieunter Schlüsselverwaltung (p. 359).

So zeigen Sie detaillierte Build-Informationen an

1. Während die Seite mit den Build-Details immer noch vom vorherigen Schritt angezeigt wird, werden dieletzten 10,000 Zeilen des Build-Protokolls unter Build logs angezeigt. Wählen Sie den Link View entirelog, um das gesamte Build-Protokoll in CloudWatch Logs anzuzeigen.

2. Im CloudWatch Logs-Protokollstream können Sie die Protokollereignisse durchsuchen. Standardmäßigwerden nur die letzten Protokollereignisse angezeigt. Um ältere Protokollereignisse anzuzeigen,blättern Sie zum Anfang der Liste.

3. In diesem Tutorial enthalten die meisten Protokollereignisse wahrscheinlich nicht benötigte detaillierteInformationen über das Herunterladen von Build-Abhängigkeitsdateien durch CodeBuild in die Build-Umgebung und deren Installation. Sie können die angezeigten Informationen über das Feld Filterevents reduzieren. Wenn Sie beispielsweise "[INFO]" in das Feld Filter events (Ereignisse filtern)eingeben, werden nur Ereignisse angezeigt, die [INFO] enthalten. Weitere Informationen finden Sieunter Filter und Pattern-Syntax im Amazon CloudWatch-Benutzerhandbuch.

Nächster SchrittSchritt 9: Abrufen des Build-Ausgabeartefakts (p. 14)

Schritt 9: Abrufen des Build-Ausgabeartefakts(Vorheriger Schritt: Schritt 8: Anzeigen der detaillierten Build-Informationen (p. 13))

In diesem Schritt rufen Sie die Datei messageUtil-1.0.jar ab, die CodeBuild erstellt und in denAusgabe-Bucket hochgeladen hat.

Sie können für diesen Schritt die CodeBuild-Konsole oder die Amazon S3-Konsole verwenden.

So rufen Sie das Build-Ausgabeartefakt ab (AWS CodeBuild-Konsole)

1. Mit CodeBuild Konsole noch geöffnet und die Detailseite der Build-Details wird weiterhin vomvorherigen Schritt angezeigt, wählen Sie Details erstellen und scrollen Sie nach unten zum ArtefakteAbschnitt.

Note

(Falls die Build-Detailseite nicht angezeigt wird, wählen Sie in der Navigationsleiste Buildhistory und dann den Link Build run aus.)

2. Der Link zum Amazon S3 Ordner befindet sich unter dem Speicherort für Artefakte. Dieser Link öffnetden Ordner in Amazon S3 wo Sie die messageUtil-1.0.jar Ausgabedatei für Ausgabeausgabe.

So rufen Sie das Build-Ausgabeartefakt ab (Amazon S3-Konsole)

1. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.

API-Version 2016-10-0614

Page 22: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 10: Löschen des S3-Empfangs-Buckets

2. Öffnen codebuild-region-ID-account-ID-output-bucket.3. Öffnen Sie das Verzeichnis codebuild-demo-project.4. Öffnen Sie den Ordner target, in dem Sie die Build-Ausgabeartefaktdatei messageUtil-1.0.jar

finden.

Nächster SchrittSchritt 10: Löschen des S3-Empfangs-Buckets (p. 15)

Schritt 10: Löschen des S3-Empfangs-Buckets(Vorheriger Schritt: Schritt 9: Abrufen des Build-Ausgabeartefakts (p. 14))

Um kontinuierlich für das AWS-Konto anfallende Kosten zu vermeiden, können Sie den in diesem Tutorialverwendeten Eingangs-Bucket löschen. Eine Anleitung finden Sie unter Löschen oder Leeren von Bucketsim Entwicklerhandbuch für Amazon Simple Storage Service.

Wenn Sie diesen Bucket mit dem IAM-Benutzer oder einem IAM-Administratorbenutzer löschen, benötigtder Benutzer mehr Zugriffsberechtigungen. Fügen Sie die folgende Anweisung zwischen den Markern (###BEGIN ADDING STATEMENT HERE ### und ### END ADDING STATEMENTS HERE ###) zu einervorhandenen Zugriffsrichtlinie für den Benutzer hinzu.

Die Ellipsen (...) in dieser Anweisung dienen der Übersichtlichkeit der Darstellung. Entfernen Sie keineAnweisungen aus der vorhandenen Zugriffsrichtlinie. Geben Sie keine Auslassungspunkte in die Richtlinieein.

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ]}

Nächster SchrittNachbearbeitung (p. 15)

NachbearbeitungIn diesem Tutorial haben Sie AWS CodeBuild verwendet, um einen Satz Java-Klassendateien als Build ineiner JAR-Datei zu erstellen. Anschließend haben Sie die Build-Ergebnisse angezeigt.

Sie können CodeBuild jetzt in eigenen Szenarien verwenden. Folgen Sie den Anweisungen in Planen einesBuilds (p. 149). Wenn Sie dazu noch nicht bereit sind, können Sie einige der Beispiele als Build erstellen.Weitere Informationen finden Sie unter Beispiele (p. 31).

API-Version 2016-10-0615

Page 23: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErste Schritte mit der AWS CLI

Erste Schritte mit AWS CodeBuild unterVerwendung der AWS CLI

In diesem Tutorial erstellen Sie mit AWS CodeBuild aus einer Sammlung von Beispielquellcode-Eingabedateien (Build-Eingabeartefakte oder Build-Eingabe) eine bereitstellbare Version des Quellcodes(Build-Ausgabeartefakt oder Build-Ausgabe). Genau genommen weisen Sie CodeBuild an, Apache Maven,ein gängiges Build-Tool, zum Erstellen einer Sammlung von Java-Klassendateien für eine Java-Archivdatei(JAR) zu verwenden. Dieses Tutorial setzt nicht voraus, dass Sie mit Apache Maven oder Java vertrautsind.

Sie können über die CodeBuild-Konsole, AWS CodePipeline, die AWS CLI oder die AWS-SDKsmit CodeBuild arbeiten. Dieses Tutorial zeigt, wie Sie CodeBuild mit der AWS CLI verwenden.Für weitere Informationen zur Nutzung von CodePipeline siehe Verwenden von CodePipeline mitCodeBuild (p. 407). Für weitere Informationen zur Verwendung der AWS-SDKs siehe Direktes Ausführenvon CodeBuild (p. 407).

Important

Die Schritte in diesem Tutorial setzen voraus, dass Sie Ressourcen (z. B. einen S3-Bucket)erstellen, die Kosten für das AWS-Konto verursachen können. Dies umfasst mögliche Kosten fürCodeBuild- und AWS-Ressourcen sowie Aktionen in Verbindung mit Amazon S3, AWS KMS undCloudWatch Logs. Weitere Informationen finden Sie unter CodeBuild-Preise, Amazon S3-Preise,AWS Key Management Service-Preise und Amazon CloudWatch-Preise.

Steps• Schritt 1 Zwei S3-Buckets erstellen (p. 16)• Schritt 2 Erstellen des Quellcodes (p. 17)• Schritt 3 Erstellen der Buildspec-Datei (p. 19)• Schritt 4. Quellcode und die Datei für die Gebäudespezifikation hochladen (p. 21)• Schritt 5. Das Build-Projekt erstellen (p. 21)• Schritt 6. Führen Sie den Build aus. (p. 24)• Schritt 7. Zusammengefasste Build-Informationen anzeigen (p. 25)• Schritt 8. Detaillierte Informationen zum Aufbau anzeigen (p. 27)• Schritt 9 Erstellen Sie das Build-Output-Artefakt (p. 29)• Schritt 10 S3-Eingangskatheter löschen (p. 30)• Nachbearbeitung (p. 30)

Schritt 1 Zwei S3-Buckets erstellen(Teil von: Erste Schritte mit AWS CodeBuild unter Verwendung der AWS CLI (p. 16))

Auch wenn Sie einen einzelnen Bucket für dieses Tutorial verwenden können, ist mit zwei Bucketseinfacher zu erkennen, woher die Build-Eingabe stammt und wohin die Build-Ausgabe geschrieben wird.

• Einer dieser Buckets (Eingangs-Bucket) speichert die Build-Eingabe. In diesem Tutorial lautet der Namedieses Eingabe-Buckets codebuild-region-ID-account-ID-input-bucket, wobei region-IDdie AWS-Region des Buckets und account-ID die AWS-Konto-ID angibt.

• Der andere Bucket (Ausgabe-Bucket) nimmt die Build-Ausgabe auf. In diesem Tutorial ist der Namedieses Ausgabe-Buckets codebuild-region-ID-account-ID-output-bucket.

API-Version 2016-10-0616

Page 24: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 2 Erstellen des Quellcodes

Wenn Sie andere Namen für diese Buckets gewählt haben, müssen Sie diese Namen im gesamten Tutorialverwenden.

Die beiden Buckets müssen sich in derselben AWS-Region wie Ihre Builds befinden. Wenn Siebeispielsweise CodeBuild anweisen, einen Build in der Region USA Ost (Ohio) auszuführen, müssen sichdiese Buckets ebenfalls in der Region USA Ost (Ohio) befinden.

Weitere Informationen finden Sie unter Erstellen eines Buckets im Amazon Simple Storage Service-Benutzerhandbuch.

Note

Obwohl CodeBuild auch Build-Eingaben unterstützt, die in CodeCommit-, GitHub- und Bitbucket-Repositorys gespeichert sind, geht dieses Tutorial nicht auf deren Verwendung ein. WeitereInformationen finden Sie unter Planen eines Builds (p. 149).

Nächster SchrittSchritt 2 Erstellen des Quellcodes (p. 17)

Schritt 2 Erstellen des Quellcodes(Vorheriger Schritt: Schritt 1 Zwei S3-Buckets erstellen (p. 16))

In diesem Schritt erstellen Sie den Quellcode, dessen Build CodeBuild im Ausgabe-Bucket erstellen soll.Dieser Quellcode besteht aus zwei Java-Klassendateien und einer Apache Maven Project Object Model(POM)-Datei.

1. Erstellen Sie in einem leeren Verzeichnis auf Ihrem lokalen Computer oder der Instance folgendeVerzeichnisstruktur.

(root directory name) `-- src |-- main | `-- java `-- test `-- java

2. Erstellen Sie diese Datei mithilfe eines Texteditors, benennen Sie sie MessageUtil.java undspeichern Sie sie im Verzeichnis src/main/java.

public class MessageUtil { private String message;

public MessageUtil(String message) { this.message = message; }

public String printMessage() { System.out.println(message); return message; }

public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; }}

API-Version 2016-10-0617

Page 25: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 2 Erstellen des Quellcodes

Diese Klassendatei erstellt die Zeichenfolge, die an sie übergeben wurde, als Ausgabe. DerMessageUtil-Konstruktor legt die Zeichenfolge fest. Die printMessage-Methode erstellt dieAusgabe. Die salutationMessage-Methode gibt Hi! gefolgt von der Zeichenfolge aus.

3. Erstellen Sie diese Datei, benennen Sie sie TestMessageUtil.java und speichern Sie sie imVerzeichnis /src/test/java.

import org.junit.Test;import org.junit.Ignore;import static org.junit.Assert.assertEquals;

public class TestMessageUtil {

String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); }

@Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); }}

Diese Klassendatei setzt die message-Variable in der Klasse MessageUtil auf Robert.Anschließend führt sie einen Test durch, um zu sehen, ob die message-Variable erfolgreich festgelegtwurde, indem sie überprüft, ob die Zeichenfolgen Robert und Hi!Robert in der Ausgabe vorhandensind.

4. Erstellen Sie diese Datei, benennen Sie sie pom.xml und speichern Sie sie im Stammverzeichnis(oberste Ebene).

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin>

API-Version 2016-10-0618

Page 26: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 3 Erstellen der Buildspec-Datei

</plugins> </build></project>

Apache Maven verwendet die Anweisungen in dieser Datei, um die Dateien MessageUtil.java undTestMessageUtil.java in eine Datei namens messageUtil-1.0.jar zu konvertieren und danndie angegebenen Tests auszuführen.

An diesem Punkt sollte Ihre Dateistruktur wie folgt aussehen:

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Nächster SchrittSchritt 3 Erstellen der Buildspec-Datei (p. 19)

Schritt 3 Erstellen der Buildspec-Datei(Vorheriger Schritt: Schritt 2 Erstellen des Quellcodes (p. 17))

In diesem Schritt erstellen Sie eine Build-Spezifikationsdatei. Eine buildspec ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format, die CodeBuild zum Ausführen eines Buildsverwendet. Ohne Build-Spezifikation ist CodeBuild nicht in der Lage, die Build-Eingabe erfolgreich in eineBuild-Ausgabe zu konvertieren oder das Build-Ausgabeartefakt, das in den Ausgabe-Bucket hochgeladenwerden soll, in der Build-Umgebung zu erkennen.

Erstellen Sie diese Datei, benennen Sie sie buildspec.yml und speichern Sie sie im Stammverzeichnis(oberste Ebene).

version: 0.2

phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date`artifacts: files: - target/messageUtil-1.0.jar

API-Version 2016-10-0619

Page 27: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 3 Erstellen der Buildspec-Datei

Important

Da es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt, ist dieFormatierung in einer Build-Spezifikationsdeklaration wichtig. Wenn die Anzahl der Leerzeichenin der Build-Spezifikationsdeklaration nicht mit dieser übereinstimmt, schlägt der Build ggf.sofort fehl. Verwenden Sie eine YAML-Validierung, um zu testen, ob es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt.Note

Statt eine Build-Spezifikationsdatei in Ihren Quellcode einzuschließen, können Sie Build-Befehlebeim Erstellen eines Build-Projekts separat deklarieren. Das ist hilfreich, wenn Sie Ihren Quellcodemit unterschiedlichen Build-Befehlen erstellen möchten, ohne jedes Mal das Quellcode-Repositoryzu aktualisieren. Weitere Informationen finden Sie unter Syntax der Build-Spezifikation (p. 151).

In dieser Build-Spezifikationsdeklaration gilt:

• version steht für die Version des verwendeten Build-Spezifikationsstandards. Diese Build-Spezifikationsdeklaration verwendet die aktuelle Version, 0.2.

• phases steht für die Build-Phasen, in denen Sie CodeBuild anweisen können, Befehle auszuführen.Diese Build-Phasen sind hier als install, pre_build, build und post_build aufgelistet. Siekönnen die Schreibweise dieser Build-Phasennamen nicht ändern und Sie können keine zusätzlichenBuild-Phasennamen erstellen.

In diesem Beispiel führt CodeBuild während der build-Phase den Befehl mvn install aus. DieserBefehl weist Apache Maven an, die Java-Klassendateien zu kompilieren, zu testen und die kompiliertenDateien in ein Build-Ausgabeartefakt zu verpacken. Der Vollständigkeit halber sind in diesem Beispieleinige echo-Befehle in jeder Build-Phase platziert. Wenn Sie die detaillierten Build-Informationen späterin diesem Tutorial anzeigen, können Sie der Ausgabe dieser echo-Befehle entnehmen, wie und inwelcher Reihenfolge CodeBuild Befehle ausführt. (Auch wenn alle Build-Phasen in diesem Beispielenthalten sind, müssen Sie nicht unbedingt eine Build-Phase einschließen, wenn Sie nicht vorhaben,während dieser Phase Befehle auszuführen.) Für jede enthaltene Build-Phase führt CodeBuild jedenangegebenen Befehl aus, jeweils einzeln in der aufgeführten Reihenfolge, vom Anfang bis zum Ende.

• artifacts stellt den Satz von Build-Ausgabeartefakten dar, die CodeBuild in den Ausgabe-Buckethochlädt. files stellt die Dateien dar, die in die Build-Ausgabe eingeschlossen werden sollen.CodeBuild lädt die messageUtil-1.0.jar-Einzeldatei hoch, die sich im relativen target-Verzeichnisder Build-Umgebung befindet. Der Dateiname messageUtil-1.0.jar und der Verzeichnisnametarget, unter denen Apache Maven Build-Ausgabeartefakte erstellt und speichert, gelten nur für diesesBeispiel. In Ihren eigenen Builds lauten diese Dateinamen und Verzeichnisse anders.

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).

An diesem Punkt sollte Ihre Dateistruktur wie folgt aussehen:

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Nächster SchrittSchritt 4. Quellcode und die Datei für die Gebäudespezifikation hochladen (p. 21)

API-Version 2016-10-0620

Page 28: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 4. Quellcode und die Datei fürdie Gebäudespezifikation hochladen

Schritt 4. Quellcode und die Datei für dieGebäudespezifikation hochladen(Vorheriger Schritt: Schritt 3 Erstellen der Buildspec-Datei (p. 19))

In diesem Schritt fügen Sie den Quellcode und die Build-Spezifikationsdatei zum Empfangs-Bucket hinzu.

Erstellen Sie mit dem ZIP-Dienstprogramm Ihres Betriebssystems eine Datei namens MessageUtil.zip,die MessageUtil.java, TestMessageUtil.java, pom.xml und buildspec.yml enthält.

Die Verzeichnisstruktur der Datei MessageUtil.zip muss wie folgt aussehen:

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Important

Schließen Sie nicht das Verzeichnis (root directory name) ein, sondern nur dieVerzeichnisse und Dateien, die im Verzeichnis (root directory name) enthalten sind.

Laden Sie die Datei MessageUtil.zip in den Empfangs-Bucket namens codebuild-region-ID-account-ID-input-bucket.

Important

Bei CodeCommit-, GitHub- und Bitbucket-Repositorys müssen Sie in der Regel eine Build-Spezifikationsdatei namens buildspec.yml im Stammverzeichnis (oberste Ebene) eines jedenRepositorys speichern oder die Build-Spezifikationsdeklaration als Teil der Build-Projektdefinitioneinschließen. Erstellen Sie keine ZIP-Datei, die den Quellcode und die Build-Spezifikationsdateides Repositorys enthält.Bei Build-Eingaben, die nur in S3-Buckets gespeichert sind, müssen Sie eine ZIP-Dateierstellen, die den Quellcode enthält, und – gemäß Konvention – eine Build-Spezifikationsdateinamens buildspec.yml im Stammverzeichnis (oberste Ebene) speichern oder die Build-Spezifikationsdeklaration in die Build-Projektdefinition einschließen.Wenn Sie einen anderen Namen für Ihre Build-Spezifikationsdatei verwenden oder auf eine Build-Spezifikation verweisen möchten, die nicht im Stammverzeichnis gespeichert ist, können Sie eineÜberschreibung der Build-Spezifikation im Rahmen der Build-Projektdefinition angeben. WeitereInformationen finden Sie unter Dateiname der Build-Spezifikation und Speicherort (p. 151).

Nächster SchrittSchritt 5. Das Build-Projekt erstellen (p. 21)

Schritt 5. Das Build-Projekt erstellen(Vorheriger Schritt: Schritt 4. Quellcode und die Datei für die Gebäudespezifikation hochladen (p. 21))

In diesem Schritt erstellen Sie ein Build-Projekt, das AWS CodeBuild verwendet, um die Erstellungauszuführen. Ein Build-Projekt enthält Informationen zur Ausführung eines Builds: wo befindet sich derQuellcode, welche Build-Umgebung soll verwendet werden, welche Build-Befehle sollen ausgeführt werden

API-Version 2016-10-0621

Page 29: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 5. Das Build-Projekt erstellen

und wo soll die Build-Ausgabe gespeichert werden. Eine Build-Umgebung stellt eine Kombination ausBetriebssystem, Programmiersprachenlaufzeit und Tools dar, die CodeBuild zum Ausführen eines Buildsverwendet. Die Build-Umgebung wird als Docker-Bild ausgedrückt. Weitere Informationen finden Sie unterDocker Overview auf der Docker Docs-Website.

Für diese Build-Umgebung weisen Sie CodeBuild an, ein Docker-Image zu verwenden, das eine Versiondes Java Development Kit (JDK) und Apache Maven enthält.

So erstellen Sie ein Build-Projekt

1. Verwenden Sie die AWS CLI zum Ausführen des create-project-Befehls.

aws codebuild create-project --generate-cli-skeleton

Daten im JSON-Format werden in der Ausgabe angezeigt. Kopieren Sie die Daten in eine Dateinamens create-project.json auf dem lokalen Computer oder einer lokalen Instance, auf derdie AWS CLI installiert ist. Wenn Sie einen anderen Dateinamen verwenden, muss dieser Name imgesamten Tutorial verwendet werden.

Ändern Sie die kopierten Daten entsprechend dem nachfolgenden Format und speichern Sie dieErgebnisse:

{ "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole"}

Ersetzen serviceIAMRole mit dem Amazon Resource Name (ARN) CodeBuild Servicerolle (z. B.arn:aws:iam::account-ID:role/role-name). Informationen zum Erstellen finden Sie unterErstellen Sie eine CodeBuild-Servicerolle (p. 396).

In diesen Daten:

• name stellt eine erforderliche ID für dieses Build-Projekt dar (in diesem Beispiel codebuild-demo-project). Build-Projektnamen müssen in allen Build-Projekten in Ihrem Konto eindeutig sein.

• Für source ist type ein erforderlicher Wert, der dem Repository-Typ des Quellcodes (in diesemBeispiel S3 für einen Amazon S3-Bucket) entspricht.

• Für source stellt location den Pfad zum Quellcode dar (in diesem Beispiel der Name desEmpfangs-Buckets gefolgt vom ZIP-Dateinamen).

• Fürartifacts ist type ein erforderlicher Wert, der den Repository-Typ des Build-Ausgabeartefakts(in diesem Beispiel S3 für einen Amazon S3-Bucket) entspricht.

• Für artifacts stellt location den Namen des Ausgabe-Buckets dar, den Sie zuvor erstellt oderdefiniert haben (in diesem Beispiel codebuild-region-ID-account-ID-output-bucket).

• Für environment ist type ein erforderlicher Wert, der den Typ der Build-Umgebung darstellt(derzeit ist LINUX_CONTAINER der einzig zulässige Wert).

API-Version 2016-10-0622

Page 30: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 5. Das Build-Projekt erstellen

• für environment, image ist ein erforderlicher Wert, der den Docker-Bildnamen und die Tag-Kombination dieses Erstellungsprojekts darstellt, wie im Docker-Bild-Repository-Typ angegeben (indiesem Beispiel) aws/codebuild/standard:4.0 für ein Docker-Bild im CodeBuild Docker-Bilder-Repository). aws/codebuild/standard ist der Name des Docker-Bildes. 1.0 ist das Tag desDocker-Bildes.

Weitere Docker-Images, die Sie in Ihren Szenarien verwenden können, finden Sie unter Build-Umgebungsreferenz (p. 174).

• Für environment ist computeType ein erforderlicher Wert, der die von CodeBuild verwendetenDatenverarbeitungsressourcen darstellt (in diesem Beispiel BUILD_GENERAL1_SMALL).

Note

Andere verfügbare Werte in den ursprünglichen JSON-formatierten Daten, wie z. B.description, buildspec, auth (einschließlich type und resource), path,namespaceType, name (für artifacts), packaging, environmentVariables(einschließlich name und value), timeoutInMinutes, encryptionKey, und tags(einschließlich key und value) sind optional. Sie werden in diesem Tutorial nicht verwendetund deshalb hier nicht aufgelistet. Weitere Informationen finden Sie im Erstellen eines Build-Projekts (AWS CLI) (p. 217).

2. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie denBefehl create-project erneut aus.

aws codebuild create-project --cli-input-json file://create-project.json

Ist der Befehl erfolgreich, gibt er als Ausgabe Daten zurück, die wie folgt aussehen sollten.

{ "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:4.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" }}

• project enthält Informationen zu diesem Build-Projekt.• tags stellt alle deklarierten Tags dar.

API-Version 2016-10-0623

Page 31: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 6. Führen Sie den Build aus.

• packaging zeigt, wie das Erstellungsausgabeartefakt im Ausgabebucket gespeichert wird.NONE bedeutet, dass ein Ordner im Ausgabebucket erstellt wird. Das Build-Ausgabeartefakt wir indiesem Ordner gespeichert.

• lastModified zeigt die Uhrzeit der letzten Änderung des Build-Projekts im Unix-Zeitformat an.• timeoutInMinutes gibt die Anzahl an Minuten an, nach denen CodeBuild den Build-Vorgang

beendet, wenn dieser noch nicht abgeschlossen wurde. (Der Standardwert ist 60 Minuten.)• created zeigt die Uhrzeit der Erstellung des Build-Projekts im Unix-Zeitformat an.• environmentVariables stellt alle Umgebungsvariablen dar, die deklariert wurden und

CodeBuild während des Build-Vorgangs zur Verfügung stehen.• encryptionKey steht für den Amazon-Ressourcennamen (ARN) des AWS KMS-

Kundenmasterschlüssels (CMK), den CodeBuild zur Verschlüsselung des Build-Ausgabeartefaktsverwendet hat.

• arn zeigt den ARN des Build-Projekts an.

Note

Nachdem Sie die create-project ist eine Fehlermeldung, die dem Folgenden ähnlich ist,möglicherweise ausgegeben: Benutzer user-ARN ist nicht autorisiert, um Folgendes auszuführen:codebuild:CreateProject. Dies ist wahrscheinlich, da Sie die AWS CLI mit den Anmeldedateneines IAM Benutzer, der nicht genügend Berechtigungen zur Verwendung besitzt CodeBuildErstellen von Build-Projekten. Um dies zu umgehen, konfigurieren Sie die AWS CLI mit denAnmeldeinformationen einer der folgenden IAM-Entitäten:

• Ein IAM-Administratorbenutzer des AWS-Kontos. Detaillierte Anweisungen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM imIAM-Benutzerhandbuch.

• Ein IAM-Benutzer im AWS-Konto mit den verwalteten RichtlinienAWSCodeBuildAdminAccess, AmazonS3ReadOnlyAccess und IAMFullAccess, diediesem IAM-Benutzer oder aber einer IAM-Gruppe angefügt sind, der der IAM-Benutzerangehört. Wenn Sie nicht über einen IAM-Benutzer oder eine IAM-Gruppe mit diesenBerechtigungen in Ihrem AWS-Konto verfügen und diese Berechtigungen auch nicht zumIAM-Benutzer oder zur IAM-Gruppe hinzufügen können, wenden Sie sich an den AWS-Kontoadministrator. Weitere Informationen finden Sie im AWS-verwaltete (vordefinierte)Richtlinien für AWS CodeBuild (p. 366).

Nächster SchrittSchritt 6. Führen Sie den Build aus. (p. 24)

Schritt 6. Führen Sie den Build aus.(Vorheriger Schritt: Schritt 5. Das Build-Projekt erstellen (p. 21))

In diesem Schritt weisen Sie AWS CodeBuild an, den Build mit den Einstellungen des Build-Projektsauszuführen.

So führen Sie den Build aus

1. Verwenden Sie die AWS CLI zum Ausführen des start-build-Befehls.

aws codebuild start-build --project-name project-name

API-Version 2016-10-0624

Page 32: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 7. Zusammengefasste Build-Informationen anzeigen

Ersetzen project-name mit Ihrem Namen für den Build-Projektnamen aus dem vorherigen Schritt(z. B. codebuild-demo-project).

2. Ist der Befehl erfolgreich, gibt er als Ausgabe Daten zurück, die wie folgt aussehen sollten:

{ "build": { "buildComplete": false, "initiator": "user-name", "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "buildStatus": "IN_PROGRESS", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:4.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "SUBMITTED", "startTime": 1472848787.882, "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE" }}

• build enthält Informationen zu diesem Build.• buildComplete gibt an, ob der Build abgeschlossen wurde (true). Ansonsten false.• initiator steht für die Entität, die den Build gestartet hat.• artifacts enthält Informationen über die Build-Ausgabe, einschließlich Speicherort.• projectName zeigt den Namen des Build-Projekts an.• buildStatus stellt den aktuellen Build-Status dar, wenn der start-build-Befehl ausgeführt wurde.• currentPhase stellt die aktuelle Build-Phase dar, wenn der start-build-Befehl ausgeführt wurde.• startTime zeigt die Uhrzeit für den Start des Build-Prozesses im Unix-Zeitformat an.• id enthält die Build-ID.• arn zeigt den ARN des Builds an.

Notieren Sie sich den Wert für die id. Sie benötigen diese im nächsten Schritt.

Nächster SchrittSchritt 7. Zusammengefasste Build-Informationen anzeigen (p. 25)

Schritt 7. Zusammengefasste Build-Informationenanzeigen(Vorheriger Schritt: Schritt 6. Führen Sie den Build aus. (p. 24))

API-Version 2016-10-0625

Page 33: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 7. Zusammengefasste Build-Informationen anzeigen

In diesem Schritt zeigen Sie eine Zusammenfassung der Informationen über den Build-Status an.

So zeigen Sie eine Zusammenfassung der Build-Informationen anVerwenden Sie die AWS CLI zum Ausführen des batch-get-builds-Befehls.

aws codebuild batch-get-builds --ids id

Ersetzen id mit id Wert, der in der Ausgabe des vorherigen Schrittes erschienen ist.

Ist der Befehl erfolgreich, gibt er als Ausgabe Daten zurück, die wie folgt aussehen sollten.

{ "buildsNotFound": [], "builds": [ { "buildComplete": true, "phases": [ { "phaseStatus": "SUCCEEDED", "endTime": 1472848788.525, "phaseType": "SUBMITTED", "durationInSeconds": 0, "startTime": 1472848787.882 }, ... The full list of build phases has been omitted for brevity ... { "phaseType": "COMPLETED", "startTime": 1472848878.079 } ], "logs": { "groupName": "/aws/codebuild/codebuild-demo-project", "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" }, "artifacts": { "md5sum": "MD5-hash", "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip", "sha256sum": "SHA-256-hash" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "initiator": "user-name", "buildStatus": "SUCCEEDED", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:4.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "COMPLETED", "startTime": 1472848787.882, "endTime": 1472848878.079, "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE"

API-Version 2016-10-0626

Page 34: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 8. Detaillierte Informationen zum Aufbau anzeigen

} ]}

• buildsNotFound zeigt die Build-IDs für alle Builds an, für die keine Informationen verfügbar sind. Indiesem Beispiel sollte dies leer sein.

• builds zeigt die Informationen für alle Builds an, für die Informationen verfügbar sind. In diesemBeispiel sollten nur über einen Build Informationen in der Ausgabe angezeigt werden.• phases steht für den Satz von Build-Phasen, die CodeBuild während des Build-Prozesses

ausführt. Informationen über die einzelnen Build-Phasen werden separat als startTime, endTimeund durationInSeconds aufgelistet (wann die Build-Phase gestartet und beendet wurde,im Unix-Zeitformat, und wie lange sie in Sekunden gedauert hat) sowie der phaseType (z. B.SUBMITTED, PROVISIONING, DOWNLOAD_SOURCE, INSTALL, PRE_BUILD, BUILD, POST_BUILD,UPLOAD_ARTIFACTS, FINALIZING oder COMPLETED) und phaseStatus (z. B. SUCCEEDED,FAILED, FAULT, TIMED_OUT, IN_PROGRESS oder STOPPED). Wenn Sie den Befehl batch-get-buildszum ersten Mal ausführen, sind möglicherweise nicht viele (oder gar keine) Phasen vorhanden. Nachmehrmaligem Ausführen des Befehls batch-get-builds mit derselben Build-ID sollten mehr Build-Phasen in der Ausgabe angezeigt werden.

• logs enthält Informationen in Amazon CloudWatch Logs zu den Build-Protokollen.• md5sum und sha256sum zeigen die Hash-Werte von MD5 und SHA-256 des Build-Ausgabeartefakts

an. Diese werden nur dann angezeigt, wenn das Projekt packaging Wert ist eingestellt auf ZIP. (Siehaben diesen Wert nicht in diesem Tutorial festgelegt.) Sie können diese Hashes zusammen mit einemPrüfsummentool verwenden, um die Integrität und Authentizität der Datei zu bestätigen.

Note

Sie können auch die Amazon S3-Konsole verwenden, um die Hash-Werte anzuzeigen.Aktivieren Sie das Kontrollkästchen neben dem Build-Ausgabeartefakt. Wählen Sie dannActions (Aktionen) und schließlich Properties (Eigenschaften) aus. Erweitern Sie im BereichProperties den Eintrag Metadata und zeigen Sie die Werte für x-amz-meta-codebuild-content-md5 und x-amz-meta-codebuild-content-sha256 an. (In der Amazon S3-Konsole sollte derETag-Wert für das Build-Ausgabeartefakt nicht als Hash-Wert von MD5 oder SHA-256interpretiert werden.)Wenn Sie die AWS SDKs zum Abrufen dieser Hash-Werte verwenden, haben die Werte denNamen codebuild-content-md5 und codebuild-content-sha256.

• endTime zeigt die Uhrzeit für das Ende des Build-Prozesses im Unix-Zeitformat an.

Nächster SchrittSchritt 8. Detaillierte Informationen zum Aufbau anzeigen (p. 27)

Schritt 8. Detaillierte Informationen zum Aufbauanzeigen(Vorheriger Schritt: Schritt 7. Zusammengefasste Build-Informationen anzeigen (p. 25))

In diesem Schritt zeigen Sie detaillierte Informationen über den Build in CloudWatch Logs an.

Note

Zum Schutz vertraulicher Informationen wird in CodeBuild-Protokollen Folgendes ausgeblendet:

• AWS-Zugriffsschlüssel-IDs. Weitere Informationen finden Sie unter Verwalten derZugriffsschlüssel für IAM-Benutzer im AWS Identity and Access Management-Benutzerhandbuch.

API-Version 2016-10-0627

Page 35: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 8. Detaillierte Informationen zum Aufbau anzeigen

• Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unterSystems Manager Parameter Store und in den Anleitungen zur Systems Manager ParameterStore-Konsole im Amazon EC2 Systems Manager Benutzerhandbuch.

• Mit dem AWS Secrets Manager angegebene Zeichenfolgen. Weitere Informationen finden Sieunter Schlüsselverwaltung (p. 359).

So zeigen Sie detaillierte Build-Informationen an

1. Wechseln Sie in Ihrem Webbrowser zum deepLink-Speicherort, der in der Ausgabe des vorherigenSchrittes angezeigt wurde (beispielsweise https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE).

2. Im CloudWatch Logs-Protokollstream können Sie die Protokollereignisse durchsuchen. Standardmäßigwerden nur die letzten Protokollereignisse angezeigt. Um ältere Protokollereignisse anzuzeigen,blättern Sie zum Anfang der Liste.

3. In diesem Tutorial enthalten die meisten Protokollereignisse wahrscheinlich nicht benötigte detaillierteInformationen über das Herunterladen von Build-Abhängigkeitsdateien durch CodeBuild in die Build-Umgebung und deren Installation. Sie können die angezeigten Informationen über das Feld Filterevents reduzieren. Wenn Sie beispielsweise "[INFO]" in das Feld Filter events (Ereignisse filtern)eingeben, werden nur Ereignisse angezeigt, die [INFO] enthalten. Weitere Informationen finden Sieunter Filter und Pattern-Syntax im Amazon CloudWatch-Benutzerhandbuch.

Diese Teile eines CloudWatch Logs-Protokollstreams gehören zu diesem Tutorial.

...[Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase...[Container] 2016/04/15 17:49:42 Entering pre_build phase... [Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true [Container] 2016/04/15 17:49:42 Entering phase BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering build phase... [Container] 2016/04/15 17:49:42 Entering build phase...[Container] 2016/04/15 17:49:42 Running command mvn install [Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... [Container] 2016/04/15 17:49:44 [INFO][Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ ... [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 T E S T S [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 Running TestMessageUtil [Container] 2016/04/15 17:49:55 Inside testSalutationMessage() [Container] 2016/04/15 17:49:55 Hi!Robert [Container] 2016/04/15 17:49:55 Inside testPrintMessage() [Container] 2016/04/15 17:49:55 Robert [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec[Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Results : [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 ...[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS

API-Version 2016-10-0628

Page 36: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 9 Erstellen Sie das Build-Output-Artefakt

[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s [Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 [Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true [Container] 2016/04/15 17:49:56 Entering phase POST_BUILD [Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... [Container] 2016/04/15 17:49:56 Entering post_build phase... [Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true [Container] 2016/04/15 17:49:57 Preparing to copy artifacts [Container] 2016/04/15 17:49:57 Assembling file list [Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Creating zip artifact

In diesem Beispiel hat CodeBuild die Build-Phasen vor, während und nach dem Build erfolgreichabgeschlossen. Es hat die Komponententests ausgeführt und die Datei messageUtil-1.0.jarerfolgreich erstellt.

Nächster SchrittSchritt 9 Erstellen Sie das Build-Output-Artefakt (p. 29)

Schritt 9 Erstellen Sie das Build-Output-Artefakt(Vorheriger Schritt: Schritt 8. Detaillierte Informationen zum Aufbau anzeigen (p. 27))

In diesem Schritt rufen Sie die Datei messageUtil-1.0.jar ab, die CodeBuild erstellt und in denAusgabe-Bucket hochgeladen hat.

Sie können für diesen Schritt die CodeBuild-Konsole oder die Amazon S3-Konsole verwenden.

So rufen Sie das Build-Ausgabeartefakt ab (AWS CodeBuild-Konsole)

1. Mit CodeBuild Konsole noch geöffnet und die Detailseite der Build-Details wird weiterhin vomvorherigen Schritt angezeigt, wählen Sie Details erstellen und scrollen Sie nach unten zum ArtefakteAbschnitt.

Note

(Falls die Build-Detailseite nicht angezeigt wird, wählen Sie in der Navigationsleiste Buildhistory und dann den Link Build run aus.)

2. Der Link zum Amazon S3 Ordner befindet sich unter dem Speicherort für Artefakte. Dieser Link öffnetden Ordner in Amazon S3 wo Sie die messageUtil-1.0.jar Ausgabedatei für Ausgabeausgabe.

So rufen Sie das Build-Ausgabeartefakt ab (Amazon S3-Konsole)

1. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.2. Öffnen codebuild-region-ID-account-ID-output-bucket.3. Öffnen Sie das Verzeichnis codebuild-demo-project.4. Öffnen Sie den Ordner target, in dem Sie die Build-Ausgabeartefaktdatei messageUtil-1.0.jar

finden.

API-Version 2016-10-0629

Page 37: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchritt 10 S3-Eingangskatheter löschen

Nächster SchrittSchritt 10 S3-Eingangskatheter löschen (p. 30)

Schritt 10 S3-Eingangskatheter löschen(Vorheriger Schritt: Schritt 9 Erstellen Sie das Build-Output-Artefakt (p. 29))

Um kontinuierlich für das AWS-Konto anfallende Kosten zu vermeiden, können Sie den in diesem Tutorialverwendeten Eingangs-Bucket löschen. Eine Anleitung finden Sie unter Löschen oder Leeren von Bucketsim Entwicklerhandbuch für Amazon Simple Storage Service.

Wenn Sie diesen Bucket mit dem IAM-Benutzer oder einem IAM-Administratorbenutzer löschen, benötigtder Benutzer mehr Zugriffsberechtigungen. Fügen Sie die folgende Anweisung zwischen den Markern (###BEGIN ADDING STATEMENT HERE ### und ### END ADDING STATEMENTS HERE ###) zu einervorhandenen Zugriffsrichtlinie für den Benutzer hinzu.

Die Ellipsen (...) in dieser Anweisung dienen der Übersichtlichkeit der Darstellung. Entfernen Sie keineAnweisungen aus der vorhandenen Zugriffsrichtlinie. Geben Sie keine Auslassungspunkte in die Richtlinieein.

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ]}

Nächster SchrittNachbearbeitung (p. 30)

NachbearbeitungIn diesem Tutorial haben Sie AWS CodeBuild verwendet, um einen Satz Java-Klassendateien als Build ineiner JAR-Datei zu erstellen. Anschließend haben Sie die Build-Ergebnisse angezeigt.

Sie können CodeBuild jetzt in eigenen Szenarien verwenden. Folgen Sie den Anweisungen in Planen einesBuilds (p. 149). Wenn Sie dazu noch nicht bereit sind, können Sie einige der Beispiele als Build erstellen.Weitere Informationen finden Sie im Beispiele (p. 31).

API-Version 2016-10-0630

Page 38: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchWindows-Beispiele

CodeBuild-BeispieleDiese Probengruppen können verwendet werden, um mit AWS CodeBuild zu experimentieren:

Themen• Microsoft Windows-Beispiele für CodeBuild (p. 31)• CodeBuild – Anwendungsfallbasierte Beispiele (p. 48)

Microsoft Windows-Beispiele für CodeBuildIn diesen Beispielen wird eine AWS CodeBuild-Build-Umgebung mit Microsoft Windows Server 2019,dem .NET Framework und dem .NET Core SDK verwendet, um ausführbare Dateien aus in C#, F# undVisual Basic geschriebenem Code zu erstellen.

Important

Durch die Ausführung dieser Beispiele fallen möglicherweise Kosten für Ihr AWS-Konto an. Diesumfasst mögliche Kosten für CodeBuild- und AWS-Ressourcen sowie Aktionen in Verbindung mitAmazon S3, AWS KMS und CloudWatch Logs. Weitere Informationen finden Sie unter CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise und Amazon CloudWatch-Preise.

Ausführen der BeispieleSo führen Sie diese Beispiele aus

1. Erstellen Sie die Dateien wie in den Abschnitten zu „Verzeichnisstrukturen“ und „Dateien“ indiesem Thema beschrieben und laden Sie sie anschließend in einen S3-Empfangs-Bucket oder einCodeCommit- bzw. GitHub-Repository hoch.

Important

Laden Sie nicht (root directory name) hoch, sondern nur die Dateien in (rootdirectory name).Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen,die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie(root directory name) nicht zur ZIP-Datei hinzu, sondern nur die Dateien in (rootdirectory name).

2. Erstellen Sie ein Build-Projekt, führen Sie den Build aus und befolgen Sie die Anweisungen unterDirektes Ausführen von CodeBuild (p. 407).

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "sample-windows-build-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/windows-build-input-artifact.zip" }, "artifacts": { "type": "S3",

API-Version 2016-10-0631

Page 39: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerzeichnisstruktur

"location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "windows-build-output-artifact.zip" }, "environment": { "type": "WINDOWS_SERVER_2019_CONTAINER", "image": "aws/codebuild/windows-base:2019-1.0", "computeType": "BUILD_GENERAL1_MEDIUM" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

3. Um das Build-Ausgabeartefakt abzurufen, laden Sie in Ihrem S3-Ausgabe-Bucket die Datei windows-build-output-artifact.zip auf Ihren lokalen Computer oder Ihre lokale Instance herunter.Extrahieren Sie die Inhalte, um die ausführbare Datei und andere Dateien zu erhalten.

• Die ausführbare Datei für das C#-Beispiel unter Verwendung der .NET Framework,CSharpHelloWorld.exe, finden Sie im Verzeichnis CSharpHelloWorld\bin\Debug.

• Die ausführbare Datei für das F#-Beispiel unter Verwendung der .NET Framework,FSharpHelloWorld.exe, finden Sie im Verzeichnis FSharpHelloWorld\bin\Debug.

• Die ausführbare Datei für das Visual Basic-Beispiel unter Verwendung der .NET Framework,VBHelloWorld.exe, finden Sie im Verzeichnis VBHelloWorld\bin\Debug.

• Die ausführbare Datei für das C#-Beispiel unter Verwendung von .NET Core,HelloWorldSample.dll, finden Sie im Verzeichnis bin\Debug\netcoreapp3.1.

VerzeichnisstrukturDiesen Beispiele setzen die folgenden Verzeichnisstrukturen voraus.

C# und das .NET Framework(root directory name) |-- buildspec.yml |-- CSharpHelloWorld.sln `-- CSharpHelloWorld |-- App.config |-- CSharpHelloWorld.csproj |-- Program.cs `-- Properties `-- AssemblyInfo.cs

F# und das .NET Framework(root directory name) |-- buildspec.yml |-- FSharpHelloWorld.sln `-- FSharpHelloWorld |-- App.config |-- AssemblyInfo.fs |-- FSharpHelloWorld.fsproj `-- Program.fs

Visual Basic und das .NET Framework(root directory name)

API-Version 2016-10-0632

Page 40: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

|-- buildspec.yml |-- VBHelloWorld.sln `-- VBHelloWorld |-- App.config |-- HelloWorld.vb |-- VBHelloWorld.vbproj `-- My Project |-- Application.Designer.vb |-- Application.myapp |-- AssemblyInfo.vb |-- Resources.Designer.vb |-- Resources.resx |-- Settings.Designer.vb `-- Settings.settings

C# und .NET Core

(root directory name) |-- buildspec.yml |-- HelloWorldSample.csproj `-- Program.cs

FilesDiese Beispiele verwenden die folgenden Dateien.

C# und das .NET Frameworkbuildspec.yml (in (root directory name)):

version: 0.2

env: variables: SOLUTION: .\CSharpHelloWorld.sln PACKAGE_DIRECTORY: .\packages DOTNET_FRAMEWORK: 4.8

phases: build: commands: - '& "C:\ProgramData\chocolatey\bin\NuGet.exe" restore $env:SOLUTION -PackagesDirectory $env:PACKAGE_DIRECTORY' - '& "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" -p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v$env:DOTNET_FRAMEWORK" $env:SOLUTION'artifacts: files: - .\CSharpHelloWorld\bin\Debug\*

CSharpHelloWorld.sln (in (root directory name)):

Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 14VisualStudioVersion = 14.0.25420.1MinimumVisualStudioVersion = 10.0.40219.1Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpHelloWorld", "CSharpHelloWorld\CSharpHelloWorld.csproj", "{2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}"EndProject

API-Version 2016-10-0633

Page 41: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU {2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSectionEndGlobal

App.config (in (root directory name)\CSharpHelloWorld):

<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> </startup></configuration>

CSharpHelloWorld.csproj (in (root directory name)\CSharpHelloWorld):

<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{2F8752D5-E628-4A38-AA7E-BC4B4E697CBB}</ProjectGuid> <OutputType>Exe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>CSharpHelloWorld</RootNamespace> <AssemblyName>CSharpHelloWorld</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel>

API-Version 2016-10-0634

Page 42: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

</PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Data" /> <Reference Include="System.Net.Http" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> <None Include="App.config" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --></Project>

Program.cs (in (root directory name)\CSharpHelloWorld):

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;

namespace CSharpHelloWorld{ class Program { static void Main(string[] args) { System.Console.WriteLine("Hello World"); System.Threading.Thread.Sleep(10); } }}

AssemblyInfo.cs (in (root directory name)\CSharpHelloWorld\Properties):

using System.Reflection;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information// associated with an assembly.[assembly: AssemblyTitle("CSharpHelloWorld")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("")][assembly: AssemblyProduct("CSharpHelloWorld")]

API-Version 2016-10-0635

Page 43: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

[assembly: AssemblyCopyright("Copyright © 2017")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type.[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM[assembly: Guid("2f8752d5-e628-4a38-aa7e-bc4b4e697cbb")]

// Version information for an assembly consists of the following four values://// Major Version// Minor Version // Build Number// Revision//// You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below:// [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]

F# und das .NET Frameworkbuildspec.yml (in (root directory name)):

version: 0.2

env: variables: SOLUTION: .\FSharpHelloWorld.sln PACKAGE_DIRECTORY: .\packages DOTNET_FRAMEWORK: 4.8

phases: build: commands: - '& "C:\ProgramData\chocolatey\bin\NuGet.exe" restore $env:SOLUTION -PackagesDirectory $env:PACKAGE_DIRECTORY' - '& "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" -p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v$env:DOTNET_FRAMEWORK" $env:SOLUTION'artifacts: files: - .\FSharpHelloWorld\bin\Debug\*

FSharpHelloWorld.sln (in (root directory name)):

Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 14VisualStudioVersion = 14.0.25420.1MinimumVisualStudioVersion = 10.0.40219.1Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharpHelloWorld", "FSharpHelloWorld\FSharpHelloWorld.fsproj", "{D60939B6-526D-43F4-9A89-577B2980DF62}"EndProjectGlobal GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU

API-Version 2016-10-0636

Page 44: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {D60939B6-526D-43F4-9A89-577B2980DF62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D60939B6-526D-43F4-9A89-577B2980DF62}.Debug|Any CPU.Build.0 = Debug|Any CPU {D60939B6-526D-43F4-9A89-577B2980DF62}.Release|Any CPU.ActiveCfg = Release|Any CPU {D60939B6-526D-43F4-9A89-577B2980DF62}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSectionEndGlobal

App.config (in (root directory name)\FSharpHelloWorld):

<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> </startup></configuration>

AssemblyInfo.fs (in (root directory name)\FSharpHelloWorld):

namespace FSharpHelloWorld.AssemblyInfo

open System.Reflectionopen System.Runtime.CompilerServicesopen System.Runtime.InteropServices

// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information// associated with an assembly.[<assembly: AssemblyTitle("FSharpHelloWorld")>][<assembly: AssemblyDescription("")>][<assembly: AssemblyConfiguration("")>][<assembly: AssemblyCompany("")>][<assembly: AssemblyProduct("FSharpHelloWorld")>][<assembly: AssemblyCopyright("Copyright © 2017")>][<assembly: AssemblyTrademark("")>][<assembly: AssemblyCulture("")>]

// Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type.[<assembly: ComVisible(false)>]

// The following GUID is for the ID of the typelib if this project is exposed to COM[<assembly: Guid("d60939b6-526d-43f4-9a89-577b2980df62")>]

// Version information for an assembly consists of the following four values:// // Major Version// Minor Version // Build Number// Revision// // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below:// [<assembly: AssemblyVersion("1.0.*")>][<assembly: AssemblyVersion("1.0.0.0")>][<assembly: AssemblyFileVersion("1.0.0.0")>]

do

API-Version 2016-10-0637

Page 45: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

()

FSharpHelloWorld.fsproj (in (root directory name)\FSharpHelloWorld):

<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>d60939b6-526d-43f4-9a89-577b2980df62</ProjectGuid> <OutputType>Exe</OutputType> <RootNamespace>FSharpHelloWorld</RootNamespace> <AssemblyName>FSharpHelloWorld</AssemblyName> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <TargetFSharpCoreVersion>4.4.0.0</TargetFSharpCoreVersion> <Name>FSharpHelloWorld</Name> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <Tailcalls>false</Tailcalls> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <WarningLevel>3</WarningLevel> <PlatformTarget>AnyCPU</PlatformTarget> <DocumentationFile>bin\Debug\FSharpHelloWorld.XML</DocumentationFile> <Prefer32Bit>true</Prefer32Bit> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <Tailcalls>true</Tailcalls> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <WarningLevel>3</WarningLevel> <PlatformTarget>AnyCPU</PlatformTarget> <DocumentationFile>bin\Release\FSharpHelloWorld.XML</DocumentationFile> <Prefer32Bit>true</Prefer32Bit> </PropertyGroup> <ItemGroup> <Reference Include="mscorlib" /> <Reference Include="FSharp.Core, Version=$(TargetFSharpCoreVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <Private>True</Private> </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Numerics" /> </ItemGroup> <ItemGroup> <Compile Include="AssemblyInfo.fs" /> <Compile Include="Program.fs" /> <None Include="App.config" /> </ItemGroup> <PropertyGroup> <MinimumVisualStudioVersion Condition="'$(MinimumVisualStudioVersion)' == ''">11</MinimumVisualStudioVersion> </PropertyGroup>

API-Version 2016-10-0638

Page 46: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

<Choose> <When Condition="'$(VisualStudioVersion)' == '11.0'"> <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')"> <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> </PropertyGroup> </When> <Otherwise> <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')"> <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath> </PropertyGroup> </Otherwise> </Choose> <Import Project="$(FSharpTargetsPath)" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --></Project>

Program.fs (in (root directory name)\FSharpHelloWorld):

// Learn more about F# at http://fsharp.org// See the 'F# Tutorial' project for more help.

[<EntryPoint>]let main argv = printfn "Hello World" 0 // return an integer exit code

Visual Basic und das .NET Frameworkbuildspec.yml (in (root directory name)):

version: 0.2

env: variables: SOLUTION: .\VBHelloWorld.sln PACKAGE_DIRECTORY: .\packages DOTNET_FRAMEWORK: 4.8

phases: build: commands: - '& "C:\ProgramData\chocolatey\bin\NuGet.exe" restore $env:SOLUTION -PackagesDirectory $env:PACKAGE_DIRECTORY' - '& "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" -p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v$env:DOTNET_FRAMEWORK" $env:SOLUTION'artifacts: files: - .\VBHelloWorld\bin\Debug\*

VBHelloWorld.sln (in (root directory name)):

API-Version 2016-10-0639

Page 47: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 14VisualStudioVersion = 14.0.25420.1MinimumVisualStudioVersion = 10.0.40219.1Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VBHelloWorld", "VBHelloWorld\VBHelloWorld.vbproj", "{4DCEC446-7156-4FE6-8CCC-219E34DD409D}"EndProjectGlobal GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4DCEC446-7156-4FE6-8CCC-219E34DD409D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4DCEC446-7156-4FE6-8CCC-219E34DD409D}.Debug|Any CPU.Build.0 = Debug|Any CPU {4DCEC446-7156-4FE6-8CCC-219E34DD409D}.Release|Any CPU.ActiveCfg = Release|Any CPU {4DCEC446-7156-4FE6-8CCC-219E34DD409D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSectionEndGlobal

App.config (in (root directory name)\VBHelloWorld):

<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> </startup></configuration>

HelloWorld.vb (in (root directory name)\VBHelloWorld):

Module HelloWorld

Sub Main() MsgBox("Hello World") End Sub

End Module

VBHelloWorld.vbproj (in (root directory name)\VBHelloWorld):

<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{4DCEC446-7156-4FE6-8CCC-219E34DD409D}</ProjectGuid> <OutputType>Exe</OutputType> <StartupObject>VBHelloWorld.HelloWorld</StartupObject> <RootNamespace>VBHelloWorld</RootNamespace> <AssemblyName>VBHelloWorld</AssemblyName> <FileAlignment>512</FileAlignment> <MyType>Console</MyType> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

API-Version 2016-10-0640

Page 48: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

</PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <DefineDebug>true</DefineDebug> <DefineTrace>true</DefineTrace> <OutputPath>bin\Debug\</OutputPath> <DocumentationFile>VBHelloWorld.xml</DocumentationFile> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <DefineDebug>false</DefineDebug> <DefineTrace>true</DefineTrace> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DocumentationFile>VBHelloWorld.xml</DocumentationFile> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> </PropertyGroup> <PropertyGroup> <OptionExplicit>On</OptionExplicit> </PropertyGroup> <PropertyGroup> <OptionCompare>Binary</OptionCompare> </PropertyGroup> <PropertyGroup> <OptionStrict>Off</OptionStrict> </PropertyGroup> <PropertyGroup> <OptionInfer>On</OptionInfer> </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Deployment" /> <Reference Include="System.Xml" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Net.Http" /> </ItemGroup> <ItemGroup> <Import Include="Microsoft.VisualBasic" /> <Import Include="System" /> <Import Include="System.Collections" /> <Import Include="System.Collections.Generic" /> <Import Include="System.Data" /> <Import Include="System.Diagnostics" /> <Import Include="System.Linq" /> <Import Include="System.Xml.Linq" /> <Import Include="System.Threading.Tasks" /> </ItemGroup> <ItemGroup> <Compile Include="HelloWorld.vb" /> <Compile Include="My Project\AssemblyInfo.vb" /> <Compile Include="My Project\Application.Designer.vb"> <AutoGen>True</AutoGen> <DependentUpon>Application.myapp</DependentUpon> </Compile> <Compile Include="My Project\Resources.Designer.vb"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>Resources.resx</DependentUpon> </Compile>

API-Version 2016-10-0641

Page 49: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

<Compile Include="My Project\Settings.Designer.vb"> <AutoGen>True</AutoGen> <DependentUpon>Settings.settings</DependentUpon> <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> </ItemGroup> <ItemGroup> <EmbeddedResource Include="My Project\Resources.resx"> <Generator>VbMyResourcesResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.vb</LastGenOutput> <CustomToolNamespace>My.Resources</CustomToolNamespace> <SubType>Designer</SubType> </EmbeddedResource> </ItemGroup> <ItemGroup> <None Include="My Project\Application.myapp"> <Generator>MyApplicationCodeGenerator</Generator> <LastGenOutput>Application.Designer.vb</LastGenOutput> </None> <None Include="My Project\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <CustomToolNamespace>My</CustomToolNamespace> <LastGenOutput>Settings.Designer.vb</LastGenOutput> </None> <None Include="App.config" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --></Project>

Application.Designer.vb (in (root directory name)\VBHelloWorld\My Project):

'------------------------------------------------------------------------------' <auto-generated>' This code was generated by a tool.' Runtime Version:4.0.30319.42000'' Changes to this file may cause incorrect behavior and will be lost if' the code is regenerated.' </auto-generated>'------------------------------------------------------------------------------

Option Strict OnOption Explicit On

Application.myapp (in (root directory name)\VBHelloWorld\My Project):

<?xml version="1.0" encoding="utf-8"?><MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <MySubMain>false</MySubMain> <SingleInstance>false</SingleInstance> <ShutdownMode>0</ShutdownMode> <EnableVisualStyles>true</EnableVisualStyles> <AuthenticationMode>0</AuthenticationMode> <ApplicationType>2</ApplicationType>

API-Version 2016-10-0642

Page 50: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

<SaveMySettingsOnExit>true</SaveMySettingsOnExit></MyApplicationData>

AssemblyInfo.vb (in (root directory name)\VBHelloWorld\My Project):

Imports SystemImports System.ReflectionImports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following ' set of attributes. Change these attribute values to modify the information' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("VBHelloWorld")><Assembly: AssemblyDescription("")><Assembly: AssemblyCompany("")><Assembly: AssemblyProduct("VBHelloWorld")><Assembly: AssemblyCopyright("Copyright © 2017")><Assembly: AssemblyTrademark("")>

<Assembly: ComVisible(False)>

'The following GUID is for the ID of the typelib if this project is exposed to COM<Assembly: Guid("137c362b-36ef-4c3e-84ab-f95082487a5a")>

' Version information for an assembly consists of the following four values:'' Major Version' Minor Version ' Build Number' Revision'' You can specify all the values or you can default the Build and Revision Numbers ' by using the '*' as shown below:' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")><Assembly: AssemblyFileVersion("1.0.0.0")>

Resources.Designer.vb (in (root directory name)\VBHelloWorld\My Project):

'------------------------------------------------------------------------------' <auto-generated>' This code was generated by a tool.' Runtime Version:4.0.30319.42000'' Changes to this file may cause incorrect behavior and will be lost if' the code is regenerated.' </auto-generated>'------------------------------------------------------------------------------

Option Strict OnOption Explicit On

Namespace My.Resources

'This class was auto-generated by the StronglyTypedResourceBuilder 'class via a tool like ResGen or Visual Studio. 'To add or remove a member, edit your .ResX file then rerun ResGen 'with the /str option, or rebuild your VS project. '''<summary>

API-Version 2016-10-0643

Page 51: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

''' A strongly-typed resource class, for looking up localized strings, etc. '''</summary> <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _ Friend Module Resources

Private resourceMan As Global.System.Resources.ResourceManager

Private resourceCulture As Global.System.Globalization.CultureInfo

'''<summary> ''' Returns the cached ResourceManager instance used by this class. '''</summary> <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("VBHelloWorld.Resources", GetType(Resources).Assembly) resourceMan = temp End If Return resourceMan End Get End Property

'''<summary> ''' Overrides the current thread's CurrentUICulture property for all ''' resource lookups using this strongly typed resource class. '''</summary> <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Friend Property Culture() As Global.System.Globalization.CultureInfo Get Return resourceCulture End Get Set(ByVal value As Global.System.Globalization.CultureInfo) resourceCulture = value End Set End Property End ModuleEnd Namespace

Resources.resx (in (root directory name)\VBHelloWorld\My Project):

<?xml version="1.0" encoding="utf-8"?><root> <!-- Microsoft ResX Schema Version 2.0 The primary goals of this format is to allow a simple XML format that is mostly human readable. The generation and parsing of the various data types are done through the TypeConverter classes associated with the data types. Example:

API-Version 2016-10-0644

Page 52: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

... ado.net/XML headers & schema ... <resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="version">2.0</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <value>[base64 mime encoded serialized .NET Framework object]</value> </data> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <comment>This is a comment</comment> </data> There are any number of "resheader" rows that contain simple name/value pairs. Each data row contains a name, and value. The row also contains a type or mimetype. Type corresponds to a .NET class that support text/value conversion through the TypeConverter architecture. Classes that don't support this are serialized and stored with the mimetype set. The mimetype is used for serialized objects, and tells the ResXResourceReader how to depersist the object. This is currently not extensible. For a given mimetype the value must be set accordingly: Note - application/x-microsoft.net.object.binary.base64 is the format that the ResXResourceWriter will generate, however the reader can read any of the formats listed below. mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with : System.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter : and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64 value : The object must be serialized into a byte array : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="metadata"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />

API-Version 2016-10-0645

Page 53: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

</xsd:complexType> </xsd:element> <xsd:element name="assembly"> <xsd:complexType> <xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>2.0</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader></root>

Settings.Designer.vb (in (root directory name)\VBHelloWorld\My Project):

'------------------------------------------------------------------------------' <auto-generated>' This code was generated by a tool.' Runtime Version:4.0.30319.42000'' Changes to this file may cause incorrect behavior and will be lost if' the code is regenerated.' </auto-generated>'------------------------------------------------------------------------------

Option Strict OnOption Explicit On

API-Version 2016-10-0646

Page 54: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFiles

Namespace My

<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _ Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase

Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)

#Region "My.Settings Auto-Save Functionality" #If _MyType = "WindowsForms" Then Private Shared addedHandler As Boolean

Private Shared addedHandlerLockObject As New Object

<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) If My.Application.SaveMySettingsOnExit Then My.Settings.Save() End If End Sub #End If #End Region

Public Shared ReadOnly Property [Default]() As MySettings Get

#If _MyType = "WindowsForms" Then If Not addedHandler Then SyncLock addedHandlerLockObject If Not addedHandler Then AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings addedHandler = True End If End SyncLock End If #End If Return defaultInstance End Get End Property End ClassEnd Namespace

Namespace My

<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _ Friend Module MySettingsProperty

<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _ Friend ReadOnly Property Settings() As Global.VBHelloWorld.My.MySettings Get Return Global.VBHelloWorld.My.MySettings.Default End Get End Property

API-Version 2016-10-0647

Page 55: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnwendungsfallbasierte Beispiele

End ModuleEnd Namespace

Settings.settings (in (root directory name)\VBHelloWorld\My Project):

<?xml version='1.0' encoding='utf-8'?><SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true"> <Profiles> <Profile Name="(Default)" /> </Profiles> <Settings /></SettingsFile>

C# und .NET Corebuildspec.yml (in (root directory name)

version: 0.2

phases: build: commands: - dotnet restore - dotnet buildartifacts: files: - .\bin\Debug\netcoreapp3.1\*

HelloWorldSample.csproj (in (root directory name)

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup></Project>

Program.cs (in (root directory name)

using System;

namespace HelloWorldSample { public static class Program { public static void Main() { Console.WriteLine("Hello World!"); } }}

CodeBuild – Anwendungsfallbasierte BeispieleDiese anwendungsfallbasierten Beispiele können Sie verwenden, um mit AWS CodeBuild zuexperimentieren:

API-Version 2016-10-0648

Page 56: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnwendungsfallbasierte Beispiele

Zugriffstokenbeispiel (p. 50)

Zeigt, wie Sie Zugriffstoken in CodeBuild für die Verbindung mit GitHub und Bitbucket verwenden.Amazon ECR-Beispiel (p. 54)

Nutzt ein Docker-Image in einem Amazon ECR-Repository, um mithilfe von Apache Maven eineeinzelne JAR-Datei zu erstellen.

Amazon EFS-Beispiel (p. 58)

Zeigt, wie Sie eine buildspec-Datei so konfigurieren, dass ein CodeBuild-Projekt ein Amazon EFS-Dateisystem mountet und für Builds nutzt.

AWS CodeDeploy-Beispiel (p. 62)

Verwendet Apache Maven, um eine einzelne JAR-Datei zu erstellen. Verwendet CodeDeploy, umdie JAR-Datei auf einer Amazon Linux-Instance bereitzustellen. Sie können auch CodePipeline zumErstellen und Bereitstellen des Beispiels verwenden.

AWS CodePipeline Integration mit Batch erstellt Probe (p. 70)

Demonstriert die Verwendung von AWS CodePipeline zum Erstellen eines Builds mit mehrerenEingabequellen und mehreren Ausgabeartefakten.

AWS Config-Beispiel (p. 73)

Zeigt, wie AWS Config eingerichtet wird. Listet die nachverfolgten CodeBuild-Ressourcen auf undbeschreibt, wie Sie CodeBuild-Projekte in AWS Config abfragen.

AWS Elastic Beanstalk-Beispiel (p. 74)

Verwendet Apache Maven, um eine einzelne WAR-Datei zu erstellen. Verwendet Elastic Beanstalk,um die WAR-Datei auf einer Elastic Beanstalk-Instance bereitzustellen.

Beispiel einer Bitbucket-Pull-Anfrage und eines Webhook-Filters (p. 83)

Verwendet CodeBuild mit Bitbucket als Quell-Repository sowie aktivierte Webhooks, um denQuellcode neu zu erstellen, sobald eine Code-Änderung an das Repository weitergegeben wird.

Build Badges-Beispiel (p. 86)

Zeigt, wie Sie CodeBuild mit Build Badges einrichten.Build-Benachrichtigungsbeispiel (p. 89)

Verwendet Apache Maven, um eine einzelne JAR-Datei zu erstellen. Sendet eine Build-Benachrichtigung an Abonnenten eines Amazon SNS-Themas.

Erstellen eines Testberichts mithilfe des AWS CLI-Beispiels (p. 107)

Verwendet die AWS CLI, um einen Testbericht zu erstellen, auszuführen und seine Ergebnisseanzuzeigen.

Docker im benutzerdefinierten Image – Beispiel (p. 112)

Nutzt ein benutzerdefiniertes Docker-Image zum Erstellen eines Docker-Image.Docker-Beispiel (p. 114)

Verwendet ein von CodeBuild bereitgestelltes Build-Image mit Docker-Unterstützung, um ein Docker-Image mit Apache Maven zu erstellen. Überträgt das Docker-Image in ein Repository in Amazon ECR.Sie können dieses Beispiel auch so anpassen, dass das Docker-Image zum Docker Hub übertragenwird.

GitHub Enterprise Server-Beispiel (p. 121)

Verwendet CodeBuild mit GitHub Enterprise Server als Quell-Repository mit installierten Zertifikatensowie aktivierten Webhooks, um automatisch den Quellcode neu zu erstellen, sobald eine Code-Änderung an das Repository weitergegeben wird.

API-Version 2016-10-0649

Page 57: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugriffstokenbeispiel

Beispiel einer GitHub-Pull-Anfrage und eines Webhook-Filters (p. 127)

Verwendet CodeBuild mit GitHub als Quell-Repository sowie aktivierte Webhooks, um den Quellcodeneu zu erstellen, sobald eine Code-Änderung an das Repository weitergegeben wird.

Hosten der Build-Ausgabe in einem S3-Bucket (p. 130)

Zeigt das Erstellen einer statischen Website in einem S3-Bucket mit unverschlüsselten Build-Artefakten.

Beispiel für mehrere Eingabequellen und Ausgabeartefakte (p. 144)

Demonstriert die Verwendung mehrerer Eingabequellen und mehrerer Ausgabeartefakte in einemBuild-Projekt.

Beispiel einer privaten Registrierung mit AWS Secrets Manager (p. 142)

Zeigt, wie Sie bei der Erstellung mit CodeBuild ein Docker-Image in einer privaten Registrierung alsLaufzeitumgebung verwenden. Die Anmeldeinformationen für die private Registrierung sind im AWSSecrets Manager gespeichert.

Laufzeitversionen im Build-Spezfikationsdateibeispiel (p. 132)

Zeigt, wie Sie Laufzeiten und deren Versionen in der Build-Spezifikationsdatei angeben. Dies ist beider Verwendung der Ubuntu Standard-Image-Version 2.0 nötig.

Beispiel für eine Quellversion (p. 140)

Zeigt, wie Sie eine bestimmte Version Ihrer Quelle in einem CodeBuild-Build-Projekt verwendenkönnen.

Beispiel für die Verwendung des semantischen Versionings zum Benennen von Build-Artefakten (p. 147)

Illustriert die Verwendung des semantischen Versionings zum Erstellen eines Artefaktnamens währendder Erstellung des Builds.

Verwenden von Zugriffstoken mit Ihrem Quellanbieterin CodeBuildDieses Beispiel zeigt, wie Sie mittels Zugriffstoken eine Verbindung zu GitHub oder Bitbucket herstellenkönnen. Für GitHub oder GitHub Enterprise Server wird ein privates Zugriffstoken benötigt. Für Bitbucketwird ein App-Passwort benötigt.

Voraussetzungen für ZugriffstokenFügen Sie vor Beginn die erforderlichen Berechtigungsbereiche zu Ihrem Zugriffstoken hinzu.

Für GitHub muss Ihr privates Zugriffstoken die folgenden Bereiche aufweisen.

• repo gewährt volle Kontrolle über private Repositorys.• repo:status gewährt Zugriff auf Commit-Status.• admin:repo_hook gewährt volle Kontrolle über Repository-Hooks. Dieser Bereich ist nicht erforderlich,

wenn Ihr Token den Bereich repo aufweist.

Weitere Informationen finden Sie unter Grundlegendes zu Bereichen für OAuth-Apps auf der GitHub-Website.

Für Bitbucket muss Ihr App-Passwort die folgenden Bereiche aufweisen.

API-Version 2016-10-0650

Page 58: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugriffstokenbeispiel

• repository:read gewährt Lesezugriff auf alle Repositorys, auf die der autorisierende Benutzer Zugriff hat.• pullrequest:read gewährt Lesezugriff auf Pull-Anforderungen. Wenn Ihr Projekt über einen Bitbucket-

Webhook verfügt, muss Ihr App-Passwort diesen Bereich aufweisen.• webhook gewährt Zugriff auf Webhooks. Wenn Ihr Projekt über einen Webhook-Vorgang verfügt, muss

Ihr App-Passwort diesen Bereich aufweisen.

Weitere Informationen finden Sie unter Bereiche für die Bitbucket-Cloud-REST-API und OAuth für BitbucketCloud auf der Bitbucket-Website.

Verbinden mit Quellanbietern mittels Zugriffstoken (Konsole)So nutzen Sie die Konsole, um Ihr Projekt während der Projekterstellung über Zugriffstoken mit GitHuboder Bitbucket zu verbinden: Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt(Konsole) (p. 207).

Für GitHub:

1. Wählen Sie für Source provider (Quellanbieter) die Option GitHub aus.2. Wählen Sie für Repository die Option Connect with a GitHub personal access token (Mit privatem

GitHub-Zugriffstoken verbinden) aus.

3. Geben Sie in GitHub personal access token (Privates Zugriffstoken für GitHub) Ihr privates GitHub-Zugriffstoken an.

4. Wählen Sie Save token (Token speichern) aus.

Für Bitbucket:

1. Wählen Sie für Source provider (Quellanbieter) die Option Bitbucket aus.

API-Version 2016-10-0651

Page 59: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugriffstokenbeispiel

Note

Bitbucket Server wird von CodeBuild nicht unterstützt.2. Wählen Sie für Repository die Option Connect with a Bitbucket app password (Mit Bitbucket-App-

Passwort verbinden) aus.

3. Geben Sie in Bitbucket username (Bitbucket-Benutzername) Ihren Bitbucket-Benutzernamen an.4. Geben Sie in Bitbucket app password (Bitbucket-App-Passwort) Ihr Bitbucket-App-Passwort an.5. Wählen Sie Save Bitbucket credentials (Bitbucket-Anmeldeinformationen speichern) aus.

Verbinden mit Quellanbietern mittels Zugriffstoken (CLI)So nutzen Sie die AWS CLI, um Ihr Projekt über Zugriffstoken mit GitHub oder Bitbucket zuverbinden. Informationen zur Verwendung von AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

1. Führen Sie den Befehl import-source-credentials aus:

aws codebuild import-source-credentials --generate-cli-skeleton

API-Version 2016-10-0652

Page 60: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugriffstokenbeispiel

Daten im JSON-Format werden in der Ausgabe angezeigt. Kopieren Sie die Daten in eine Datei (z. B.import-source-credentials.json) auf dem lokalen Computer oder auf einer Instance, auf derAWS CLI installiert ist. Ändern Sie die kopierten Daten wie im Folgenden dargestellt und speichern Siedie Ergebnisse.

{ "serverType": "server-type", "authType": "auth-type", "shouldOverwrite": "should-overwrite", "token": "token", "username": "username"}

Ersetzen Sie Folgendes:

• server-type ist ein erforderlicher Wert. Der Quellanbieter für diese Anmeldeinformationen. GültigeWerte sind GITHUB, GITHUB_ENTERPRISE und BITBUCKET.

• auth-type ist ein erforderlicher Wert. Der Typ der Authentifizierung für die Verbindung zueinem GitHub-, GitHub Enterprise Server- oder Bitbucket-Repository. Gültige Werte sindPERSONAL_ACCESS_TOKEN und BASIC_AUTH. Die CodeBuild-API kann nicht zum Erstelleneiner OAUTH Verbindung verwendet werden. Sie müssen stattdessen die CodeBuild-Konsoleverwenden.

• should-overwrite: Optionaler Wert. Setzen Sie diesen auf false, um zu verhindern, dass dieRepository-Quellanmeldeinformationen überschrieben werden. Legen Sie den Wert auf true fest,um die Repository-Quellanmeldeinformationen zu überschreiben. Der Standardwert ist true.

• token ist ein erforderlicher Wert. Für GitHub oder GitHub Enterprise Server handelt es sich um dasprivate Zugriffstoken. Für Bitbucket handelt es sich um das App-Passwort.

• username ist ein optionaler Wert. Für den authType BASIC_AUTH der Bitbucket-Benutzername.Dieser Parameter wird für andere Arten von Quellanbietern oder Verbindungen ignoriert.

2. Um Ihr Konto mit einem Zugriffstoken zu verbinden, wechseln Sie in das Verzeichnis mit der Dateiimport-source-credentials.json, die Sie in Schritt 1 gespeichert haben, und führen den Befehlimport-source-credentials erneut aus.

aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json

Daten im JSON-Format werden in der Ausgabe mit einem Amazon-Ressourcennamen (ARN)angezeigt.

{ "arn": "arn:aws:codebuild:region:account-id:token/server-type"}

Note

Wenn Sie den Befehl import-source-credentials mit demselben Server- und Auth-Typ einzweites Mal ausführen, wird das gespeicherte Zugriffstoken aktualisiert.

Nachdem Ihr Konto mit einem Zugriffstoken verbunden ist, können Sie Ihr CodeBuild-Projekt mitcreate-project erstellen. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts(AWS CLI) (p. 217).

3. Rufen Sie zum Anzeigen der verbundenen Zugriffstoken den Befehl list-source-credentials auf.

aws codebuild list-source-credentials

API-Version 2016-10-0653

Page 61: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon ECR-Beispiel

Ein Objekt vom Typ sourceCredentialsInfos wird im JSON-Format in der Ausgabe angezeigt:

{ "sourceCredentialsInfos": [ { "authType": "auth-type", "serverType": "server-type", "arn": "arn" } ]}

sourceCredentialsObject enthält eine Liste der verbundenen Quell-Anmeldeinformationen:

• authType ist der Typ der Authentifizierung für die Anmeldeinformationen. Mögliche Werte sindOAUTH, BASIC_AUTH und PERSONAL_ACCESS_TOKEN.

• serverType ist der Typ des Quellanbieters. Mögliche Werte sind GITHUB, GITHUB_ENTERPRISEund BITBUCKET.

• arn ist der ARN des Tokens.4. Rufen Sie den Befehl delete-source-credentials mit dem zugehörigen ARN auf, um einen Quellanbieter

zu trennen und dessen Zugriffstoken zu entfernen.

aws codebuild delete-source-credentials --arn arn-of-your-credentials

Die Ausgabe im JSON-Format enthält einen ARN der gelöschten Anmeldeinformationen.

{ "arn": "arn:aws:codebuild:region:account-id:token/server-type"}

Amazon ECR-Beispiel für CodeBuildIn diesem Beispiel wird ein Docker-Image in einem Image Repository von Amazon Elastic ContainerRegistry (Amazon ECR) verwendet, um ein Beispiel-Go-Projekt zu erstellen.

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für AWS CodeBuild und für AWS-Ressourcen sowie Aktionen in Verbindungmit Amazon S3, AWS KMS, CloudWatch Logs und Amazon ECR. Weitere Informationen findenSie unter CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise, AmazonCloudWatch-Preise und Amazon Elastic Container Registry-Preise.

Ausführen des BeispielsSo führen Sie das Beispiel aus

1. Um ein Docker-Image in Ihr Image-Repository in Amazon ECR zu erstellen und per Push zuverschieben, schließen Sie die Schritte im Abschnitt zum „Ausführen des Beispiels“ des Docker-Beispiel (p. 114) ab.

2. Erstellen eines Go-Projekts:

API-Version 2016-10-0654

Page 62: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon ECR-Beispiel

a. Erstellen Sie Dateien wie in den Abschnitten Go-Projektstruktur (p. 57) und Go-Projektdateien (p. 57) dieses Themas beschrieben und laden Sie sie anschließend in einen S3-Empfangs-Bucket oder in ein AWS CodeCommit-, GitHub- oder Bitbucket-Repository.

Important

Laden Sie nicht (root directory name) hoch, sondern nur die Dateien in (rootdirectory name).Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen,die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie(root directory name) nicht zur ZIP-Datei hinzu, sondern nur die Dateien in (rootdirectory name).

b. Erstellen Sie ein Build-Projekt, führen Sie den Build aus und lassen Sie zugehörige Build-Informationen anzeigen. Befolgen Sie dazu die Anweisungen unter Direktes Ausführen von AWSCodeBuild (p. 407).

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "sample-go-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/GoSample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "GoOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

c. Zum Abrufen des Build-Ausgabeartefakts, öffnen Sie Ihren S3-Ausgabe-Bucket.d. Laden Sie die Datei GoOutputArtifact.zip auf Ihren lokalen Computer oder Ihre lokale

Instance herunter. Extrahieren Sie anschließend den Inhalt der Datei . Rufen Sie im extrahiertenInhalt die Datei hello auf.

3. Wenn eine der folgenden Bedingungen wahr ist, müssen Sie Ihrem Image-Repository in Amazon ECRBerechtigungen zuweisen, sodass AWS CodeBuild sein Docker-Image per Pull in die Build-Umgebungübertragen kann.

• Ihr Projekt verwendet CodeBuild-Anmeldeinformationen für die Pull-Übertragung von Amazon ECR-Images. Dies wird durch den Wert von CODEBUILD im Attribut imagePullCredentialsType IhrerProjectEnvironment angezeigt.

• Ihr Projekt verwendet ein kontoübergreifendes Amazon ECR-Image. In diesem Fall muss Ihr Projektseine Service-Rolle für die Pull-Übertragung von Amazon ECR-Images nutzen. Um dieses Verhaltenzu aktivieren, setzen Sie das Attribut imagePullCredentialsType Ihrer ProjectEnvironmentauf SERVICE_ROLE.

1. Öffnen Sie die Amazon ECR-Konsole unter https://console.aws.amazon.com/ecr/.

API-Version 2016-10-0655

Page 63: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon ECR-Beispiel

2. Klicken Sie in der Liste der Repository-Namen den Namen des Repositories aus, das Sie erstelltoder ausgewählt haben.

3. Wählen Sie im Navigationsbereich Permissions (Berechtigungen) und dann Edit (Bearbeiten) aus.Klicken Sie anschließend auf Add statement (Anweisung hinzufügen).

4. Geben Sie in Statement name einen Bezeichner (z. B. CodeBuildAccess) ein.5. Für Effect (Effekt) lassen Sie Allow (Zulassen) ausgewählt. Dies zeigt an, dass Sie den Zugriff auf

ein anderes AWS-Konto zulassen möchten.6. Wählen Sie für Principal (Prinzipal) eine der folgenden Vorgehensweisen:

• Wenn Ihr Projekt CodeBuild-Anmeldeinformationen zum Abrufen eines Amazon ECR-Imageverwendet, geben Sie in Service principal (Service-Prinzipal) codebuild.amazonaws.com ein.

• Wenn Ihr Projekt ein kontoübergreifendes Amazon ECR-Image verwendet, geben Sie in AWSaccount IDs (AWS-Konto-IDs) die IDs der AWS-Konten ein, denen Sie Zugriff gewähren möchten.

7. Überspringen Sie die Liste All IAM entities.8. Wählen Sie in Action (Aktion) die Pull-Only-Aktionen ecr:GetDownloadUrlForLayer,

ecr:BatchGetImage und ecr:BatchCheckLayerAvailability aus.9. Wählen Sie Save aus.

Diese Richtlinie wird in Permissions (Berechtigungen) angezeigt. Der Prinzipal entspricht dem, wasSie in Schritt 3 dieses Verfahrens für Principal (Prinzipal) eingegeben haben:• Wenn für Ihr Projekt CodeBuild-Anmeldeinformationen zum Abrufen eines Amazon

ECR-Image verwendet werden, wird unter Service principals (Service-Prinzipale)"codebuild.amazonaws.com" angezeigt.

• Wenn für Ihr Projekt ein kontoübergreifendes Amazon ECR-Image verwendet wird, wird dieID des AWS-Kontos, dem Sie Zugriff gewähren möchten, unter AWS Account IDs (Konto-IDs)angezeigt.

In der folgenden Beispielrichtlinie werden sowohl CodeBuild-Anmeldeinformationen als auch einkontenübergreifendes Amazon ECR-Image verwendet.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"CodeBuildAccessPrincipal", "Effect":"Allow", "Principal":{ "Service":"codebuild.amazonaws.com" }, "Action":[ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] }, { "Sid":"CodeBuildAccessCrossAccount", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::<AWS-account-ID>:root" }, "Action":[ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ]

API-Version 2016-10-0656

Page 64: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon ECR-Beispiel

}

4. Erstellen Sie ein Build-Projekt, führen Sie den Build aus und lassen Sie die Build-Informationenanzeigen. Befolgen Sie dazu die Anweisungen unter Direktes Ausführen von CodeBuild (p. 407).

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "amazon-ecr-sample-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/GoSample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "GoOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "account-ID.dkr.ecr.region-ID.amazonaws.com/your-Amazon-ECR-repo-name:latest", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

5. Zum Abrufen des Build-Ausgabeartefakts, öffnen Sie Ihren S3-Ausgabe-Bucket.6. Laden Sie die Datei GoOutputArtifact.zip auf Ihren lokalen Computer oder Ihre lokale Instance

herunter. Extrahieren Sie anschließend den Inhalt der Datei GoOutputArtifact.zip. Rufen Sie imextrahierten Inhalt die Datei hello auf.

Go-ProjektstrukturIn diesem Beispiel wird von dieser Verzeichnisstruktur ausgegangen.

(root directory name) |-- buildspec.yml `-- hello.go

Go-ProjektdateienIn diesem Beispiel werden diese Dateien verwendet.

buildspec.yml (in (root directory name))

version: 0.2

phases: install: runtime-versions: golang: 1.13 build: commands: - echo Build started on `date`

API-Version 2016-10-0657

Page 65: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon EFS-Beispiel

- echo Compiling the Go code - go build hello.go post_build: commands: - echo Build completed on `date`artifacts: files: - hello

hello.go (in (root directory name))

package mainimport "fmt"

func main() { fmt.Println("hello world") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true)}

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

Amazon Elastic File System-Beispiel für AWSCodeBuildMöglicherweise möchten Sie Ihre AWS CodeBuild-Builds auf Amazon Elastic File System erstellen, einemskalierbaren, gemeinsam verwendeten Dateiservice für Amazon EC2-Instances. Die Speicherkapazität istmit Amazon EFS elastisch, sodass sie beim Hinzufügen und Entfernen von Dateien ansteigt bzw. abnimmt.Über eine einfache Web-Service-Schnittstelle können Sie Dateisysteme erstellen und konfigurieren. Diegesamte Dateispeicher-Infrastruktur wird für Sie verwaltet. Sie müssen sich damit nicht um Bereitstellung,Patching oder Wartung von Dateisystem-Konfigurationen kümmern. Weitere Informationen finden Sie unterWas ist Amazon Elastic File System? im Benutzerhandbuch für das Amazon Elastic File System.

In diesem Beispiel wird gezeigt, wie Sie ein CodeBuild-Projekt so konfigurieren, dass es ein AmazonEFS-Dateisystem mountet und anschließend eine Java-Anwendung darauf erstellt. Bevor Sie beginnen,benötigen Sie eine Java-Anwendung, die erstellt werden kann und in einen S3-Empfangs-Bucket oder einAWS CodeCommit-, GitHub-, GitHub-Enterprise Server- oder Bitbucket-Repository hochgeladen wurde.

Daten, die für Ihr Dateisystem übertragen werden, werden verschlüsselt. Informationen zum Verschlüsselnvon Daten während der Übertragung mit einem anderen Bild finden Sie unter Daten im Transitverschlüsseln.

Allgemeine SchritteDieses Beispiel deckt die drei allgemeinen Schritte zur Verwendung von Amazon EFS mit AWS CodeBuildab:

API-Version 2016-10-0658

Page 66: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon EFS-Beispiel

1. Erstellen Sie eine Virtual Private Cloud (VPC) in Ihrem AWS-Konto.2. Erstellen Sie ein Dateisystem, das diese VPC verwendet.3. Erstellen und bauen Sie ein CodeBuild-Projekt mit anschließendem Build, das/der die VPC nutzt Das

CodeBuild-Projekt verwendet Folgendes, um das Dateisystem zu identifizieren:

• Eine eindeutige Dateisystemkennung. Sie wählen die Kennung, wenn Sie das Dateisystem in IhremBuild-Projekt angeben.

• Die Dateisystem-ID. Die ID wird angezeigt, wenn Sie Ihr Dateisystem in der Amazon EFS-Konsoleanzeigen.

• Ein Mountingpunkt. Dies ist ein Verzeichnis in Ihrem Docker-Container, das das Dateisystemmountet.

• Mountingoptionen. Dazu gehören Details zum Mounten des Dateisystems.

Note

Ein in Amazon EFS erstelltes Dateisystem wird nur auf Linux-Plattformen unterstützt.

Erstellen einer VPC mit AWS CloudFormationErstellen Sie Ihre VPC mit einer AWS CloudFormation-Vorlage.

1. Folgen Sie den Anweisungen unter AWS CloudFormation VPC-Vorlage (p. 192), um mit AWSCloudFormation eine VPC zu erstellen.

Note

Die mit dieser AWS CloudFormation-Vorlage erstellte VPC weist zwei private Subnetzeund zwei öffentliche Subnetze auf. Sie dürfen nur private Subnetze verwenden, wenn SieAWS CodeBuild zum Mounten des in Amazon EFS erstellten Dateisystems verwenden. BeiVerwendung eines der öffentlichen Subnetze schlägt der Build fehl.

2. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon VPC-Konsole unterhttps://console.aws.amazon.com/vpc.

3. Wählen Sie die VPC, die Sie mit AWS CloudFormation erstellt haben.4. Notieren Sie sich den Namen der VPC und ihre ID, die auf der Registerkarte Description

(Beschreibung) angezeigt werden. Beide Werte werden später beim Erstellen des AWS CodeBuild-Projekts in diesem Beispiel benötigt.

Erstellen eines Amazon Elastic File System-Dateisystems mitIhrer VPCErstellen Sie für dieses Beispiel mithilfe der zuvor erstellten VPC ein einfaches Amazon EFS-Dateisystem.

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EFS-Konsole unterhttps://console.aws.amazon.com/fs/.

2. Wählen Sie Create file system (Dateisystem erstellen) aus.3. Wählen Sie unter VPC den zuvor in diesem Beispiel notierten VPC-Namen aus.4. Lassen Sie die Availability Zones für Ihre Subnetze ausgewählt.5. Wählen Sie Next Step (Nächster Schritt) aus.6. Geben Sie unter Add Tags (Tags hinzufügen) für den Standardschlüssel Name im Feld Value (Wert)

den Namen Ihres Amazon EFS-Dateisystems an.7. Lassen Sie Bursting und General Purpose (Universal) als Standardleistungs- und -durchsatzmodus

ausgewählt. Wählen Sie dann Next Step (Nächster Schritt) aus.

API-Version 2016-10-0659

Page 67: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon EFS-Beispiel

8. Wählen Sie unter Configure client access (Client-Zugriff konfigurieren) die Option Next Step (NächsterSchritt).

9. Klicken Sie auf Create File System (Dateisystem erstellen).

Erstellen eines CodeBuild-Projekts für das Amazon EFSErstellen Sie ein AWS CodeBuild-Projekt, das die zuvor in diesem Beispiel erstellte VPC verwendet.Wenn der Build ausgeführt wird, mountet es das zuvor erstellte Amazon EFS-Dateisystem. Als Nächstesspeichert es die von Ihrer Java-Anwendung erstellte .jar-Datei im Mountingpunkt-Verzeichnis IhresDateisystems.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Build projects (Build-Projekte) gefolgt von Create build project

(Build-Projekt erstellen) aus.3. Geben Sie im Feld Project name (Projektname) einen Namen für Ihr Projekt an.4. Wählen Sie unter Source provider (Quellanbieter) das Repository aus, in dem sich die zu erstellende

Java-Anwendung befindet.5. Machen Sie die Angaben (z. B. eine Repository-URL), die CodeBuild zum Suchen Ihrer Anwendung

verwendet. Die Optionen unterscheiden sich je nach Quellanbieter. Weitere Informationen finden Sieim Choose source provider.

6. Wählen Sie unter Environment image (Umgebungs-Image) die Option Managed image (VerwaltetesImage) aus.

7. Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.8. Wählen Sie unter Runtime(s) (Laufzeit(en)) die Option Standard aus.9. Wählen Sie unter Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:3.0 aus.10. Wählen Sie für Environment type (Umgebungstyp) die Option Linux aus.11. Wählen Sie Privileged (Privilegiert) aus.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

12. Wählen Sie unter Service role (Servicerolle) die Option New service role (Neue Servicerolle) aus.Geben Sie unter Role name (Rollenname) einen Namen für die Rolle an, die CodeBuild für Sieerzeugt.

13. Erweitern Sie Additional configuration (Zusätzliche Konfiguration).14. Wählen Sie unter VPC die VPC-ID aus.15. Wählen Sie unter Subnets (Subnetze) mindestens eines der privaten Subnetze aus, die Ihrer VPC

zugeordnet sind. Für Builds, die ein Amazon EFS-Dateisystem nutzen, dürfen nur private Subnetzeverwendet werden. Bei Verwendung eines öffentlichen Subnetzes schlägt der Build fehl.

16. Wählen Sie unter Security groups (Sicherheitsgruppen) die Standardsicherheitsgruppe aus.17. Geben Sie unter File systems (Dateisysteme) die folgenden Informationen ein:

• Geben Sie unter Identifier (Bezeichner), einen eindeutigen Dateisystembezeichner ein. Diesermuss weniger als 129 Zeichen und nur alphanumerische Zeichen und Unterstriche enthalten.CodeBuild verwendet diesen Bezeichner, um eine Umgebungsvariable zu erstellen, die daselastische Dateisystem identifiziert. Das Format der Umgebungsvariablen ist CODEBUILD_file-system-identifier in Großbuchstaben. Wenn Sie beispielsweise efs-1 eingeben, lautet dieUmgebungsvariable CODEBUILD_EFS-1.

• Wählen Sie für ID die Dateisystem-ID aus.

API-Version 2016-10-0660

Page 68: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAmazon EFS-Beispiel

• (Optional) Geben Sie ein Verzeichnis im Dateisystem ein. CodeBuild mountet dieses Verzeichnis.Wenn Sie Directory path (Verzeichnispfad) leer lassen, mountet CodeBuild das gesamteDateisystem. Der Dateipfad ist relativ zum Stamm des Dateisystems.

• Geben Sie unter Mount point (Mountingpunkt) den Namen eines Verzeichnisses in Ihrem Build-Container ein, das das Dateisystem mountet. Wenn dieses Verzeichnis nicht vorhanden ist, erstelltCodeBuild es während des Builds.

• (Optional) Geben Sie Mountingoptionen ein. Wenn Sie Mount options(Mountingoptionen) leer lassen, verwendet CodeBuild die Standard-Mountingoptionen(nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2). WeitereInformationen finden Sie unter Empfohlene NFS-Mountingoptionen im Amazon Elastic File System-Benutzerhandbuch.

18. Wählen Sie unter Build specification (Build-Spezifikation) die Option Insert build commands (Build-Befehle einfügen) und anschließend Switch to editor (Zum Editor wechseln) aus.

19. Geben Sie die folgenden buildspec-Befehle im Editor ein. Ersetzen Sie file-system-identifierdurch den Bezeichner, den Sie in Schritt 17 eingegeben haben. Verwenden Sie Großbuchstaben (z. B.CODEBUILD_EFS-1).

version: 0.2phases: install: runtime-versions: java: corretto11 build: commands: - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_file-system-identifier

20. Verwenden Sie für alle anderen Einstellungen die Standardwerte und wählen Sie Create build project(Build-Projekt erstellen) aus. Wenn Ihr Build abgeschlossen ist, wird die Konsolenseite für Ihr Projektangezeigt.

21. Wählen Sie Start build.

Beispiel für CodeBuild und Amazon EFS – ZusammenfassungNachdem Ihr AWS CodeBuild-Projekt erstellt wurde, gilt:

• Sie haben eine .jar-Datei, die von Ihrer Java-Anwendung erstellt wurde, die in Ihrem Amazon EFS-Dateisystem unter Ihrem Mountingpunkt-Verzeichnis erstellt wird.

• Eine Umgebungsvariable, die Ihr Dateisystem identifiziert, wird mithilfe der beim Erstellen des Projektseingegebenen Dateisystembezeichner erstellt.

Weitere Informationen finden Sie unter Mounten von Dateisystemen im Amazon Elastic File System-Benutzerhandbuch.

TroubleshootingBei der Einrichtung von EFS sind Fehler aufgetreten, bei denen Sie die CodeBuild.

Themen• CLIENT_FEHLER: Montage '127.0.0.1:/' fehlgeschlagen. Genehmigung verweigert (p. 62)• CLIENT_FEHLER: Montage '127.0.0.1:/' fehlgeschlagen. Verbindung durch Peer

zurückgesetzt (p. 62)• VPC_CLIENT_FEHLER: Unerwarteter EC2-Fehler: nicht autorisierender Vorgang (p. 62)

API-Version 2016-10-0661

Page 69: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodeDeploy-Beispiel

CLIENT_FEHLER: Montage '127.0.0.1:/' fehlgeschlagen. Genehmigungverweigert

Wenn Sie eine benutzerdefinierte Richtlinie für die EFS-Dateisystemsysteme verwenden, müssen Siezunächst eine Vertrauensbeziehung zwischen EFS und CodeBuild indem Sie eine der folgenden Schritteausführen:

• Hinzufügen codebuild.amazonaws.com als vertrauenswürdiger Dienst im Hauptsystem der EFS-Dateisystemrichtlinie,

• Hinzufügen elasticfilesystem:ClientMount Aktion zum CodeBuild Projektservicerolle.

CLIENT_FEHLER: Montage '127.0.0.1:/' fehlgeschlagen. Verbindung durch Peerzurückgesetzt

Es gibt zwei mögliche Ursachen für diesen Fehler:

• Die CodeBuild Das VPC-Subnetz befindet sich in einer anderen Verfügbarkeitszone als das EFS-Mount-Ziel. Sie können dies beheben, indem Sie ein VPC-Netz in derselben Verfügbarkeitszone wie das EFS-Mount-Ziel hinzufügen.

• Die Sicherheitsgruppe verfügt über keine Berechtigungen zur Kommunikation mit EFS. Sie können diesbeheben, indem Sie eine Eingangsregel hinzufügen, um den gesamten Datenverkehr entweder aus demVPC (den primären CIDR-Block für Ihre VPC) oder die Sicherheitsgruppe selbst zu ermöglichen.

VPC_CLIENT_FEHLER: Unerwarteter EC2-Fehler: nicht autorisierender Vorgang

Dieser Fehler tritt auf, wenn alle Subnetze in Ihrer VPC-Konfiguration für die CodeBuild Projektsind öffentliche Subnetze. Sie müssen mindestens ein privates Subnetz im VPC haben, um dieNetzwerkverbindung zu gewährleisten.

CodeDeploy-Beispiel für CodeBuildDieses Beispiel weist AWS CodeBuild an, Maven zur Erzeugung einer einzelnen JAR-Datei mit demNamen my-app-1.0-SNAPSHOT.jar als Build-Ausgabe zu verwenden. Anschließend wird die JAR-Datei mithilfe von CodeDeploy auf einer Amazon Linux-Instance bereitgestellt. Sie können auch AWSCodePipeline verwenden, um die Verwendung von CodeDeploy zur Bereitstellung der JAR-Datei auf einerAmazon Linux-Instance zu automatisieren.) Dieses Beispiel basiert auf dem Thema Maven in 5 Minutes aufder Apache Maven-Website.

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für CodeBuild und für AWS-Ressourcen sowie Aktionen in Verbindung mitAmazon S3, AWS KMS, CloudWatch Logs und Amazon EC2. Weitere Informationen finden Sieunter CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise, AmazonCloudWatch-Preise und Amazon EC2-Preise.

Ausführen des BeispielsSo führen Sie das Beispiel aus

1. Laden Sie Maven herunter und installieren Sie es. Weitere Informationen finden Sie unter DownloadingApache Maven und Installing Apache Maven auf der Apache Maven-Website.

2. Wechseln Sie in ein leeres Verzeichnis auf Ihrem lokalen Computer oder der Instance und führenanschließend diesen Maven-Befehl aus.

API-Version 2016-10-0662

Page 70: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodeDeploy-Beispiel

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Nach erfolgreicher Ausführung werden diese Verzeichnisstruktur und die Dateien erstellt.

(root directory name) `-- my-app |-- pom.xml `-- src |-- main | `-- java | `-- com | `-- mycompany | `-- app | `-- App.java `-- test `-- java `-- com `-- mycompany `-- app `-- AppTest.java

3. Erstellen Sie eine Datei mit diesem Inhalt. Benennen Sie die Datei buildspec.yml und fügen Sie siedann dem Verzeichnis (root directory name)/my-app hinzu.

version: 0.2

phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn test post_build: commands: - echo Build completed on `date` - mvn packageartifacts: files: - target/my-app-1.0-SNAPSHOT.jar - appspec.yml discard-paths: yes

4. Erstellen Sie eine Datei mit diesem Inhalt. Benennen Sie die Datei appspec.yml und fügen Sie siedann dem Verzeichnis (root directory name)/my-app hinzu.

version: 0.0os: linuxfiles: - source: ./my-app-1.0-SNAPSHOT.jar destination: /tmp

Nach der Erstellung sollte Ihre Dateistruktur und die Datei wie folgt aussehen:

(root directory name) `-- my-app |-- buildspec.yml |-- appspec.yml

API-Version 2016-10-0663

Page 71: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodeDeploy-Beispiel

|-- pom.xml `-- src |-- main | `-- java | `-- com | `-- mycompany | `-- app | `-- App.java `-- test `-- java `-- com `-- mycompany `-- app ` -- AppTest.java

5. Erstellen Sie eine ZIP-Datei, welche die Verzeichnisstruktur und die Dateien aus (root directoryname)/my-app enthält, und laden Sie dann die ZIP-Datei in einen Quellcode-Repository-Typ hoch,der von AWS CodeBuild und CodeDeploy unterstützt wird, beispielsweise einen S3-Empfangs-Bucketoder ein GitHub- oder Bitbucket-Repository.

Important

Wenn Sie CodePipeline verwenden möchten, um das resultierende Build-Ausgabeartefakt zuimplementieren, können Sie den Quellcode nicht in ein Bitbucket-Repository hochladen.Fügen Sie nicht (root directory name) oder (root directory name)/my-app zurZIP-Datei hinzu, sondern nur die Verzeichnisse und Dateien in (root directory name)/my-app. Die ZIP-Datei sollte folgende Verzeichnisse und Dateien enthalten:

CodeDeploySample.zip |--buildspec.yml |-- appspec.yml |-- pom.xml `-- src |-- main | `-- java | `-- com | `-- mycompany | `-- app | `-- App.java `-- test `-- java `-- com `-- mycompany `-- app ` -- AppTest.java

6. Erstellen Sie ein Build-Projekt, indem Sie die Schritte unter Erstellen eines Build-Projekts () (p. 206)ausführen.

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "sample-codedeploy-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/CodeDeploySample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP",

API-Version 2016-10-0664

Page 72: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodeDeploy-Beispiel

"name": "CodeDeployOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

7. Wenn Sie die Bereitstellung des Build-Ausgabeartefakts mit CodeDeploy planen, befolgen Sie dieSchritte in Ausführen eines Build () (p. 279). Andernfalls überspringen Sie diesen Schritt. (Der Grunddafür ist, wenn Sie die Bereitstellung des Build-Ausgabeartefakts mit CodePipeline planen, verwendetCodePipeline CodeBuild zum automatischen Ausführen des Builds.)

8. Führen Sie die Einrichtungsschritte zur Verwendung von CodeDeploy durch, einschließlich:

• Gewähren Sie dem IAM-Benutzer Zugriff auf CodeDeploy und die AWS-Services und -Aktionen, vondenen CodeDeploy abhängig ist. Weitere Informationen finden Sie unter Bereitstellung eines IAM-Benutzers im AWS CodeDeploy-Benutzerhandbuch.

• Erstellen oder definieren Sie eine Servicerolle, die CodeDeploy ermöglicht, die Instances zuidentifizieren, in der die Build-Ausgabeartefakte bereitgestellt werden. Weitere Informationen findenSie unter Erstellen einer Servicerolle für CodeDeploy im AWS CodeDeploy-Benutzerhandbuch.

• Erstellen oder definieren Sie ein IAM-Instance-Profil, um den Instances den Zugriff auf den S3-Empfangs-Bucket oder das GitHub-Repository zu ermöglichen, in dem das Build-Ausgabeartefaktenthalten ist. Weitere Informationen finden Sie unter Erstellen eines IAM-Instance-Profils für IhreAmazon EC2-Instances im AWS CodeDeploy-Benutzerhandbuch.

9. Erstellen oder definieren Sie eine Amazon Linux-Instance, die mit CodeDeploy kompatibel ist, wodas Build-Ausgabeartefakt bereitgestellt wird. Weitere Informationen finden Sie unter Arbeiten mitInstances für CodeDeploy im AWS CodeDeploy-Benutzerhandbuch.

10. Erstellen oder definieren Sie eine CodeDeploy-Anwendung und -Bereitstellungsgruppe. WeitereInformationen finden Sie unter Erstellen einer Anwendung mit CodeDeploy im AWS CodeDeploy-Benutzerhandbuch.

11. Stellen Sie das Build-Ausgabeartefakt in der Instance bereit.

Informationen zur Bereitstellung mit CodeDeploy finden Sie unter Bereitstellen einer Revision mitCodeDeploy im AWS CodeDeploy-Benutzerhandbuch.

Informationen zur Bereitstellung mit CodePipeline finden Sie unter Verwenden von CodePipeline mitCodeBuild (p. 407).

12. Um das Build-Ausgabeartefakt nach erfolgter Bereitstellung zu finden, melden Sie sich bei der Instancean und suchen im Verzeichnis /tmp nach der Datei namens my-app-1.0-SNAPSHOT.jar.

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

API-Version 2016-10-0665

Page 73: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodePipeline Integration mit Batch erstellt Probe

AWS CodePipeline Integration mit CodeBuild undBatch-BuildsAWS CodeBuild unterstützt jetzt Batch-Builds. Diese Probe zeigt, wie man AWS CodePipeline um einBuild-Projekt zu erstellen, das Batch Builds verwendet.

Sie können eine JSON-formatierte Datei verwenden, die die Struktur der Pipeline definiert, und diese dannin der AWS CLI nutzen, um die Pipeline zu erstellen. Weitere Informationen finden Sie unter Referenz derAWS CodePipeline-Pipeline-Struktur im AWS CodePipeline-Benutzerhandbuch.

Batch-Aufbau mit individuellen ArtefaktenVerwenden Sie die folgende JSON-Datei als ein Beispiel für eine Pipeline-Struktur, die eine Batch-Erstellung mit separaten Artefakten erstellt. So aktivieren Sie Batch-Builds CodePipeline, stellen Sie dieBatchEnabled Parameter des configuration Objekt zu true.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1

API-Version 2016-10-0666

Page 74: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodePipeline Integration mit Batch erstellt Probe

} ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [ { "name": "build1" }, { "name": "build1_artifact1" }, { "name": "build1_artifact2" }, { "name": "build2_artifact1" }, { "name": "build2_artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 }}

Folgendes ist ein Beispiel für eine CodeBuild Buildspec-Datei, die mit dieser Pipeline-Konfiguration arbeitet.

version: 0.2batch: build-list: - identifier: build1 env:

API-Version 2016-10-0667

Page 75: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodePipeline Integration mit Batch erstellt Probe

compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM

phases: build: commands: - echo 'file' > output_file

artifacts: files: - output_file secondary-artifacts: artifact1: files: - output_file artifact2: files: - output_file

Die Namen der Ausgabeartefakte, die in der JSON-Datei der Pipeline angegeben sind, müssen mit derKennung der Builds und Artefakte übereinstimmen, die in Ihrer Buildspec-Datei definiert sind. Die Syntaxlautet . buildIdentifier für die primären Artefakte und buildIdentifier_artifactIdentifierfür die sekundären Artefakte.

Zum Beispiel für Ausgabeartefaktname build1, CodeBuild das primäre Artefakt von build1 an den Ortvon build1. Für Ausgabename build1_artifact1, CodeBuild das sekundäre Artefakt hochladenartifact1 von build1 an den Ort von build1_artifact1, und so weiter. Wenn nur ein Ausgabeortangegeben ist, sollte der Name buildIdentifier nur.

Nachdem Sie die JSON-Datei erstellt haben, können Sie die Pipeline erstellen. Verwenden Sie die AWSCLI, um den Befehl create-pipeline auszuführen. Übergeben Sie die Datei an den Parameter --cli-input-json. Weitere Informationen finden Sie unter Erstellen einer Pipeline (CLI) im AWS CodePipeline-Benutzerhandbuch.

Batch-Aufbau mit kombinierten ArtefaktenVerwenden Sie die folgende JSON-Datei als ein Beispiel für eine Pipeline-Struktur, die eine Batch-Erstellung mit kombinierten Artefakten erstellt. So aktivieren Sie Batch-Builds CodePipeline, stellen Siedie BatchEnabled Parameter des configuration Objekt zu true. Um die Konstruktionsartefakte indieselbe Position zu kombinieren, stellen Sie die CombineArtifacts Parameter des configurationObjekt zu true.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ {

API-Version 2016-10-0668

Page 76: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CodePipeline Integration mit Batch erstellt Probe

"name": "source1" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [ { "name": "output1 " } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true", "CombineArtifacts": "true" }, "runOrder": 1 } ] } ],

API-Version 2016-10-0669

Page 77: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für AWS CodePipeline-Integration mit

mehreren Eingabequellen und Ausgabeartefakten

"artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 }}

Folgendes ist ein Beispiel für eine CodeBuild Buildspec-Datei, die mit dieser Pipeline-Konfiguration arbeitet.

version: 0.2batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM

phases: build: commands: - echo 'file' > output_file

artifacts: files: - output_file

Wenn kombinierte Artefakte für die Stapelerstellung aktiviert sind, gibt es nur eine Ausgabe. CodeBuildkombiniert die primären Artefakte aller der Builds in eine einzige ZIP-Datei.

Nachdem Sie die JSON-Datei erstellt haben, können Sie die Pipeline erstellen. Verwenden Sie die AWSCLI, um den Befehl create-pipeline auszuführen. Übergeben Sie die Datei an den Parameter --cli-input-json. Weitere Informationen finden Sie unter Erstellen einer Pipeline (CLI) im AWS CodePipeline-Benutzerhandbuch.

Beispiel für AWS CodePipeline-Integration mitCodeBuild sowie mehrere Eingabequellen undAusgabeartefakteEinem AWS CodeBuild-Projekt kann mehr als eine Eingabequelle übergeben werden. Es kann zudemmehr als ein Ausgabeartefakt erstellen. Dieses Beispiel demonstriert die Verwendung von AWSCodePipeline zum Erstellen eines Build-Projekts, das mehrere Eingabequellen verwendet, um mehrereAusgabeartefakte zu erstellen. Weitere Informationen finden Sie unter Beispiel für mehrere Eingabequellenund Ausgabeartefakte (p. 144).

Sie können eine JSON-formatierte Datei verwenden, die die Struktur der Pipeline definiert, und diesedann in der AWS CLI nutzen, um die Pipeline zu erstellen. Verwenden Sie die folgende JSON-Datei alsBeispiel für eine Pipeline-Struktur, die einen Build mit mehr als einer Eingabequelle und mehr als einemAusgabeartefakt erstellt. Unten in diesem Beispiel werden Sie sehen, wie diese Datei mehrere Eingabenund Ausgaben angibt. Weitere Informationen finden Sie unter Referenz der AWS CodePipeline-Pipeline-Struktur im AWS CodePipeline-Benutzerhandbuch.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",

API-Version 2016-10-0670

Page 78: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für AWS CodePipeline-Integration mit

mehreren Eingabequellen und Ausgabeartefakten

"stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [

API-Version 2016-10-0671

Page 79: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für AWS CodePipeline-Integration mit

mehreren Eingabequellen und Ausgabeartefakten

{ "name": "artifact1" }, { "name": "artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 }}

Für diese JSON-Datei gilt:

• Eine der Eingabequellen muss als PrimarySource fungieren. Diese Quelle ist das Verzeichnis, in demCodeBuild die buildspec-Datei sucht und ausführt. Das Schlüsselwort PrimarySource wird verwendet,um die primäre Quelle im Abschnitt configuration des CodeBuild-Bereichs in der JSON-Dateianzugeben.

• Jede Eingabequelle ist in einem eigenen Verzeichnis installiert. Dieses Verzeichnis ist inder integrierten Umgebungsvariable $CODEBUILD_SRC_DIR für die primäre Quelle und$CODEBUILD_SRC_DIR_yourInputArtifactName für alle anderen Quellen gespeichert. Für diePipeline in diesem Beispiel lauten die beiden Eingabequellverzeichnisse $CODEBUILD_SRC_DIR und$CODEBUILD_SRC_DIR_source2. Weitere Informationen finden Sie unter Umgebungsvariablen inBuild-Umgebungen (p. 182).

• Die in der JSON-Datei der Pipeline angegebenen Namen der Ausgabeartefakte müssen den Namender sekundären Artefakte entsprechen, die in der buildspec-Datei definiert sind. Diese Pipelineverwendet die folgende buildspec-Datei. Weitere Informationen finden Sie unter Syntax der Build-Spezifikation (p. 151).

•version: 0.2

phases: build: commands: - touch source1_file - cd $CODEBUILD_SRC_DIR_source2 - touch source2_file

artifacts: secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR files: - source1_file artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - source2_file

API-Version 2016-10-0672

Page 80: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Config-Beispiel

Nachdem Sie die JSON-Datei erstellt haben, können Sie die Pipeline erstellen. Verwenden Sie die AWSCLI, um den Befehl create-pipeline auszuführen. Übergeben Sie die Datei an den Parameter --cli-input-json. Weitere Informationen finden Sie unter Erstellen einer Pipeline (CLI) im AWS CodePipeline-Benutzerhandbuch.

Beispiel für die Verwendung von AWS Config mitCodeBuildAWS Config stellt eine Bestandsaufnahme Ihrer AWS-Ressourcen und einen Verlauf derKonfigurationsänderungen an diesen Ressourcen bereit. AWS Config unterstützt jetzt AWS CodeBuild alsAWS-Ressource, somit kann der Service Ihre CodeBuild-Projekte nachverfolgen. Weitere Informationenüber AWS Config finden Sie unter Was ist AWS Config? im AWS Config-Entwicklerhandbuch.

Sie können sich die folgenden Informationen über CodeBuild-Ressourcen auf der Seite Resource Inventory(Ressourcenbestand) in der AWS Config-Konsole anzeigen lassen:

• eine Timeline Ihrer CodeBuild-Konfigurationsänderungen.• Konfigurationsdetails für jedes CodeBuild-Projekt.• Beziehungen mit anderen AWS-Ressourcen.• Eine Liste der Änderungen an Ihren CodeBuild-Projekten.

Die Anleitungen in diesem Thema zeigen Ihnen, wie Sie AWS Config einrichten und CodeBuild-Projekteabrufen und anzeigen lassen können.

Themen• Voraussetzungen (p. 73)• Einrichten von AWS Config (p. 73)• Abrufen von AWS CodeBuild-Projekten (p. 73)• Anzeigen von AWS CodeBuild-Konfigurationsdetails in der AWS Config-Konsole (p. 74)

VoraussetzungenErstellen Sie Ihr AWS CodeBuild-Projekt. Detaillierte Anweisungen finden Sie unter Erstellen eines Build-Projekts () (p. 206).

Einrichten von AWS Config• Einrichtung von AWS Config (Konsole)• Einrichten von AWS Config (AWS CLI)

Note

Nachdem Sie die Einrichtung abgeschlossen haben, kann es bis zu 10 Minuten dauern, bis SieAWS CodeBuild-Projekte in der AWS Config-Konsole sehen können.

Abrufen von AWS CodeBuild-Projekten1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Config-Konsole unter

https://console.aws.amazon.com/config.2. Wählen Sie auf der Seite Resource inventory die Option Resourcesaus. Scrollen Sie nach unten und

aktivieren Sie das Kontrollkästchen CodeBuild project.

API-Version 2016-10-0673

Page 81: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

3. Wählen Sie Look up.4. Nachdem die Liste der CodeBuild-Projekte hinzugefügt wurde, wählen Sie den Link zum CodeBuild-

Projektnamen in der Spalte Config timeline (Konfigurationszeitleiste) aus.

Anzeigen von AWS CodeBuild-Konfigurationsdetails in der AWSConfig-KonsoleWenn Sie Ressourcen auf der Seite Resource inventory (Ressourcenbestand) abrufen, können Siedie AWS Config-Timeline wählen, um sich Details zu Ihrem CodeBuild-Projekt anzeigen zu lassen. DieDetailseite für eine Ressource bietet Informationen über die Konfiguration, die Beziehungen und die Anzahlder vorgenommenen Änderungen dieser Ressource.

Die Blöcke oben auf der Seite werden zusammengefasst als Timeline bezeichnet. Die Timeline zeigt dasDatum und die Uhrzeit der Aufzeichnung.

Weitere Informationen finden Sie unter Anzeigen von Konfigurationsdetails in der AWS Config-Konsole imAWS Config-Entwicklerhandbuch.

Beispiel für ein CodeBuild-Projekt in AWS Config:

AWS Elastic Beanstalk-Beispiel für CodeBuildDieses Beispiel weist AWS CodeBuild an, Maven zur Erzeugung einer einzelnen WAR-Datei mit demNamen my-web-app.war als Build-Ausgabe zu verwenden. Anschließend wird die WAR-Datei auf denInstances in einer AWS Elastic Beanstalk-Umgebung bereitgestellt.

API-Version 2016-10-0674

Page 82: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für CodeBuild und für AWS-Ressourcen sowie Aktionen in Verbindung mitAmazon S3, AWS KMS, CloudWatch Logs und Amazon EC2. Weitere Informationen finden Sieunter CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise, AmazonCloudWatch-Preise und Amazon EC2-Preise.

Erstellen des QuellcodesIn diesem Abschnitt verwenden Sie Maven zum Erstellen des Quellcodes. Später erstellen Sie mithilfe vonCodeBuild eine WAR-Datei basierend auf diesem Quellcode.

1. Laden Sie Maven herunter und installieren Sie es. Weitere Informationen finden Sie unter DownloadingApache Maven und Installing Apache Maven auf der Apache Maven-Website.

2. Wechseln Sie in ein leeres Verzeichnis auf Ihrem lokalen Computer oder der Instance und führenanschließend diesen Maven-Befehl aus.

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Nach erfolgreicher Ausführung werden diese Verzeichnisstruktur und die Dateien erstellt.

(root directory name) `-- my-web-app |-- pom.xml `-- src `-- main |-- resources `-- webapp |-- WEB-INF | `-- web.xml `-- index.jsp

3. Erstellen Sie ein Unterverzeichnis namens .ebextensions im Verzeichnis (root directoryname)/my-web-app. Erstellen Sie im Unterverzeichnis .ebextensions eine Datei namens fix-path.config mit diesem Inhalt.

container_commands: fix_path: command: "unzip my-web-app.war 2>&1 > /var/log/my_last_deploy.log"

Nachdem Sie Maven ausgeführt haben, fahren Sie mit einem der folgenden Szenarios fort:

• Szenario A: Manuelles Ausführen von CodeBuild und manuelle Bereitstellung in ElasticBeanstalk (p. 76)

• Szenario B: Ausführen von CodePipeline und Bereitstellung in CodeBuild mithilfe von ElasticBeanstalk (p. 78)

• Szenario C: Verwenden der Elastic Beanstalk-CLI zum Ausführen von AWS CodeBuild und zurBereitstellung in einer Elastic Beanstalk-Umgebung (p. 80)

API-Version 2016-10-0675

Page 83: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

Szenario A: Manuelles Ausführen von CodeBuild und manuelleBereitstellung in Elastic BeanstalkIn diesem Szenario erstellen Sie den Quellcode und laden diesen hoch. Anschließend verwendenSie die AWS CodeBuild- und AWS Elastic Beanstalk-Konsolen, um den Quellcode zu erstellen, eineElastic Beanstalk-Anwendung und -Umgebung zu generieren und die Build-Ausgabe in der Umgebungbereitzustellen.

Schritt A1: Hinzufügen von Dateien zum Quellcode

In diesem Schritt fügen Sie eine Elastic Beanstalk-Konfigurationsdatei und eine Build-Spezifikationsdateizum Code in Erstellen des Quellcodes (p. 75) hinzu. Sie laden dann den Quellcode in einen S3-Empfangs-Bucket oder in ein CodeCommit-, GitHub- oder Bitbucket-Repository hoch.

1. Erstellen Sie eine Datei mit dem Namen buildspec.yml und dem folgenden Inhalt. Speichern Siedie Datei im Verzeichnis (root directory name)/my-web-app.

version: 0.2

phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/my-web-app.war my-web-app.warartifacts: files: - my-web-app.war - .ebextensions/**/*

2. Ihre Dateistruktur sollte nun wie folgt aussehen:

(root directory name) `-- my-web-app |-- .ebextensions | `-- fix-path.config |-- src | `-- main | |-- resources | `-- webapp | |-- WEB-INF | | `-- web.xml | `-- index.jsp |-- buildpsec.yml `-- pom.xml

3. Laden Sie die Inhalte des Verzeichnisses my-web-app in einen S3-Empfangs-Bucket oder in einCodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Laden Sie nicht (root directory name) oder (root directory name)/my-web-apphoch, sondern nur die Verzeichnisse und Dateien in (root directory name)/my-web-app.Wenn Sie einen S3-Eingabebucket verwenden, muss er versioniert sein. Sie sollten eineZIP-Datei erstellen, die die Verzeichnisstruktur und die Dateien enthält, und diese dann inden Eingabe-Bucket hochladen. Fügen Sie nicht (root directory name) oder (rootdirectory name)/my-web-app zur ZIP-Datei hinzu, sondern nur die Verzeichnisse und

API-Version 2016-10-0676

Page 84: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

Dateien in (root directory name)/my-web-app. Weitere Informationen finden Sie unterKonfigurieren des Versionings für einen Bucket im Amazon S3 Entwicklerhandbuch.

Schritt A2: Erstellen des Build-Projekts und Build-Ausführung

In diesem Schritt verwenden Sie die AWS CodeBuild-Konsole zum Erstellen eines Build-Projekts und zumAusführen des Builds.

1. Erstellen oder wählen Sie einen S3-Ausgabe-Bucket zum Speichern der Build-Ausgabe aus. Wenn Sieden Quellcode in einem S3-Empfangs-Bucket speichern, muss sich der Ausgabe-Bucket in derselbenAWS-Region befinden wie der Empfangs-Bucket.

2. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

Verwenden Sie die AWS-Regionenauswahl, um eine AWS-Region auszuwählen, in der CodeBuildunterstützt wird. Dies muss dieselbe Region sein, in der Ihr S3-Ausgabe-Bucket gespeichert ist.

3. Erstellen Sie ein Build-Projekt, und führen Sie den Build aus. Weitere Informationen finden Sie unterErstellen Sie ein Build-Projekt (Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279).Übernehmen Sie für alle Einstellungen die Standardwerte, außer für folgende Einstellungen:

• Für Environment (Umgebung):• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (Verwaltetes

Abbild) aus.• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie unter Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:2.0

aus.• Für Artifacts (Artefakte):

• Wählen Sie für Type (Typ) Amazon SNS aus.• Geben Sie unter Bucket name (Bucket-Name) den Namen eines S3-Buckets ein.• Geben Sie unter Name einen Build-Ausgabedateinamen ein, den Sie sich leicht merken können.

Vergessen Sie nicht die .zip-Erweiterung.• Wählen Sie für Artifacts packaging die Option Zip.

Schritt A3: Erstellen der Anwendung und der Umgebung und Bereitstellung

In diesem Schritt erstellen Sie eine Anwendung und eine Umgebung mithilfe der AWS Elastic Beanstalk-Konsole. Während der Umgebungserstellung stellen Sie die Build-Ausgabe aus dem vorherigen Schritt inder Umgebung bereit.

1. Öffnen Sie die AWS Elastic Beanstalk-Konsole unter der Adresse https://console.aws.amazon.com/elasticbeanstalk.

Verwenden Sie die AWS-Regionenauswahl, um die AWS-Region auszuwählen, in der Ihr S3-Ausgabe-Bucket gespeichert wird.

2. Erstellen Sie eine Elastic Beanstalk-Anwendung. Weitere Informationen finden Sie unter Verwaltenund Konfigurieren von AWS Elastic Beanstalk-Anwendungen im AWS Elastic Beanstalk-Entwicklerhandbuch.

3. Erstellen Sie eine Elastic Beanstalk-Umgebung für diese Anwendung. Weitere Informationenfinden Sie unter Assistent zum Erstellen einer neuen Umgebung im AWS Elastic Beanstalk-Entwicklerhandbuch. Übernehmen Sie für alle Einstellungen die Standardwerte, außer für folgendeEinstellungen:

• Wählen Sie für Platform die Option Tomcat.API-Version 2016-10-06

77

Page 85: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

• Unter Application code wählen Sie Upload your code und dann Upload aus. Wählen Sie für Sourcecode origin (Quellcode-Ursprung) Public S3 URL (Öffentliche S3-URL) aus und geben Sie dann dievollständige URL für die Build-Ausgabe der ZIP-Datei im Ausgabe-Bucket an. Klicken Sie auf Upload(Hochladen).

4. Nachdem Elastic Beanstalk die Build-Ausgabe in der Umgebung bereitgestellt hat, sehen Siedie Ergebnisse in einem Webbrowser. Rufen Sie die Umgebungs-URL für die Instance auf (z. B.http://my-environment-name.random-string.region-ID.elasticbeanstalk.com). DerWebbrowser sollte nun den Text Hello World! anzeigen.

Szenario B: Ausführen von CodePipeline und Bereitstellung inCodeBuild mithilfe von Elastic BeanstalkIn diesem Szenario schließen Sie die Schritte zum Vorbereiten und Hochladen des Quellcodes ab. Sieerstellen ein Build-Projekt mit CodeBuild und eine Elastic Beanstalk-Anwendung und -Umgebung mit derAWS Elastic Beanstalk-Konsole. Anschließend verwenden Sie die AWS CodePipeline-Konsole, um einePipeline zu erstellen. Nach dem Erstellen der Pipeline baut CodePipeline den Quellcode und stellt dieBuild-Ausgabe in der Umgebung bereit.

Schritt B1: Hinzufügen einer Build-Spezifikationsdatei zum QuellcodeIn diesem Schritt erstellen Sie eine Build-Spezifikationsdatei und fügen sie zum in Erstellen desQuellcodes (p. 75) erstellten Code hinzu. Sie laden dann den Quellcode in einen S3-Empfangs-Bucketoder in ein CodeCommit-, GitHub- oder Bitbucket-Repository hoch.

1. Erstellen Sie eine Datei mit dem Namen buildspec.yml und dem folgenden Inhalt. Speichern Siedie Datei im Verzeichnis (root directory name)/my-web-app.

version: 0.2

phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/my-web-app.war my-web-app.warartifacts: files: - my-web-app.war - .ebextensions/**/* base-directory: 'target/my-web-app'

2. Ihre Dateistruktur sollte nun wie folgt aussehen:

(root directory name) `-- my-web-app |-- .ebextensions | `-- fix-path.config |-- src | `-- main | |-- resources | `-- webapp | |-- WEB-INF | | `-- web.xml | `-- index.jsp |-- buildpsec.yml `-- pom.xml

API-Version 2016-10-0678

Page 86: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

3. Laden Sie die Inhalte des Verzeichnisses my-web-app in einen S3-Empfangs-Bucket oder in einCodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Laden Sie nicht (root directory name) oder (root directory name)/my-web-apphoch, sondern nur die Verzeichnisse und Dateien in (root directory name)/my-web-app.Wenn Sie einen S3-Eingabebucket verwenden, muss er versioniert sein. Sie sollten eineZIP-Datei erstellen, die die Verzeichnisstruktur und die Dateien enthält, und diese dann inden Eingabe-Bucket hochladen. Fügen Sie nicht (root directory name) oder (rootdirectory name)/my-web-app zur ZIP-Datei hinzu, sondern nur die Verzeichnisse undDateien in (root directory name)/my-web-app. Weitere Informationen finden Sie unterKonfigurieren des Versionings für einen Bucket im Amazon S3 Entwicklerhandbuch.

Schritt B2: Erstellen eines Build-Projekts

In diesem Schritt erstellen Sie ein AWS CodeBuild-Build-Projekt für die Verwendung mit Ihrer Pipeline.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt

(Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279). Übernehmen Sie für alleEinstellungen die Standardwerte, außer für folgende Einstellungen:

• Für Environment (Umgebung):• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (Verwaltetes

Abbild) aus.• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie unter Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:2.0

aus.• Für Artifacts (Artefakte):

• Wählen Sie für Type (Typ) Amazon SNS aus.• Geben Sie unter Bucket name (Bucket-Name) den Namen eines S3-Buckets ein.• Geben Sie unter Name einen Build-Ausgabedateinamen ein, den Sie sich leicht merken können.

Vergessen Sie nicht die .zip-Erweiterung.• Wählen Sie für Artifacts packaging die Option Zip.

Schritt B3: Erstellen einer Elastic Beanstalk-Anwendung und -Umgebung

In diesem Schritt erstellen Sie eine Elastic Beanstalk-Anwendung und -Umgebung für die Verwendung mitCodePipeline.

1. Öffnen Sie die Elastic Beanstalk-Konsole unter https://console.aws.amazon.com/elasticbeanstalk/.2. Verwenden Sie die AWS Elastic Beanstalk-Konsole, um eine Anwendung zu erstellen. Weitere

Informationen finden Sie unter Verwalten und Konfigurieren von AWS Elastic Beanstalk-Anwendungenim Entwicklerhandbuch für AWS Elastic Beanstalk.

3. Verwenden Sie die AWS Elastic Beanstalk-Konsole, um eine Umgebung zu erstellen. WeitereInformationen finden Sie unter Assistent zum Erstellen einer neuen Umgebung im Entwicklerhandbuchfür AWS Elastic Beanstalk. Übernehmen Sie außer für Platform (Plattform) alle Einstellungen mit ihrenStandardwerten. Wählen Sie für Platform die Option Tomcat.

API-Version 2016-10-0679

Page 87: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

Schritt B4: Erstellen der Pipeline und BereitstellungIn diesem Schritt verwenden Sie die AWS CodePipeline-Konsole, um eine Pipeline zu erstellen. NachdemSie die Pipeline erstellt und ausgeführt haben, verwendet CodePipeline CodeBuild, um den Quellcode zuerstellen. CodePipeline stellt dann die Build-Ausgabe mittels Elastic Beanstalk in der Umgebung bereit.

1. Erstellen oder bestimmen Sie eine Servicerolle, mit der CodePipeline, CodeBuild und ElasticBeanstalk in Ihrem Namen auf Ressourcen zugreifen können. Weitere Informationen finden Sie unterPrerequisites (p. 408).

2. Öffnen Sie die CodePipeline-Konsole unter https://console.aws.amazon.com/codesuite/codepipeline/home.

Verwenden Sie die AWS-Regionenauswahl, um eine AWS-Region auszuwählen, in der CodeBuildunterstützt wird. Wenn Sie den Quellcode in einem S3-Empfangs-Bucket speichern, muss sich derAusgabe-Bucket in derselben AWS-Region befinden wie der Empfangs-Bucket.

3. Erstellen Sie eine Pipeline. Weitere Informationen finden Sie unter Erstellen einer Pipeline, dieCodeBuild (CodePipeline-Konsole) verwendet (p. 409). Übernehmen Sie für alle Einstellungen dieStandardwerte, außer für folgende Einstellungen:

• Wählen Sie unter Add build stage (Build-Stufe hinzufügen) für Build provider (Build-Anbieter) dieOption AWS CodeBuild aus. Wählen Sie für Project name (Projektname) das Build-Projekt aus, dasSie gerade erstellt haben.

• Wählen Sie unter Add deploy stage (Bereitstellungsstufe hinzufügen) für Deploy provider(Bereitstellungsanbieter) die Option AWS Elastic Beanstalk aus.• Für Application name (Anwendungsname) wählen Sie die Elastic Beanstalk-Anwendung aus, die

Sie gerade erstellt haben.• Wählen Sie für Environment name (Umgebungsname) die Umgebung aus, die Sie gerade erstellt

haben.4. Nachdem die Pipeline erfolgreich ausgeführt wurde, sehen Sie die Ergebnisse in einem Webbrowser.

Rufen Sie die Umgebungs-URL für die Instance auf (z. B. http://my-environment-name.random-string.region-ID.elasticbeanstalk.com). Der Webbrowser sollte nun denText Hello World! anzeigen.

Sobald Sie nun Änderungen am Quellcode vornehmen und diese Änderungen in den ursprünglichenS3-Empfangs-Bucket oder das CodeCommit-, GitHub- oder Bitbucket-Repository hochladen, erkenntCodePipeline die Änderung und führt die Pipeline erneut aus. Das führt dazu, dass CodeBuild den Codeneu erstellt und Elastic Beanstalk anschließend die neue Build-Ausgabe in der Umgebung bereitstellt.

Szenario C: Verwenden der Elastic Beanstalk-CLI zum Ausführenvon AWS CodeBuild und zur Bereitstellung in einer ElasticBeanstalk-UmgebungIn diesem Szenario schließen Sie die Schritte zum Vorbereiten und Hochladen des Quellcodes ab.Anschließend führen Sie die Elastic Beanstalk CLI aus, um eine Elastic Beanstalk-Anwendung und -Umgebung zu erstellen, verwenden CodeBuild zum Erstellen des Quellcodes und stellen die Build-Ausgabein der Umgebung bereit. Weitere Informationen finden Sie unter Verwenden der EB CLI mit CodeBuild imEntwicklerhandbuch für AWS Elastic Beanstalk.

Schritt C1: Hinzufügen von Dateien zum QuellcodeIn diesem Schritt fügen Sie eine Elastic Beanstalk-Konfigurationsdatei und eine Build-Spezifikationsdateizum in Erstellen des Quellcodes (p. 75) erstellten Code hinzu. Außerdem erstellen oder identifizierenSie eine Servicerolle für die Build-Spezifikationsdatei.

API-Version 2016-10-0680

Page 88: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

1. Erstellen oder identifizieren Sie eine Servicerolle, die Elastic Beanstalk und die CLI in IhremNamen verwenden können. Weitere Informationen finden Sie unter Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

2. Erstellen Sie eine Datei mit dem Namen buildspec.yml und dem folgenden Inhalt. Speichern Siedie Datei im Verzeichnis (root directory name)/my-web-app.

version: 0.2

phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/my-web-app.war my-web-app.warartifacts: files: - my-web-app.war - .ebextensions/**/*eb_codebuild_settings: CodeBuildServiceRole: my-service-role-name ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:4.0 Timeout: 60

Ersetzen Sie im oben angegebenen Code my-service-role-name durch den Namen derServicerolle, die Sie zuvor erstellt oder definiert haben.

3. Ihre Dateistruktur sollte nun wie folgt aussehen:

(root directory name) `-- my-web-app |-- .ebextensions | `-- fix-path.config |-- src | `-- main | |-- resources | `-- webapp | |-- WEB-INF | | `-- web.xml | `-- index.jsp |-- buildpsec.yml `-- pom.xml

Schritt C2: Installieren und Ausführen der EB CLI

1. Wenn Sie es noch nicht getan haben, installieren und konfigurieren Sie die EB CLI auf demselbenComputer oder der Instance, auf dem bzw. der Sie den Quellcode erstellt haben. WeitereInformationen finden Sie unter Installieren der Elastic Beanstalk-Befehlszeilenschnittstelle (EB CLI)und Konfigurieren der EB CLI im Entwicklerhandbuch für AWS Elastic Beanstalk.

2. Führen Sie von der Befehlszeile oder vom Terminal aus den cd-Befehl oder einen ähnlichen Befehlaus, um zu Ihrem (root directory name)/my-web-app-Verzeichnis zu wechseln. Führen Sieden Befehl eb init zur Konfiguration der EB CLI aus.

eb init

Wenn Sie dazu aufgefordert werden:

API-Version 2016-10-0681

Page 89: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS Elastic Beanstalk-Beispiel

• Wählen Sie eine AWS-Region aus, in der AWS CodeBuild unterstützt wird und in der Sie die ElasticBeanstalk-Anwendung und -Umgebung erstellen möchten.

• Erstellen Sie eine Elastic Beanstalk-Anwendung und geben Sie einen Namen für die Anwendungein.

• Wählen Sie die Tomcat-Plattform aus.• Wählen Sie die Tomcat 8 Java 8-Version aus.• Geben Sie an, ob Sie SSH zum Einrichten des Zugriffs auf die Umgebungs-Instances verwenden

möchten.3. Führen Sie im selben Verzeichnis den Befehl eb create zum Erstellen einer Elastic Beanstalk-

Umgebung aus.

eb create

Wenn Sie dazu aufgefordert werden:

• Geben Sie den Namen für die Umgebung ein oder übernehmen Sie den Namensvorschlag.• Geben Sie das Präfix DNS CNAME für die Umgebung ein oder übernehmen Sie den

vorgeschlagenen Wert.• Übernehmen Sie für dieses Beispiel den Load Balancer-Typ Classic.

4. Nachdem Sie den Befehl eb create ausgeführt haben, führt die EB CLI Folgendes durch:

1. Erstellt eine ZIP-Datei aus dem Quellcode und lädt die ZIP-Datei in einen S3-Bucket in Ihrem Kontohoch.

2. Erstellt eine Elastic Beanstalk-Anwendung und die Anwendungsversion.3. Erstellt ein CodeBuild-Projekt.4. Führt einen Build basierend auf dem neuen Projekt aus.5. Löscht das Projekt, nachdem der Build abgeschlossen ist.6. Erstellt eine Elastic Beanstalk-Umgebung.7. Stellt die Build-Ausgabe in der Umgebung bereit.

5. Nachdem die EB CLI die Build-Ausgabe in der Umgebung bereitgestellt hat, sehen Sie die Ergebnissein einem Webbrowser. Rufen Sie die Umgebungs-URL für die Instance auf (z. B. http://my-environment-name.random-string.region-ID.elasticbeanstalk.com). Der Webbrowsersollte nun den Text Hello World! anzeigen.

Sie können nun Änderungen am Quellcode vornehmen und dann den Befehl eb deploy im selbenVerzeichnis ausführen. Die EB CLI führt dieselben Schritte wie der Befehl eb create aus, stellt aber dieBuild-Ausgabe in der vorhandenen Umgebung bereit, statt eine neue Umgebung zu erstellen.

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

API-Version 2016-10-0682

Page 90: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer Bitbucket-Pull-

Anfrage und eines Webhook-Filters

Beispiel einer Bitbucket-Pull-Anfrage und einesWebhook-Filters für CodeBuildAWS CodeBuild unterstützt Webhooks, wenn das Quell-Repository Bitbucket ist. Das bedeutet, dassfür eine CodeBuild Build-Projekt, das ihren Quellcode in einem Bitbucket-Repository gespeicherthat, Webhooks können verwendet werden, um den Quellcode jedes Mal neu zu erstellen, wenn eineCodeänderung zum Repository geschoben wird. Weitere Informationen finden Sie im Bitbucket-Webhook-Ereignisse (p. 243).

Dieses Beispiel zeigt, wie Sie eine Pull-Anfrage mit einem Bitbucket-Repository erstellen. Außerdem wirdgezeigt, wie Sie einen Bitbucket-Webhook verwenden, damit CodeBuild einen Build eines Projekts erstellt.

Themen• Prerequisites (p. 83)• Erstellen Sie ein Build-Projekt mit Bitbucket als Quell-Repository und aktivieren Sie

Webhooks. (p. 83)• Auslösen eines Builds mit einem Bitbucket-Webhook (p. 85)

PrerequisitesUm dieses Beispiel auszuführen, müssen Sie Ihr AWS CodeBuild-Projekt mit Ihrem Bitbucket-Kontoverknüpfen.

Note

CodeBuild hat seine Berechtigungen für Bitbucket aktualisiert. Wenn Sie Ihr Projekt zuvor bereitsmit Bitbucket verbunden hatten und nun einen Bitbucket-Verbindungsfehler erhalten, müssenSie erneut eine Verbindung herstellen, um CodeBuild die Berechtigung für die Verwaltung IhrerWebhooks zu gewähren.

Erstellen Sie ein Build-Projekt mit Bitbucket als Quell-Repositoryund aktivieren Sie Webhooks.In den folgenden Schritten wird beschrieben, wie Sie ein AWS CodeBuild-Projekt mit Bitbucket als Quell-Repository erstellen und Webhooks aktivieren.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

3. Geben Sie auf der Seite Create build project (Build-Projekt erstellen) unter Project Configuration(Projektkonfiguration) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen inallen AWS-Konten eindeutig sein. Sie können optional auch eine Beschreibung für das Build-Projekteingeben, um anderen Benutzern seinen Zweck mitzuteilen.

4. Wählen Sie unter Source (Quelle) für Source provider (Quellanbieter) die Option Bitbucket aus.

API-Version 2016-10-0683

Page 91: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer Bitbucket-Pull-

Anfrage und eines Webhook-Filters

Folgen Sie den Anweisungen, um sich zu verbinden (oder erneut zu verbinden), und wählen Sie Grantaccess (Zugriff gewähren) aus.

Note

Bitbucket Server wird von CodeBuild nicht unterstützt.

API-Version 2016-10-0684

Page 92: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer Bitbucket-Pull-

Anfrage und eines Webhook-Filters

5. Wählen Sie Use a repository in my account (Ein Repository in meinem Konto verwenden) aus. Siekönnen einen Webhook nicht verwenden, wenn Sie ein öffentliches Bitbucket-Repository verwenden.

6. Wählen Sie unter Primary source webhook events (Primäre Quell-Webhook-Ereignisse) dieOption Rebuild every time a code change is pushed to this repository (Erneut erstellen, wenn eineCodeänderung an dieses Repository übergeben wird) aus. Sie können dieses Kontrollkästchen nuraktivieren, wenn Sie Repository in my Bitbucket account (Repository in meinem Bitbucket-Konto)ausgewählt haben.

Note

Wenn ein Build durch einen Bitbucket-Webhook ausgelöst wird, wird die Einstellung Reportbuild status (Build-Status melden) ignoriert. Die Build-Status wird immer an Bitbucketgesendet.

7. Wählen Sie weitere Einstellungen für Ihr Projekt aus. Weitere Informationen zu Optionen undEinstellungen bezüglich des Quell-Anbieters finden Sie unter Choose source provider.

8. Wählen Sie Create build project (Build-Projekt erstellen) aus. Klicken Sie auf der Seite Review(Überprüfen) auf Start build (Build starten), um den Build auszuführen.

Auslösen eines Builds mit einem Bitbucket-WebhookBei einem Projekt, das Bitbucket-Webhooks verwendet, erstellt AWS CodeBuild einen Build, wenn dasBitbucket-Repository eine Änderung in Ihrem Quellcode erkennt.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Build projects (Build-Projekte) und dann ein Projekt aus, das mit

einem Bitbucket-Repository mit Webhooks verknüpft ist. Informationen zum Erstellen eines Bitbucket-Webhook-Projekts finden Sie unter the section called “Erstellen Sie ein Build-Projekt mit Bitbucket alsQuell-Repository und aktivieren Sie Webhooks.” (p. 83).

3. Nehmen Sie einige Änderungen am Code in Ihrem Bitbucket-Repository des Projekts vor.4. Erstellen Sie eine Pull-Anfrage in Ihrem Bitbucket-Repository. Weitere Informationen finden Sie auf der

Seite zum Durchführen einer Pull-Anfrage.5. Wählen Sie auf der Seite über Bitbucket-Webhooks View request (Anfrage anzeigen) aus, um eine

Liste der jüngsten Ereignisse anzuzeigen.6. Wählen Sie View details (Details ansehen) aus, um Details zu der Antwort von CodeBuild anzuzeigen.

Er kann wie folgt aussehen:

API-Version 2016-10-0685

Page 93: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild Badges-Beispiel

"response":"Webhook received and buld started: https://us-east-1.console.aws.amazon.com/codebuild/home...""statusCode":200

7. Navigieren Sie zur Seite über Bitbucket Pull-Anfragen, um den Build-Status anzuzeigen.

Build Badges-Beispiel mit CodeBuildAWS CodeBuild unterstützt jetzt die Verwendung von Build Badges. Diese stellen ein integrierbares,dynamisch generiertes Image (Badge) bereit, das den Status des letzten Builds eines Projekts anzeigt. Aufdieses Image kann über eine öffentlich verfügbare URL zugegriffen werden, die für Ihr CodeBuild-Projektgeneriert wurde. Auf diese Weise können alle Benutzer den Status eines CodeBuild-Projekts anzeigen.Build Badges enthalten keine Sicherheitsinformationen, sodass keine Authentifizierung erforderlich ist.

Erstellen eines Build-Projekts mit aktivierten Build Badges(Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

3. Geben Sie auf der Seite Create build project (Build-Projekt erstellen) unter Project Configuration(Projektkonfiguration) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen inallen AWS-Konten eindeutig sein. Sie können optional auch eine Beschreibung für das Build-Projekteingeben, um anderen Benutzern seinen Zweck mitzuteilen.

4. Wählen Sie unter Source (Quelle) für Source provider (Quellanbieter) den Quellcode-Anbietertyp ausund führen Sie dann einen der folgenden Schritte aus:

Note

CodeBuild unterstützt keine Build-Badges mit dem Amazon S3-Quellanbieter. Da AWSCodePipeline Amazon S3 für Artefaktübertragungen verwendet, werden Build-Badges fürBuild-Projekte, die Teil einer in CodePipeline erstellten Pipeline sind, nicht unterstützt.

• Wenn Sie CodeCommit festgelegt haben, wählen Sie für Repository den Namen des Repositorysaus. Wählen Sie Enable build badge (Build Badge aktivieren) aus, damit der Build-Status IhresProjekts sichtbar und integrierbar ist.

• Wenn Sie GitHub ausgewählt haben, folgen Sie den Anweisungen zur Verbindung (oder erneutenVerbindung) mit GitHub. Wählen Sie auf der GitHub-Seite Authorize application (Anwendungautorisieren) für Organization access (Organisationszugriff) die Option Request access (Zugriffanfordern) neben dem Repository aus, auf den AWS CodeBuild zugreifen können soll. Nach derAuswahl von Authorize application (Anwendung autorisieren) wählen Sie in der AWS CodeBuild-Konsole für Repository den Namen des Repositorys aus, der den Quellcode enthält. Wählen SieEnable build badge (Build Badge aktivieren) aus, damit der Build-Status Ihres Projekts sichtbar undintegrierbar ist.

• Wenn Sie Bitbucket ausgewählt haben, folgen Sie den Anweisungen zur Verbindung (oder erneutenVerbindung) mit Bitbucket. Wählen Sie auf der Bitbucket-Seite Confirm access to your account fürOrganization access die Option Grant access aus. Nach der Auswahl von Grant access (Zugriffgewähren) wählen Sie in der AWS CodeBuild-Konsole für Repository den Namen des Repositorysaus, der den Quellcode enthält. Wählen Sie Enable build badge (Build Badge aktivieren) aus, damitder Build-Status Ihres Projekts sichtbar und integrierbar ist.

API-Version 2016-10-0686

Page 94: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild Badges-Beispiel

Important

Wenn Sie Ihre Projektquelle aktualisieren, kann das Auswirkungen auf die Richtigkeit derBuild Badges Ihres Projekts haben.

5. In Environment (Umgebung):

Führen Sie für Environment image (Umgebungs-Image) einen der folgenden Schritte aus:

• Um ein Docker-Image zu verwenden, das von AWS CodeBuild verwaltet wird, wählen Sie Managedimage (Verwaltetes Image) aus und wählen Sie anschließend die gewünschten Optionen fürOperating system (Betriebssystem), Runtime (Laufzeit), Image und Image version (Image-Version)aus. Treffen Sie eine Auswahl unter Environment type (Umgebungstyp), sofern verfügbar.

• Wenn Sie ein anderes Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) dieOption ARM, Linux, Linux GPU, or Windows aus. Wenn Sie für External registry URL (ExterneRegistrierungs-URL) die Option Other registry (Andere Registrierung) auswählen, geben Sie denNamen und das Tag des Docker-Image in Docker Hub im Format docker repository/dockerimage name ein. Wenn Sie Amazon ECR auswählen, verwenden Sie Amazon ECR repository undAmazon ECR image zur Auswahl des Docker-Images im AWS-Konto.

• Wenn Sie ein privates Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) die OptionARM, Linux, Linux GPU, or Windows aus. Wählen Sie unter Image registry (Abbildregistrierung)die Option Other registry (Andere Registrierung) aus und geben Sie dann den ARN derAnmeldeinformationen für Ihr privates Docker-Image ein. Die Anmeldeinformationen müssen vonSecrets Manager erstellt werden. Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.

6. Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:

• Wenn Sie keine CodeBuild-Servicerolle haben, wählen Sie New service role (Neue Servicerolle) aus.Geben Sie unter Role Name (Rollenname) einen Namen für die neue Rolle ein.

• Wenn Sie bereits eine CodeBuild-Servicerolle haben, wählen Sie Existing service role (VorhandeneServicerolle) aus. Wählen Sie unter Role ARN (Rollen-ARN) die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

7. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden), um die buildspec.yml-Datei imQuellcode-Stammverzeichnis zu verwenden.

• Wählen Sie Insert build commands (Build-Befehle einfügen) aus, um über die Konsole Build-Befehleeinzugeben.

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).8. Führen Sie unter Artifacts (Artefakte) für Type (Typ) einen der folgenden Schritte aus:

• Wenn keine Build-Ausgabeartefakte erstellt werden sollen, klicken Sie auf die Option No artifacts(Keine Artefakte).

API-Version 2016-10-0687

Page 95: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild Badges-Beispiel

• Zum Speichern der Build-Ausgabe in einem S3-Bucket wählen Sie Amazon S3 aus und gehen dannwie folgt vor:• Lassen Sie Name leer, wenn Sie den Projektnamen für die ZIP-Datei mit der Build-Ausgabe

verwenden möchten. Geben Sie andernfalls den Namen ein. Standardmäßig ist der Artefaktnameder Projektname. Wenn Sie einen anderen Namen verwenden möchten, geben Sie diesen in dasFeld für den Artefaktnamen ein. Wenn Sie eine ZIP-Datei ausgeben möchten, schließen Sie dieZIP-Erweiterung mit ein.

• Wählen Sie für Bucket name den Namen des Ausgabe-Buckets aus.• Wenn Sie in diesem Vorgang zuvor die Option Insert build commands (Build-Befehle einfügen)

verwendet haben, geben Sie für Output files (Ausgabedateien) die Speicherorte der Build-Dateienein, die in der ZIP-Datei oder in dem Ordner für die Build-Ausgabe enthalten sein sollen. Beimehreren Speicherorten trennen Sie die einzelnen Speicherorte durch ein Komma, (wie z. B.appspec.yml, target/my-app.jar). Weitere Informationen finden Sie in der Beschreibungvon files in Syntax der Build-Spezifikation (p. 151).

9. Erweitern Sie Additional configuration (Zusätzliche Einstellungen) und wählen Sie die entsprechendenOptionen.

10. Wählen Sie Create build project (Build-Projekt erstellen) aus. Klicken Sie auf der Seite Review(Überprüfen) auf Start build (Build starten), um den Build auszuführen.

Erstellen eines Build-Projekts mit aktivierten Build Badges (CLI)Informationen über das Erstellen eines Build-Projekts finden Sie unter Erstellen eines Build-Projekts(AWS CLI) (p. 217). So fügen Sie Badges mit Ihrem AWS CodeBuild Projekt, Sie müssen angeben,badgeEnabled mit einem Wert von true.

Zugriff auf Ihre AWS CodeBuild Build BadgesFür den Zugriff auf Build Badges können Sie die AWS CodeBuild-Konsole oder die AWS CLI verwenden.

• Wählen Sie in der CodeBuild-Konsole in der Liste der Build-Projekte in der Spalte Name den Link für dasgewünschte Build-Projekt aus. Auf der Projekt erstellen: project-name Seite, in Konfiguration, wählenSie URL der Ausweiskarte kopieren. Weitere Informationen finden Sie im Anzeigen der Details einesBuild-Projekts (Konsole) (p. 234).

• Führen Sie in der AWS CLI den Befehl batch-get-projects aus. Die Build Badge-URL ist imAbschnitt zu den Projektumgebungsdetails der Ausgabe enthalten. Weitere Informationen finden Sie imAnzeigen der Details eines Build-Projekts (AWS CLI) (p. 234).

Important

Die URL der Erstellung der Ausweiskarte ist für die Standardniederlassung, aber Sie könnenjede Filiale in Ihrem Quellarchiv angeben, die Sie verwendet haben, um eine Build-Funktionauszuführen.

Veröffentlichen Ihrer CodeBuild Build BadgesSie können Ihre Build Badge-Anforderungs-URL in einer Markdown-Datei in Ihr bevorzugtes Repository(beispielsweise GitHub oder CodeCommit) einschließen, um den Status des letzten Builds anzuzeigen.

Markdown-Code – Beispiel:

![Build Status](https://codebuild.us-east-1.amazon.com/badges?uuid=...&branch=main)

API-Version 2016-10-0688

Page 96: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

CodeBuild Badge-Status• PASSING Der neueste Build der angegebenen Verzweigung wurde übergeben.• FAILING Der neueste Build der angegebenen Verzweigung hat das Zeitlimit überschritten, ist

fehlgeschlagen, fehlerhaft oder wurde gestoppt.• IN_PROGRESS Der neueste Build für die angegebene Verzweigung wird verarbeitet.• UNKNOWN Das Projekt hat für die angegebene Verzweigung oder generell noch keinen Build

ausgeführt. Darüber hinaus ist die Funktion zum Erstellen von Badges möglicherweise deaktiviert.

Build-Benachrichtigungsbeispiel für CodeBuildAmazon CloudWatch Events verfügt über eine integrierte Unterstützung für AWS CodeBuild. CloudWatch-Ereignisse ist ein Stream von Systemereignissen, der Änderungen in Ihren AWS-Ressourcen beschreibt.Mit CloudWatch-Ereignisse schreiben Sie deklarative Regeln, um interessante Ereignisse mit zuergreifenden automatisierten Maßnahmen zu verknüpfen. In diesem Beispiel werden Amazon CloudWatchEvents und Amazon Simple Notification Service (Amazon SNS) verwendet, um Build-Benachrichtigungenan Abonnenten zu senden, wenn Builds erfolgreich sind, fehlschlagen, von einer Build-Phase zur nächstengehen oder eine Kombination dieser Ereignisse auftritt.

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für CodeBuild- und AWS-Ressourcen sowie Aktionen in Verbindung mit AmazonCloudWatch und Amazon SNS. Weitere Informationen finden Sie unter CodeBuild-Preise, AmazonCloudWatch-Preise und Amazon SNS-Preise.

Ausführen des BeispielsSo führen Sie das Beispiel aus

1. Wenn Sie bereits ein Thema eingerichtet und in Amazon SNS abonniert haben, das Sie für diesesBeispiel verwenden möchten, fahren Sie mit Schritt 4 fort. Wenn Sie anderenfalls einen IAM-Benutzer statt eines AWS-Stammkontos oder eines IAM-Administrators für die Arbeit mit AmazonSNS verwenden, fügen Sie dem Benutzer die folgende Anweisung (zwischen### BEGIN ADDINGSTATEMENT HERE ### und ### END ADDING STATEMENT HERE ###) hinzu (oder der IAM-Gruppe, der der Benutzer zugeordnet ist). Es wird nicht empfohlen, ein AWS-Stammkonto zuverwenden. Mit dieser Anweisung können Sie das Senden von Benachrichtigungen zu Themen inAmazon SNS anzeigen, erstellen, abonnieren und testen. Auslassungspunkte (...) werden zurAbkürzung verwendet und weisen auf die Stellen hin, an denen die Anweisung hinzugefügt wird.Entfernen Sie keine Anweisungen und geben Sie die Auslassungspunkte nicht in die vorhandeneRichtlinie ein.

{ "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:List*", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "*",

API-Version 2016-10-0689

Page 97: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

"Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17"}

Note

Die IAM-Entität, die diese Richtlinie ändert, muss über die entsprechende Berechtigung inIAM verfügen.Weitere Informationen finden Sie unter Bearbeiten von kundenverwalteten Richtlinien oderim Abschnitt „So bearbeiten oder löschen Sie eine eingebundene Richtlinie für eine Gruppe,einen Benutzer oder eine Rolle“ in Verwenden von eingebundenen Richtlinien (Konsole) imIAM-Benutzerhandbuch.

2. Erstellen oder bestimmen Sie ein Thema in Amazon SNS. AWS CodeBuild verwendet CloudWatch-Ereignisse zum Senden von Build-Benachrichtigungen zu diesem Thema über Amazon SNS.

Erstellen Sie ein Thema wie folgt:

1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns.2. Wählen Sie Create topic aus.3. Geben Sie unter Create new topic (Neues Thema erstellen) für Topic name (Themenname) einen

Namen für das Thema ein (z. B. CodeBuildDemoTopic). (Wenn Sie einen anderen Namenverwenden, muss dieser im gesamten Beispiel verwendet werden.)

4. Wählen Sie Create topic aus.5. Kopieren Sie auf der Seite Topic details (Themendetails): CodeBuildDemoTopic den Wert des

Topic ARN (Thema-ARN). Sie benötigen diesen Wert im nächsten Schritt.

API-Version 2016-10-0690

Page 98: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

API-Version 2016-10-0691

Page 99: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

Weitere Informationen finden Sie unter Erstellen eines Themas im Amazon SNS-Entwicklerhandbuch.3. Abonnieren Sie das Thema für einen oder mehrere Empfänger, um E-Mail-Benachrichtigungen zu

empfangen.

So abonnieren Sie ein Thema für einen Empfänger:

1. Wählen Sie bei der aus dem vorherigen Schritt geöffneten Amazon SNS-Konsole imNavigationsbereich Subscriptions (Abonnements) aus und anschließend Create subscription(Abonnement erstellen).

2. Fügen Sie unter Create subscription (Abonnement erstellen), für Topic ARN (Thema-ARN), denThema-ARN ein, den Sie im vorherigen Schritt kopiert haben.

3. Wählen Sie unter Protocol die Option Email aus.4. Geben Sie für Endpoint (Endpunkt) die vollständige E-Mail-Adresse des Empfängers ein.

API-Version 2016-10-0692

Page 100: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

API-Version 2016-10-0693

Page 101: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

5. Wählen Sie Create Subscription.6. Amazon SNS sendet eine Bestätigungs-E-Mail für das Abonnement an den Empfänger. Um

Benachrichtigungen zu erhalten, muss der Empfänger den Link Confirm subscription in derBestätigungs-E-Mail wählen. Wenn das Abonnement erfolgreich abgeschlossen wird, wird nachKlicken auf den Link von Amazon SNS eine Bestätigungsmeldung im Webbrowser des Empfängersangezeigt.

Weitere Informationen finden Sie unter Abonnieren eines Themas im Amazon SNS-Entwicklerhandbuch.

4. Wenn Sie einen IAM-Benutzer statt eines AWS-Stammkontos oder eines IAM-Administrators fürdie Arbeit mit CloudWatch-Ereignisse verwenden, fügen Sie dem Benutzer die folgende Anweisung(zwischen### BEGIN ADDING STATEMENT HERE ### und ### END ADDING STATEMENTHERE ###) hinzu (oder der IAM-Gruppe, der der Benutzer zugeordnet ist). Es wird nicht empfohlen,ein AWS-Stammkonto zu verwenden. Diese Anweisung wird verwendet, um dem Benutzer zuermöglichen, mit CloudWatch-Ereignisse zu arbeiten. Auslassungspunkte (...) werden zur Abkürzungverwendet und weisen auf die Stellen hin, an denen die Anweisung hinzugefügt wird. Entfernen Siekeine Anweisungen und geben Sie die Auslassungspunkte nicht in die vorhandene Richtlinie ein.

{ "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "events:*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17"}

Note

Die IAM-Entität, die diese Richtlinie ändert, muss über die entsprechende Berechtigung inIAM verfügen.Weitere Informationen finden Sie unter Bearbeiten von kundenverwalteten Richtlinien oderim Abschnitt „So bearbeiten oder löschen Sie eine eingebundene Richtlinie für eine Gruppe,einen Benutzer oder eine Rolle“ in Verwenden von eingebundenen Richtlinien (Konsole) imIAM-Benutzerhandbuch.

5. Erstellen Sie eine Rege in CloudWatch-Ereignisse. Öffnen Sie zu diesem Zweck die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch.

6. Wählen Sie im Navigationsbereich unter Events Rules aus und anschließend Create rule.7. Auf der Seite Step 1: Create rule page (Schritt 1: Regel erstellen), sollten bereits die Optionen Event

Pattern (Ereignismuster) und Build event pattern to match events by service (Ereignismuster erstellen,um Ereignisse nach Service abzugleichen) ausgewählt sein.

8. Wählen Sie für Service Name (Servicename) CodeBuild aus. Bei Event Type (Ereignistyp) solltebereits All Events (Alle Ereignisse) ausgewählt sein.

9. Der folgende Code sollte in Event Pattern Preview (Ereignismustervorschau) angezeigt werden:

{ "source": [ "aws.codebuild"

API-Version 2016-10-0694

Page 102: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

]}

Vergleichen Sie Ihre Ergebnisse:

API-Version 2016-10-0695

Page 103: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

API-Version 2016-10-0696

Page 104: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

10. Wählen Sie die Option Edit (Bearbeiten) und ersetzen Sie den Code in Event Pattern Preview(Ereignismustervorschau) durch eines der beiden folgenden Regelmuster.

Das erste Regelmuster löst für die in AWS CodeBuild angegebenen Build-Projekte ein Ereignis aus,sobald ein Build gestartet oder abgeschlossen wird.

{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build State Change" ], "detail": { "build-status": [ "IN_PROGRESS", "SUCCEEDED", "FAILED", "STOPPED" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

Nehmen Sie in der vorhergehenden Regel die folgenden Code-Änderungen nach Bedarf vor.

• Um ein Ereignis auszulösen, sobald ein Build beginnt oder abgeschlossen ist, lassen Sie entwederalle Werte wie im build-status Array gezeigt stehen oder entfernen Sie build-status dasArray vollständig.

• Um ein Ereignis nur dann auszulösen, wenn ein Build abgeschlossen ist, entfernen SieIN_PROGRESS aus dem build-status Array.

• Um ein Ereignis nur dann auszulösen, wenn ein Build startet, entfernen Sie alle Werte außerIN_PROGRESS aus dem build-status Array.

• Um Ereignisse für alle Build-Projekte auszulösen, entfernen Sie das project-name Arrayvollständig.

• Um Ereignisse nur für einzelne Build-Projekte auszulösen, geben Sie den Namen des jeweiligenBuild-Projekts im Array project-name an.

Dieses zweite Regelmuster löst ein Ereignis aus, sobald bei den in AWS CodeBuild angegebenenBuild-Projekten ein Build von einer Build-Phase in eine andere wechselt.

{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build Phase Change" ], "detail": { "completed-phase": [ "SUBMITTED", "PROVISIONING", "DOWNLOAD_SOURCE", "INSTALL", "PRE_BUILD", "BUILD",

API-Version 2016-10-0697

Page 105: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

"POST_BUILD", "UPLOAD_ARTIFACTS", "FINALIZING" ], "completed-phase-status": [ "TIMED_OUT", "STOPPED", "FAILED", "SUCCEEDED", "FAULT", "CLIENT_ERROR" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

Nehmen Sie in der vorhergehenden Regel die folgenden Code-Änderungen nach Bedarf vor.

• Um ein Ereignis für jeden Build-Phasenwechsel auszulösen (wodurch bis zuneun Benachrichtigungen für jeden Build gesendet werden können), lassen Sie entweder alle Werte,wie im completed-phase-Array gezeigt, stehen oder entfernen Sie das completed-phase-Arrayvollständig.

• Um Ereignisse nur für einzelne Build-Phasenänderungen auszulösen, entfernen Sie den Namenjeder Build-Phase in dem completed-phase-Array, für das Sie kein Ereignis auslösen möchten.

• Um ein Ereignis für jede Statusänderung einer Build-Phase auszulösen, lassen Sie entwederalle Werte, wie im completed-phase-status-Array gezeigt, stehen oder entfernen Sie dascompleted-phase-status-Array vollständig.

• Um Ereignisse nur für einzelne Statusänderungen von Build-Phasen auszulösen, entfernen Sie denNamen des jeweiligen Status einer Build-Phase in dem completed-phase-status-Array, für dasSie kein Ereignis auslösen möchten.

• Um Ereignisse für alle Build-Projekte auszulösen, entfernen Sie das project-name-Array.• Um Ereignisse für einzelne Build-Projekte auszulösen, geben Sie den Namen des jeweiligen Build-

Projekts im project-name-Array an.

Note

Wenn Sie Ereignisse sowohl für Build-Statusänderungen als auch für Build-Phasenänderungen auslösen möchten, müssen Sie zwei separate Regeln erstellen: einefür Build-Statusänderungen und eine für Build-Phasenänderungen. Wenn Sie versuchen,beide Regeln zu einer einzigen Regel zusammenzufassen, führt die kombinierte Regel ggf. zuunerwarteten Ergebnissen oder funktioniert ggf. gar nicht mehr.

Wenn Sie mit dem Ersetzen des Codes fertig sind, wählen Sie Save (Speichern) aus.11. Wählen Sie für Targets die Option Add target aus.12. Wählen Sie in der Liste der Ziele SNS topic aus.13. Als Topic wählen Sie das Thema, das Sie zuvor identifiziert oder erstellt haben.14. Erweitern Sie Configure input und wählen Sie dann Input Transformer aus.15. Geben Sie im Feld Input Path (Eingabepfad) einen der folgenden Eingabepfade ein.

Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build State ChangeFolgendes ein.

API-Version 2016-10-0698

Page 106: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}

Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build Phase ChangeFolgendes ein.

{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}

Weitere Informationen finden Sie unter Eingabeformat-Referenz für Build-Benachrichtigungen (p. 103).

16. Geben Sie im Feld Input Template (Eingabevorlage) eine der folgenden Eingabevorlagen ein.

Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build State ChangeFolgendes ein.

"Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."

Geben Sie für eine Regel mit einem detail-type-Wert von CodeBuild Build Phase ChangeFolgendes ein.

"Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."

Gleichen Sie Ihre bisherigen Ergebnisse mit dem Folgenden ab, das eine Regel mit einem detail-type-Wert von CodeBuild Build State Change zeigt:

API-Version 2016-10-0699

Page 107: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

API-Version 2016-10-06100

Page 108: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

17. Wählen Sie Configure details (Details konfigurieren) aus.18. Geben Sie auf der Seite Step 2: Configure rule details (Schritt 2: Konfigurieren von Regeldetails)

einen Namen ein und eine optionale Beschreibung ein. Lassen Sie unter Status die Option Enabled(Aktiviert) ausgewählt.

Vergleichen Sie Ihre bisherigen Ergebnisse mit dem folgenden Screenshot:

API-Version 2016-10-06101

Page 109: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

API-Version 2016-10-06102

Page 110: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

19. Wählen Sie Create rule aus.20. Erstellen Sie Build-Projekte, führen Sie die Builds aus und lassen Sie sich Build-Informationen

anzeigen, indem Sie die Anweisungen unter Direktes Ausführen von CodeBuild (p. 407) befolgen.21. Vergewissern Sie sich, dass CodeBuild nun Build-Benachrichtigungen erfolgreich sendet. Überprüfen

Sie beispielsweise, ob sich die Build-Benachrichtigungs-E-Mails jetzt in Ihrem Posteingang befinden.

Um das Verhalten einer Regel zu ändern, wählen Sie in der CloudWatch-Konsole die zu ändernde Regelaus, klicken Sie auf Actions (Aktionen) und dann auf Edit (Bearbeiten). Nehmen Sie Änderungen an derRegel vor, wählen Sie Configure details (Details konfigurieren), und klicken Sie dann auf Update rule(Regel aktualisieren).

Um eine Regel zum Senden von Build-Benachrichtigungen nicht länger zu verwenden, wählen Sie in derCloudWatch-Konsole die Regel aus, die Sie nicht länger verwenden möchten, klicken dann auf Actions(Aktionen) und anschließend auf Disable (Deaktivieren).

Um eine Regel vollständig zu löschen, wählen Sie in der CloudWatch-Konsole die zu löschende Regel aus,klicken dann auf Actions (Aktionen) und anschließend auf Delete (Löschen).

Zugehörige Ressourcen

• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWSCodeBuild unter Verwendung der Konsole (p. 5).

• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWSCodeBuild (p. 430).

• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

Eingabeformat-Referenz für Build-BenachrichtigungenCloudWatch übermittelt Benachrichtigungen im JSON-Format.

Benachrichtigungen zu Statusänderungen von Builds verwenden das folgende Format:

{ "version": "0", "id": "c030038d-8c4d-6141-9545-00ff7b7153EX", "detail-type": "CodeBuild Build State Change", "source": "aws.codebuild", "account": "123456789012", "time": "2017-09-01T16:14:28Z", "region": "us-west-2", "resources":[ "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX" ], "detail":{ "build-status": "SUCCEEDED", "project-name": "my-sample-project", "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX", "additional-information": { "artifact": { "md5sum": "da9c44c8a9a3cd4b443126e823168fEX", "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX", "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip" }, "environment": { "image": "aws/codebuild/standard:4.0",

API-Version 2016-10-06103

Page 111: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

"privileged-mode": false, "compute-type": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environment-variables": [] }, "timeout-in-minutes": 60, "build-complete": true, "initiator": "MyCodeBuildDemoUser", "build-start-time": "Sep 1, 2017 4:12:29 PM", "source": { "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip", "type": "S3" }, "logs": { "group-name": "/aws/codebuild/my-sample-project", "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX", "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX" }, "phases": [ { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:12:29 PM", "duration-in-seconds": 0, "phase-type": "SUBMITTED", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:13:05 PM", "duration-in-seconds": 36, "phase-type": "PROVISIONING", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:05 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 4, "phase-type": "DOWNLOAD_SOURCE", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "INSTALL", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "PRE_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 70,

API-Version 2016-10-06104

Page 112: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

"phase-type": "BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "POST_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "UPLOAD_ARTIFACTS", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:26 PM", "duration-in-seconds": 4, "phase-type": "FINALIZING", "phase-status": "SUCCEEDED" }, { "start-time": "Sep 1, 2017 4:14:26 PM", "phase-type": "COMPLETED" } ] }, "current-phase": "COMPLETED", "current-phase-context": "[]", "version": "1" }}

Benachrichtigungen zu Phasenänderungen von Builds verwenden das folgende Format:

{ "version": "0", "id": "43ddc2bd-af76-9ca5-2dc7-b695e15adeEX", "detail-type": "CodeBuild Build Phase Change", "source": "aws.codebuild", "account": "123456789012", "time": "2017-09-01T16:14:21Z", "region": "us-west-2", "resources":[ "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX" ], "detail":{ "completed-phase": "COMPLETED", "project-name": "my-sample-project", "build-id": "arn:aws:codebuild:us-west-2:123456789012:build/my-sample-project:8745a7a9-c340-456a-9166-edf953571bEX", "completed-phase-context": "[]", "additional-information": { "artifact": { "md5sum": "da9c44c8a9a3cd4b443126e823168fEX", "sha256sum": "6ccc2ae1df9d155ba83c597051611c42d60e09c6329dcb14a312cecc0a8e39EX", "location": "arn:aws:s3:::codebuild-123456789012-output-bucket/my-output-artifact.zip"

API-Version 2016-10-06105

Page 113: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Benachrichtigungsbeispiel

}, "environment": { "image": "aws/codebuild/standard:4.0", "privileged-mode": false, "compute-type": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environment-variables": [] }, "timeout-in-minutes": 60, "build-complete": true, "initiator": "MyCodeBuildDemoUser", "build-start-time": "Sep 1, 2017 4:12:29 PM", "source": { "location": "codebuild-123456789012-input-bucket/my-input-artifact.zip", "type": "S3" }, "logs": { "group-name": "/aws/codebuild/my-sample-project", "stream-name": "8745a7a9-c340-456a-9166-edf953571bEX", "deep-link": "https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logEvent:group=/aws/codebuild/my-sample-project;stream=8745a7a9-c340-456a-9166-edf953571bEX" }, "phases": [ { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:12:29 PM", "duration-in-seconds": 0, "phase-type": "SUBMITTED", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:12:29 PM", "end-time": "Sep 1, 2017 4:13:05 PM", "duration-in-seconds": 36, "phase-type": "PROVISIONING", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:05 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 4, "phase-type": "DOWNLOAD_SOURCE", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "INSTALL", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:13:10 PM", "duration-in-seconds": 0, "phase-type": "PRE_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [],

API-Version 2016-10-06106

Page 114: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts mithilfe des AWS CLI-Beispiels

"start-time": "Sep 1, 2017 4:13:10 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 70, "phase-type": "BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "POST_BUILD", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:21 PM", "duration-in-seconds": 0, "phase-type": "UPLOAD_ARTIFACTS", "phase-status": "SUCCEEDED" }, { "phase-context": [], "start-time": "Sep 1, 2017 4:14:21 PM", "end-time": "Sep 1, 2017 4:14:26 PM", "duration-in-seconds": 4, "phase-type": "FINALIZING", "phase-status": "SUCCEEDED" }, { "start-time": "Sep 1, 2017 4:14:26 PM", "phase-type": "COMPLETED" } ] }, "completed-phase-status": "SUCCEEDED", "completed-phase-duration-seconds": 4, "version": "1", "completed-phase-start": "Sep 1, 2017 4:14:21 PM", "completed-phase-end": "Sep 1, 2017 4:14:26 PM" }}

Erstellen eines Testberichts in CodeBuild unterVerwendung des AWS CLI-BeispielsTests, die Sie in der buildspec-Datei angeben, werden während des Builds ausgeführt. In diesem Beispielwird gezeigt, wie Sie mit AWS CLI Tests in Builds in CodeBuild integrieren. Sie können JUnit verwenden,um Komponententests zu erstellen, oder ein anderes Werkzeug, um Konfigurationstests zu erstellen.Anschließend können Sie die Testergebnisse auswerten, um Probleme zu beheben oder Ihre Anwendungzu optimieren.

Sie können die CodeBuild-API oder die AWS CodeBuild-Konsole verwenden, um auf die Testergebnissezuzugreifen. In diesem Beispiel wird gezeigt, wie Sie den Bericht so konfigurieren, dass die Testergebnissein einen S3-Bucket exportiert werden.

Themen• Prerequisites (p. 108)• Erstellen einer Berichtsgruppe (p. 108)

API-Version 2016-10-06107

Page 115: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts mithilfe des AWS CLI-Beispiels

• Konfigurieren eines Projekts mit einer Berichtsgruppe (p. 109)• Ausführen und Anzeigen der Ergebnisse eines Berichts (p. 110)

Prerequisites• Erstellen Sie Ihre Testfälle. Dieses Beispiel geht von der Annahme aus, dass Sie Testfälle in Ihren

Testbericht aufnehmen müssen. Sie geben den Speicherort Ihrer Testdateien in der buildspec-Datei an.

Die folgenden Dateiformate für Testberichte werden unterstützt:• Cucumber JSON• JUnit XML• NUnit XML• NEinheit3 XML• TestNG XML• Visual Studio TRX

Erstellen Sie Ihre Testfälle mit einem beliebigen Test-Framework, das Testberichtdateien in einem dieserFormate erstellen kann (zum Beispiel Surefire JUnit-Plugin, TestNG oder Cucumber).

• Erstellen Sie einen S3-Bucket und notieren Sie sich dessen Namen. Weitere Informationen finden Sieunter Erstellen eines S3-Buckets im Amazon S3-Benutzerhandbuch.

• Erstellen Sie eine IAM-Rolle und notieren Sie sich deren ARN. Sie benötigen den ARN, wenn Sie IhrBuild-Projekt erstellen.

• Wenn Ihre Rolle nicht über die folgenden Berechtigungen verfügt, fügen Sie sie hinzu.

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases" ]}

Weitere Informationen finden Sie im Berechtigungen für Testberichtoperationen (p. 326).

Erstellen einer Berichtsgruppe1. Erstellen Sie eine Datei namens CreateReportGroupInput.json.2. Erstellen Sie einen Ordner in Ihrem S3-Bucket, in den die Testergebnisse exportiert werden.3. Kopieren Sie Folgendes in CreateReportGroupInput.json. für bucket, verwenden Sie den

Namen des S3-Buckets. Geben Sie für path den Pfad zu dem Ordner in Ihrem S3-Bucket ein.

{ "name": "report-name", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "bucket-name",

API-Version 2016-10-06108

Page 116: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts mithilfe des AWS CLI-Beispiels

"path": "path-to-folder", "packaging": "NONE" } }}

4. Führen Sie den folgenden Befehl im Verzeichnis aus, der enthält CreateReportGroupInput.json.für region, geben Sie Ihre AWS-Region an (z. B. us-east-2).

aws codebuild create-report-group \ --cli-input-json file://CreateReportGroupInput.json \ --region your-region

Die Ausgabe sieht wie folgt aus. Notieren Sie sich das ARN für die reportGroup. Sie verwenden sie,wenn Sie ein Projekt erstellen, das diese Berichtsgruppe verwendet.

{ "reportGroup": { "arn": "arn:aws:codebuild:us-west-2:123456789012:report-group/report-name", "name": "report-name", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "s3-bucket-name", "path": "folder-path", "packaging": "NONE", "encryptionKey": "arn:aws:kms:us-west-2:123456789012:alias/aws/s3" } }, "created": 1570837165.885, "lastModified": 1570837165.885 }}

Konfigurieren eines Projekts mit einer BerichtsgruppeZum Ausführen eines Berichts erstellen Sie zunächst ein CodeBuild-Build-Projekt, das mit IhrerBerichtsgruppe konfiguriert ist. Testfälle, die für Ihre Berichtsgruppe angegeben wurden, werdenausgeführt, wenn Sie einen Build ausführen.

1. Erstellen Sie eine buildspec-Datei mit dem Namen buildspec.yml.2. Verwenden Sie die folgende YAML als Vorlage für Ihre buildspec.yml-Datei. Stellen Sie sicher,

dass Sie die Befehle einschließen, die Ihre Tests ausführen. Geben Sie im reports-Abschnitt dieDateien an, die die Ergebnisse Ihrer Testfälle enthalten. Diese Dateien speichern die Testergebnisse,auf die Sie mit CodeBuild zugreifen können. Sie verfallen 30 Tage nach ihrer Erstellung. Diese Dateienunterscheiden sich von den Roh-Testfall-Ergebnisdateien, die Sie in einen S3-Bucket exportieren.

version: 0.2 phases: install: runtime-versions: java: openjdk8 build: commands: - echo Running tests - enter commands to run your tests reports:

API-Version 2016-10-06109

Page 117: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts mithilfe des AWS CLI-Beispiels

report-name-or-arn: #test file information files: - 'test-result-files' base-directory: 'optional-base-directory' discard-paths: false #do not remove file paths from test result files

Note

Anstelle des ARN einer vorhandenen Berichtsgruppe können Sie auch einen Namen für einenicht erstellte Berichtsgruppe angeben. Wenn Sie anstelle eines ARN einen Namen angeben,erstellt CodeBuild eine Berichtsgruppe, wenn ein Build ausgeführt wird. Der Name enthältIhren Projektnamen und den Namen, den Sie in der buildspec-Datei in folgendem Formatangeben: . project-name-report-group-name. Weitere Informationen finden Sie unterErstellen eines Testberichts (p. 307) und Benennung von Berichtsgruppen (p. 314).

3. Datei erstellen project.json. Diese Datei enthält Input für die create-project Befehl.4. Kopieren Sie die folgende JSON in project.json. für source, geben Sie den Typ und die Position

des Repository ein, das Ihre Quelldateien enthält. Geben Sie für serviceRole den ARN der Rolle an,die Sie verwenden.

{ "name": "test-report-project", "description": "sample-test-report-project", "source": { "type": "your-repository-type", "location": "https://github.com/your-repository/your-folder" }, "artifacts": { "type": "NO_ARTIFACTS" }, "cache": { "type": "NO_CACHE" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "small" }, "serviceRole": "arn:aws:iam:your-aws-account-id:role/service-role/your-role-name"}

5. Führen Sie den folgenden Befehl im Verzeichnis aus, der enthält project.json. Dadurch wird einProjekt erstellt test-project.

aws codebuild create-project \ --cli-input-json file://project.json \ --region your-region

Ausführen und Anzeigen der Ergebnisse eines BerichtsIn diesem Abschnitt führen Sie einen Build des zuvor erstellten Projekts aus. Während des Build-Prozesseserstellt CodeBuild einen Bericht mit den Ergebnissen der Testfälle. Der Bericht ist in der von Ihnenangegebenen Berichtsgruppe enthalten.

1. Führen Sie den folgenden Befehl aus, um einen Build zu starten. Notieren Sie sich die Build-ID, die inder Ausgabe angezeigt wird. Das Format ist test-report>:build-id.

aws codebuild start-build --project-name "test-project" --region your-region

API-Version 2016-10-06110

Page 118: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts mithilfe des AWS CLI-Beispiels

2. Führen Sie den folgenden Befehl aus, um Informationen zu Ihrem Build abzurufen, einschließlich desARN Ihres Berichts. Geben Sie für --ids Ihre Build-ID an. Notieren Sie sich den Berichts-ARN in derAusgabe.

aws codebuild batch-get-builds \ --ids "build-id" \ --region your-region

3. Führen Sie den folgenden Befehl aus, um Details zu Ihren Berichten zu erhalten. Geben Sie für --report-group-arn den Berichts-ARN an.

aws codebuild batch-get-reports \ --report-arns report-group-arn \ --region your-region

Die Ausgabe sieht wie folgt aus. Diese Beispielausgabe zeigt, wie viele der Tests erfolgreich waren,fehlschlugen, übersprungen wurden, zu einem Fehler geführt haben oder einen unbekannten Statuszurückgaben.

{ "reports": [ { "status": "FAILED", "reportGroupArn": "report-group-arn", "name": "report-group-name", "created": 1573324770.154, "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "your-s3-bucket", "path": "path-to-your-report-results", "packaging": "NONE", "encryptionKey": "encryption-key" } }, "expired": 1575916770.0, "truncated": false, "executionId": "arn:aws:codebuild:us-west-2:123456789012:build/name-of-build-project:2c254862-ddf6-4831-a53f-6839a73829c1", "type": "TEST", "arn": "report-arn", "testSummary": { "durationInNanoSeconds": 6657770, "total": 11, "statusCounts": { "FAILED": 3, "SKIPPED": 7, "ERROR": 0, "SUCCEEDED": 1, "UNKNOWN": 0 } } } ], "reportsNotFound": []}

4. Führen Sie den folgenden Befehl aus, um Informationen zu Testfällen für Ihren Bericht aufzulisten.Geben Sie für --report-arn den ARN Ihres Berichts an. Für die optionale --filter Parameter,Sie können ein Statusergebnis angeben (SUCCEEDED, FAILED, SKIPPED, ERROR, oder UNKNOWN).

API-Version 2016-10-06111

Page 119: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker im benutzerdefinierten Image – Beispiel

aws codebuild describe-test-cases \ --report-arn report-arn \ --filter status=SUCCEEDED|FAILED|SKIPPED|ERROR|UNKNOWN \ --region your-region

Die Ausgabe sieht wie folgt aus.

{ "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" } ]}

Docker im benutzerdefinierten Image – Beispiel fürCodeBuildIn diesem Beispiel wird ein Docker-Image mit AWS CodeBuild und einem benutzerdefinierten Docker-Build-Image (docker:dind in Docker-Hub) erstellt und ausgeführt.

Informationen zum alternativen Erstellen eines Docker-Image mit einem von CodeBuild-bereitgestelltenBuild-Image mit Docker-Support finden Sie unter Docker-Beispiel (p. 114).

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für CodeBuild- und AWS-Ressourcen sowie Aktionen in Verbindung mit AmazonS3, AWS KMS und CloudWatch Logs. Weitere Informationen finden Sie unter CodeBuild-Preise,Amazon S3-Preise, AWS Key Management Service-Preise und Amazon CloudWatch-Preise.

Themen• Ausführen des Beispiels (p. 113)• Verzeichnisstruktur (p. 113)• Files (p. 114)• Zugehörige Ressourcen (p. 58)

API-Version 2016-10-06112

Page 120: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker im benutzerdefinierten Image – Beispiel

Ausführen des BeispielsSo führen Sie das Beispiel aus

1. Erstellen Sie die Dateien entsprechend der Beschreibung in den Abschnitten zu„Verzeichnisstrukturen“ und „Dateien“ dieses Themas. Laden Sie diese anschließend in einen S3-Empfangs-Bucket oder ein AWS CodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Laden Sie nicht (root directory name) hoch, sondern nur die Dateien in (rootdirectory name).Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen,die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie(root directory name) nicht zur ZIP-Datei hinzu, sondern nur die Dateien in (rootdirectory name).

2. Erstellen Sie ein Build-Projekt, führen Sie den Build aus und lassen Sie zugehörige Build-Informationen anzeigen. Befolgen Sie dazu die Anweisungen unter Direktes Ausführen von AWSCodeBuild (p. 407).

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerCustomImageSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "docker:dind", "computeType": "BUILD_GENERAL1_SMALL", "privilegedMode": true }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

3. Um die Ergebnisse zu sehen, schauen Sie im Protokoll des Erstellers nach der Zeichenfolge Hello,World!. Weitere Informationen finden Sie unter Anzeigen von Build-Details (p. 290).

VerzeichnisstrukturIn diesem Beispiel wird von dieser Verzeichnisstruktur ausgegangen.

(root directory name)

API-Version 2016-10-06113

Page 121: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

|-- buildspec.yml `-- Dockerfile

FilesDie Basis-Image des Betriebssystems in diesem Beispiel ist Ubuntu. Das Beispiel verwendet dieseDateien. Weitere Informationen über die OverlayFS-Speichertreiber, auf die in der Build-Spezifikationsdateiverwiesen wird, finden Sie auf der Docker-Website unter Verwenden des OverlayFS-Speichertreibers.

buildspec.yml (in (root directory name))

version: 0.2

phases: install: commands: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 - timeout 15 sh -c "until docker info; do echo .; sleep 1; done" pre_build: commands: - docker build -t helloworld . build: commands: - docker images - docker run helloworld echo "Hello, World!"

Note

Wenn das Basis-Betriebssystem Alpine Linux ist,fügen Sie in buildspec.yml das Argument -tzu timeout hinzu:

- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

Dockerfile (in (root directory name))

FROM maven:3.3.9-jdk-8 RUN echo "Hello World"

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

Docker-Beispiel für CodeBuildIn diesem Beispiel wird ein Docker-Image als Build-Ausgabe erstellt und dieses Docker-Image wirdanschließend in einem Amazon Elastic Container Registry-Image-Repository (Amazon ECR) bereitgestellt.Sie können dieses Beispiel so anpassen, dass das Docker-Image im Docker Hub bereitgestellt wird.Weitere Informationen finden Sie unter Anpassen des Beispiels zur Übertragung des Images zum DockerHub (p. 119).

API-Version 2016-10-06114

Page 122: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

Informationen zum Erstellen eines Docker-Image mit einem benutzerdefinierten Docker Build-Image(docker:dind im Docker Hub) finden Sie unter Docker im benutzerdefinierten Image – Beispiel (p. 112).

Dieses Beispiel wurde mit einem Verweis auf golang:1.12 getestet.

In diesem Beispiel wird die mehrstufige Builds-Funktion von Docker verwendet, durch die ein Docker-Imageals Build-Ausgabe produziert wird. Anschließend wird das Docker-Image an einen Amazon ECR-Image-Respository übertragen. Mehrstufige Docker-Image-Builds reduzieren die Größe des endgültigen Docker-Image. Weitere Informationen finden Sie unter Use multi-stage builds with Docker.

Important

Durch die Ausführung dieses Beispiels können Kosten für Ihr AWS-Konto anfallen. Dies umfasstmögliche Kosten für AWS CodeBuild und für AWS-Ressourcen sowie Aktionen in Verbindungmit Amazon S3, AWS KMS, CloudWatch Logs und Amazon ECR. Weitere Informationen findenSie unter CodeBuild-Preise, Amazon S3-Preise, AWS Key Management Service-Preise, AmazonCloudWatch-Preise und Amazon Elastic Container Registry-Preise.

Themen• Ausführen des Beispiels (p. 115)• Verzeichnisstruktur (p. 118)• Datei- (p. 118)• Anpassen des Beispiels zur Übertragung des Images zum Docker Hub (p. 119)• Zugehörige Ressourcen (p. 58)

Ausführen des BeispielsSo führen Sie das Beispiel aus

1. Wenn Sie bereits ein Image-Repository in Amazon ECR haben und dieses verwenden möchten,fahren Sie mit Schritt 3 fort. Wenn Sie anderenfalls einen IAM-Benutzer statt eines AWS-Stammkontosoder eines IAM-Administrators für die Arbeit mit Amazon ECR verwenden, fügen Sie dem Benutzerdiese Anweisung (zwischen### BEGIN ADDING STATEMENT HERE ### und ### END ADDINGSTATEMENT HERE ###) hinzu (oder der IAM-Gruppe, der der Benutzer zugeordnet ist). DasVerwenden eines AWS-Stammkontos empfiehlt sich nicht. Diese Anweisung ermöglicht das Erstellenvon Amazon ECR-Repositorys für das Speichern von Docker-Images. Auslassungspunkte (...)werden zur Abkürzung verwendet und weisen auf die Stellen hin, an denen die Anweisung hinzugefügtwird. Entfernen Sie keine Anweisungen und geben Sie die Auslassungspunkte nicht in die Richtlinieein. Weitere Informationen dazu erhalten Sie unter Working with Inline Policies Using the AWSManagement Console im IAM-Benutzerhandbuch.

{ "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "ecr:CreateRepository" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17"}

API-Version 2016-10-06115

Page 123: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

Note

Die IAM-Entität, die diese Richtlinie ändert, muss über die entsprechende Berechtigung inIAM verfügen.

2. Erstellen Sie ein Image-Repository in Amazon ECR. Stellen Sie sicher, dass Sie das Repositoryin derselben AWS-Region erstellen, in der Sie die Build-Umgebung erstellen und den Build-Vorgang ausführen. Weitere Informationen finden Sie unter Creating a repository im AmazonECR-Benutzerhandbuch. Der Name dieses Repositorys muss mit dem Namen des Repositorysübereinstimmen, den Sie zu einem späteren Zeitpunkt in diesem Verfahren festlegen und der durch dieIMAGE_REPO_NAME-Umgebungsvariable dargestellt wird.

3. Fügen Sie diese Anweisung (zwischen ### BEGIN ADDING STATEMENT HERE ### und ###END ADDING STATEMENT HERE ###) der Richtlinie hinzu, die Sie der AWS CodeBuild-Servicerolleangefügt haben. Diese Anweisung ermöglicht CodeBuild, Docker-Images in die Amazon ECR-Repositorys hochzuladen. Auslassungspunkte (...) werden zur Abkürzung verwendet und weisenauf die Stellen hin, an denen die Anweisung hinzugefügt wird. Entfernen Sie keine Anweisungen undgeben Sie die Auslassungspunkte nicht in die Richtlinie ein.

{ "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:GetAuthorizationToken", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17"}

Note

Die IAM-Entität, die diese Richtlinie ändert, muss über die entsprechende Berechtigung inIAM verfügen.

4. Erstellen Sie die Dateien entsprechend der Beschreibung in den Abschnitten zu„Verzeichnisstrukturen“ und „Dateien“ dieses Themas. Laden Sie diese anschließend in einen S3-Empfangs-Bucket oder ein AWS CodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Laden Sie nicht (root directory name) hoch, sondern nur die Dateien in (rootdirectory name).Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen,die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie(root directory name) nicht zur ZIP-Datei hinzu, sondern nur die Dateien in (rootdirectory name).

5. Befolgen Sie die Schritte in Direktes Ausführen von CodeBuild (p. 407), um ein Build-Projekt zuerstellen, den Build auszuführen und die Build-Informationen anzuzeigen.

Wenn Sie die Konsole verwenden, um Ihr Projekt zu erstellen:

API-Version 2016-10-06116

Page 124: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

a. Wählen Sie für Operating system (Betriebssystem) die Option Ubuntu.b. Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.c. Wählen Sie für Image (Abbild) die Option aws/codebuild/standard:4.0.d. Da Sie dieses Build-Projekt zum Erstellen eines Docker-Images verwenden, wählen Sie Privileged

(Privilegiert) aus.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte.Weitere Informationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen aufder Docker-Docs-Website.

e. Fügen Sie die folgenden Umgebungsvariablen hinzu:

• AWS_DEFAULT_REGION mit einem Wert für region-ID• AWS_ACCOUNT_ID mit einem Wert für account-ID• IMAGE_TAG mit dem Wert „Latest (Aktuell)“• IMAGE_REPO_NAME mit einem Wert für Amazon-ECR-repo-name

Wenn Sie das Build-Projekt mit der AWS CLI erstellen, sieht die Eingabe im JSON-Format für denBefehl create-project möglicherweise wie folgt aus. (Ersetzen Sie die Platzhalter durch Ihreeigenen Werte.)

{ "name": "sample-docker-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL", "environmentVariables": [ { "name": "AWS_DEFAULT_REGION", "value": "region-ID" }, { "name": "AWS_ACCOUNT_ID", "value": "account-ID" }, { "name": "IMAGE_REPO_NAME", "value": "Amazon-ECR-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ], "privilegedMode": true }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"

API-Version 2016-10-06117

Page 125: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

}

6. Bestätigen, dass CodeBuild das Docker-Image erfolgreich in das Repository übertragen hat:

1. Öffnen Sie die Amazon ECR-Konsole unter https://console.aws.amazon.com/ecr/.2. Wählen Sie den Namen des Repositorys aus. Das Bild muss in der Spalte Image Tag (Image-Tag)

aufgelistet werden.

VerzeichnisstrukturIn diesem Beispiel wird von dieser Verzeichnisstruktur ausgegangen.

(root directory name) |-- buildspec.yml `-- Dockerfile

Datei-In diesem Beispiel werden diese Dateien verwendet.

buildspec.yml (in (root directory name))

Note

Wenn Sie eine Version von Docker vor 17.06 verwenden, entfernen Sie die --no-include-email-Option.

version: 0.2

phases: pre_build: commands: - echo Logging in to Amazon ECR... - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION) build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG

Dockerfile (in (root directory name))

FROM golang:1.12-alpine AS build#Install gitRUN apk add --no-cache git#Get the hello world package from a GitHub repositoryRUN go get github.com/golang/example/helloWORKDIR /go/src/github.com/golang/example/hello# Build the project and send the output to /bin/HelloWorld RUN go build -o /bin/HelloWorld

API-Version 2016-10-06118

Page 126: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

FROM golang:1.12-alpine#Copy the build's output binary from the previous build containerCOPY --from=build /bin/HelloWorld /bin/HelloWorldENTRYPOINT ["/bin/HelloWorld"]

Anpassen des Beispiels zur Übertragung des Images zum DockerHubSie können den Code des Beispiels so bearbeiten, dass das Docker-Image in den Docker Hub übertragenwird statt zu Amazon ECR.

Note

Wenn Sie eine Version von Docker vor 17.06 verwenden, entfernen Sie die --no-include-email-Option.

1. Ersetzen Sie diese Amazon ECR-spezifischen Codezeilen in der Datei buildspec.yml:

... pre_build: commands: - echo Logging in to Amazon ECR... - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION) build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG...

Durch die folgenden Docker Hub-spezifischen Codezeilen:

... pre_build: commands: - echo Logging in to Docker Hub... # Type the command to log in to your Docker Hub account here. build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $IMAGE_REPO_NAME:$IMAGE_TAG...

2. Laden Sie den bearbeiteten Code in einen S3-Empfangs-Bucket oder in ein AWS CodeCommit-,GitHub- oder Bitbucket-Repository hoch.

API-Version 2016-10-06119

Page 127: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDocker-Beispiel

Important

Laden Sie nicht (root directory name) hoch, sondern nur die Dateien in (rootdirectory name).Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen,die die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie(root directory name) nicht zur ZIP-Datei hinzu, sondern nur die Dateien in (rootdirectory name).

3. Ersetzen Sie diese Codezeilen aus der JSON-formatierten Eingabe des create-project-Befehls:

... "environmentVariables": [ { "name": "AWS_DEFAULT_REGION", "value": "region-ID" }, { "name": "AWS_ACCOUNT_ID", "value": "account-ID" }, { "name": "IMAGE_REPO_NAME", "value": "Amazon-ECR-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ]...

Durch diese Codezeilen:

... "environmentVariables": [ { "name": "IMAGE_REPO_NAME", "value": "your-Docker-Hub-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ]...

4. Folgen Sie den Anweisungen unter Direktes Ausführen von CodeBuild (p. 407), um eine Build-Umgebung zu erstellen, den Build auszuführen und zugehörige Build-Informationen anzuzeigen.

5. Vergewissern Sie sich, dass AWS CodeBuild das Docker-Image erfolgreich in das Repositoryübertragen hat. Melden Sie sich beim Docker Hub an, wechseln Sie zum Repository wählen Sie dieRegisterkarte Tags aus Das latest-Tag sollte einen aktuellen Last Updated-Wert enthalten.

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).

API-Version 2016-10-06120

Page 128: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

GitHub Enterprise Server-Beispiel für CodeBuildAWS CodeBuild unterstützt GitHub Enterprise Server als Quell-Repository. In diesem Beispiel wirdbeschrieben, wie Sie Ihre CodeBuild-Projekte einrichten, wenn Ihr GitHub Enterprise Server-Repositoryein Zertifikat installiert hat. Außerdem wird erklärt, wie Sie Webhooks aktivieren, sodass CodeBuild denQuellcode jedes Mal neu erstellt, wenn eine Code-Änderung an Ihr privates GitHub Enterprise Server-Repository per Push übertragen wird.

Voraussetzungen1. Generieren Sie ein persönliches Zugriffstoken für Ihr CodeBuild Projekt. Wir empfehlen, dass Sie einen

neuen GitHub Enterprise-Benutzer erstellen und ein persönliches Zugriffstoken für diesen Benutzergenerieren. Kopieren Sie es in Ihre Zwischenablage, sodass es verwendet werden kann, wenn Sie IhrCodeBuild-Projekt erstellen. Weitere Informationen finden Sie unter Creating a personal access token forthe command line auf der GitHub Help-Website.

Bei der Erstellung der persönlichen Zugriffstoken nehmen Sie den repo-Umfang in die Definition auf.

2. Laden Sie Ihr Zertifikat über GitHub Enterprise Server herunter. CodeBuild verwendet das Zertifikat, umeine vertrauenswürdige SSL-Verbindung mit dem Repository herzustellen.

Linux/macOS-Clients:

Führen Sie in einem Terminalfenster den folgenden Befehl aus:

echo -n | openssl s_client -connect HOST:PORTNUMBER \ | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem

Ersetzen Sie die Platzhalter im Befehl durch die folgenden Werte:

HOST. Die IP-Adresse Ihres GitHub Enterprise Server-Repository.

PORTNUMBER. Die Port-Nummer, die Sie für die Verbindung verwenden (z. B. 443).

folder. Der Ordner, in den Sie das Zertifikat heruntergeladen haben.

filename. Der Dateiname Ihrer Zertifikatdatei.

Important

Speichern Sie das Zertifikat als .pem-Datei.

Windows-Clients:

Laden Sie Ihr Zertifikat von GitHub Enterprise Server mit Ihrem Browser herunter. Wenn Sie dieZertifikatdetails der Website sehen, wählen Sie das Vorhängeschlosssymbol. Weitere Informationen zumExportieren des Zertifikats finden Sie in der Dokumentation zu Ihrem Browser.

API-Version 2016-10-06121

Page 129: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

Important

Speichern Sie das Zertifikat als .pem-Datei.3. Laden Sie Ihre Zertifikatdatei in einen S3-Bucket hoch. Weitere Informationen zum Erstellen eines

S3-Buckets finden Sie unter Erstellen eines S3-Buckets. Weitere Informationen zum Hochladen vonObjekten in einen S3-Bucket finden Sie unter Dateien und Ordner in einen Bucket hochladen.

Note

Dieser Bucket muss sich in derselben AWS-Region wie Ihre Builds befinden. Wenn Siebeispielsweise CodeBuild anweisen, einen Build in der Region USA Ost (Ohio) auszuführen,muss sich der Bucket ebenfalls in der Region USA Ost (Ohio) befinden.

Erstellen ein Build-Projekts mit GitHub Enterprise Server alsQuell-Repository und Aktivieren von Webhooks (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

3. Geben Sie auf der Seite Create build project (Build-Projekt erstellen) unter Project Configuration(Projektkonfiguration) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen inallen AWS-Konten eindeutig sein. Sie können optional auch eine Beschreibung für das Build-Projekteingeben, um anderen Benutzern seinen Zweck mitzuteilen.

4. Wählen Sie unter Source (Quelle) für Source provider (Quellanbieter) die Option GitHub Enterpriseaus.

• Für Personal Access Token fügen Sie das Token ein, das Sie in Ihre Zwischenablage kopiert haben,und wählen Save Token. In Repository URL (Repository-URL) geben Sie die URL für Ihr GitHubEnterprise Server-Repository ein.

Note

Sie müssen das private Zugriffstoken nur einmal eingeben und speichern. Alle zukünftigenAWS CodeBuild-Projekte verwenden dieses Token.

• Geben Sie für Repository URL (Repository-URL) den Pfad zu Ihrem Repository ein, einschließlichdes Namens des Repositorys.

• Erweitern Sie Additional configuration (Zusätzliche Konfiguration).• Wählen Sie Rebuild every time a code change is pushed to this repository (Bei jeder

Veröffentlichung einer Codeänderung in diesem Repository neu erstellen) aus, um bei jederVeröffentlichung einer Codeänderung in diesem Repository einen neuen Build zu erstellen.

• Wählen Sie Enable insecure SSL (Unsicheres SSL aktivieren), um SSL-Warnungen zu ignorieren,während Sie eine Verbindung zu Ihrem GitHub Enterprise Server-Projekt-Repository einrichten.

Note

Wir empfehlen, dass Sie Enable insecure SSL (Unsicheres SSL aktivieren) nur für Testsverwenden. Es sollte nicht in einer Produktionsumgebung verwendet werden.

API-Version 2016-10-06122

Page 130: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

5. In Environment (Umgebung):

Führen Sie für Environment image (Umgebungs-Image) einen der folgenden Schritte aus:

API-Version 2016-10-06123

Page 131: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

• Um ein Docker-Image zu verwenden, das von AWS CodeBuild verwaltet wird, wählen Sie Managedimage (Verwaltetes Image) aus und wählen Sie anschließend die gewünschten Optionen fürOperating system (Betriebssystem), Runtime (Laufzeit), Image und Image version (Image-Version)aus. Treffen Sie eine Auswahl unter Environment type (Umgebungstyp), sofern verfügbar.

• Wenn Sie ein anderes Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) dieOption ARM, Linux, Linux GPU, or Windows aus. Wenn Sie für External registry URL (ExterneRegistrierungs-URL) die Option Other registry (Andere Registrierung) auswählen, geben Sie denNamen und das Tag des Docker-Image in Docker Hub im Format docker repository/dockerimage name ein. Wenn Sie Amazon ECR auswählen, verwenden Sie Amazon ECR repository undAmazon ECR image zur Auswahl des Docker-Images im AWS-Konto.

• Wenn Sie ein privates Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) die OptionARM, Linux, Linux GPU, or Windows aus. Wählen Sie unter Image registry (Abbildregistrierung)die Option Other registry (Andere Registrierung) aus und geben Sie dann den ARN derAnmeldeinformationen für Ihr privates Docker-Image ein. Die Anmeldeinformationen müssen vonSecrets Manager erstellt werden. Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.

6. Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:

• Wenn Sie keine CodeBuild-Servicerolle haben, wählen Sie New service role (Neue Servicerolle) aus.Geben Sie unter Role Name (Rollenname) einen Namen für die neue Rolle ein.

• Wenn Sie bereits eine CodeBuild-Servicerolle haben, wählen Sie Existing service role (VorhandeneServicerolle) aus. Wählen Sie unter Role ARN (Rollen-ARN) die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

7. Erweitern Sie Additional configuration (Zusätzliche Konfiguration).

Wenn Sie möchten, dass CodeBuild mit Ihrer VPC arbeitet, gehen Sie wie folgt vor:

• Wählen Sie für VPC die VPC-ID, die CodeBuild verwendet.• Wählen Sie für VPC Subnets (VPC-Subnetze) die Subnetze aus, die von CodeBuild verwendete

Ressourcen enthalten.• Wählen Sie für VPC Security Groups (VPC-Sicherheitsgruppen) die Sicherheitsgruppen aus, die

CodeBuild verwendet, um den Zugriff auf Ressourcen in den VPCs zu erlauben.

Weitere Informationen finden Sie unter Verwenden von AWS CodeBuild mit Amazon Virtual PrivateCloud (p. 188).

8. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden), um die buildspec.yml-Datei imQuellcode-Stammverzeichnis zu verwenden.

• Wählen Sie Insert build commands (Build-Befehle einfügen) aus, um über die Konsole Build-Befehleeinzugeben.

API-Version 2016-10-06124

Page 132: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).9. Führen Sie unter Artifacts (Artefakte) für Type (Typ) einen der folgenden Schritte aus:

• Wenn keine Build-Ausgabeartefakte erstellt werden sollen, klicken Sie auf die Option No artifacts(Keine Artefakte).

• Zum Speichern der Build-Ausgabe in einem S3-Bucket wählen Sie Amazon S3 aus und gehen dannwie folgt vor:• Lassen Sie Name leer, wenn Sie den Projektnamen für die ZIP-Datei mit der Build-Ausgabe

verwenden möchten. Geben Sie andernfalls den Namen ein. Standardmäßig ist der Artefaktnameder Projektname. Wenn Sie einen anderen Namen verwenden möchten, geben Sie diesen in dasFeld für den Artefaktnamen ein. Wenn Sie eine ZIP-Datei ausgeben möchten, schließen Sie dieZIP-Erweiterung mit ein.

• Wählen Sie für Bucket name den Namen des Ausgabe-Buckets aus.• Wenn Sie in diesem Vorgang zuvor die Option Insert build commands (Build-Befehle einfügen)

verwendet haben, geben Sie für Output files (Ausgabedateien) die Speicherorte der Build-Dateienein, die in der ZIP-Datei oder in dem Ordner für die Build-Ausgabe enthalten sein sollen. Beimehreren Speicherorten trennen Sie die einzelnen Speicherorte durch ein Komma, (wie z. B.appspec.yml, target/my-app.jar). Weitere Informationen finden Sie in der Beschreibungvon files in Syntax der Build-Spezifikation (p. 151).

10. Wählen Sie für Cache type (Cache-Typ) eine der folgenden Optionen aus:

• Wenn Sie keinen Cache verwenden möchten, wählen Sie No cache.• Wenn Sie einen Amazon S3-Cache verwenden möchten, wählen Sie Amazon S3 aus und gehen Sie

dann wie folgt vor:• Wählen Sie für Bucket den Namen des S3-Buckets, in dem der Cache gespeichert wird.• (Optional) Geben Sie für Cache path prefix (Cache-Pfadpräfix) ein Amazon S3-Pfadpräfix ein. Der

Wert für Cache path prefix (Cache-Pfadpräfix) ist mit einem Verzeichnisnamen vergleichbar. Erermöglicht Ihnen das Speichern des Cache in demselben Verzeichnis eines Buckets.

Important

Fügen Sie am Ende des Pfadpräfix keinen abschließenden Schrägstrich (/) an.• Wenn Sie einen lokalen Cache verwenden möchten, wählen Sie Local (Lokal) und dann mindestens

einen lokalen Cache-Modus aus.

Note

Der Modus Docker layer cache (Docker-Ebenen-Cache) ist nur für Linux verfügbar.Wenn Sie diesen Modus auswählen, muss Ihr Projekt im privilegierten Modus ausgeführtwerden. Die Umgebungstypen ARM_CONTAINER und LINUX_GPU_CONTAINER und derDatenverarbeitungstyp BUILD_GENERAL1_2XLARGE unterstützen nicht die Verwendungeines lokalen Cache.

Durch die Verwendung eines Caches wird eine erhebliche Ersparnis bei der Erstellungszeiterzielt, da wiederverwendbare Teile der Build-Umgebung im Cache gespeichert und über Buildshinweg verwendet werden. Weitere Informationen über die Angabe eines Cache in der Build-Spezifikationsdatei finden Sie unter Syntax der Build-Spezifikation (p. 151). Weitere Informationenzum Caching finden Sie unter Build-Caching in AWS CodeBuild (p. 235).

11. Wählen Sie Create build project (Build-Projekt erstellen) aus. Wählen Sie auf der Build-Projekt-SeiteStart build (Build starten) aus.

12. Wenn Sie unter Source (Quelle) Webhooks aktiviert haben, wird das Dialogfeld Create webhook(Webhook erstellen) geöffnet und es werden Werte für Payload URL (Nutzlast-URL) und Secret(Geheim) angezeigt.

API-Version 2016-10-06125

Page 133: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub Enterprise Server-Beispiel

Important

Das Dialogfeld Create webhook wird nur einmal angezeigt. Kopieren Sie die Nutzlast-URL und den geheimen Schlüssel. Sie brauchen sie, wenn Sie einen Webhook in GitHubEnterprise Server hinzufügen.Wenn Sie eine Nutzlast-URL und den geheimen Schlüssels erneut generieren müssen,müssen Sie zuerst den Webhook aus Ihrem GitHub Enterprise Server-Repository löschen.Deaktivieren Sie in Ihrem CodeBuild-Projekt das Kontrollkästchen Webhook und wählen SieSave (Speichern) aus. Sie können dann ein CodeBuild-Projekt erstellen oder aktualisieren,wenn das Kontrollkästchen Webhook (Webhook) aktiviert ist. Das Dialogfeld Create webhookwird erneut angezeigt.

13. Wählen Sie in GitHub Enterprise Server das Repository aus, in dem Ihr CodeBuild-Projekt gespeichertist.

14. Wählen Sie Settings (Einstellungen), Hooks & services (Hooks und Services) und anschließend Addwebhook (Webhook hinzufügen) aus.

15. Geben Sie die Nutzlast-URL und den geheimen Schlüssels ein, übernehmen Sie dieStandardeinstellungen für die anderen Felder, und wählen Sie dann Add webhook.

16. Kehren Sie zu Ihrem CodeBuild-Projekt zurück. Schließen Sie das Dialogfeld Create webhook undwählen Sie Start build.

API-Version 2016-10-06126

Page 134: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer GitHub-Pull-

Anfrage und eines Webhook-Filters

Beispiel einer GitHub-Pull-Anfrage und einesWebhook-Filters für CodeBuildAWS CodeBuild unterstützt jetzt Webhooks, sofern GitHub das Quell-Repository ist. Das bedeutet, dassfür ein CodeBuild-Build-Projekt, dessen Quellcode in einem GitHub-Repository gespeichert ist, Webhooksverwendet werden können, um den Quellcode jedes Mal neu zu erstellen, sobald eine Code-Änderung andas Repository übergeben wird.

Note

Wir empfehlen, dass Sie eine Filtergruppe verwenden, um anzugeben, welche GitHub-Benutzereinen Build in einem öffentlichen Repository auslösen können. Dies kann verhindern, dass einBenutzer einen unerwarteten Build auslöst. Weitere Informationen finden Sie im GitHub-Webhook-Ereignisse (p. 251).

Erstellen Sie ein Build-Projekt mit GitHub als Quell-Repositoryund aktivieren Sie Webhooks (Konsole).1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

3. Wählen Sie Create build project (Build-Projekt erstellen) aus.4. In Project configuration (Projektkonfiguration):

Project name

Geben Sie einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allenAWS-Konten eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projektshinzufügen, um anderen Benutzern zu helfen, zu verstehen, was dieses Projekt für verwendetwird.

5. In Source (Quelle):

Quellanbieter

Auswählen Veranstaltungsraum "GitHub". Folgen Sie den Anweisungen, um sich mit GitHub zuverbinden (oder erneut neu zu verbinden) und wählen Sie Authorize (Autorisieren) aus.

Ablage

Wählen Sie Repository in my GitHub account (Repository in meinem GitHub-Konto) aus.GitHub-Repository

Geben Sie die URL für Ihr GitHub-Repository ein.6. Eingebucht Webhook-Ereignisse der primären Quelle, wählen Sie die folgenden. Dieser Abschnitt ist

nur verfügbar, wenn Sie Repository in meinem GitHub-Konto im vorherigen Schritt.

1. Wählen Sie beim Erstellen Ihres Projekts Rebuild every time a code change is pushed to thisrepository (Erneut erstellen, wenn eine Codeänderung an dieses Repository übergeben wird) aus.

2. Wählen Sie unter Event type (Ereignistyp) eines oder mehrere Ereignisse aus.3. Wenn Sie Fälle filtern möchten, in denen ein Ereignis einen Build auslöst, fügen Sie unter Start a

build under these conditions (Unter diesen Bedingungen Build starten) einen oder mehrere optionaleFilter hinzu.

API-Version 2016-10-06127

Page 135: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer GitHub-Pull-

Anfrage und eines Webhook-Filters

4. Wenn Sie Fälle filtern möchten, in denen kein Ereignis ausgelöst wird, fügen Sie unter Don't start abuild under these conditions (Unter diesen Bedingungen keinen Build starten) einen oder mehrereoptionale Filter hinzu.

5. Auswählen Filtergruppe hinzufügen um bei Bedarf eine weitere Filtergruppe hinzuzufügen.7. In Environment (Umgebung):

Umgebungsbild

Wählen Sie eine der folgenden Optionen aus:So verwenden Sie ein von verwaltetes Docker-Image AWS CodeBuild:

Auswählen Verwaltetes Bildund treffen Sie dann eine Auswahl aus Betriebssystem, , undSie haben die Möglichkeit Laufzeit(en), , und Sie haben die Möglichkeit Abbildung, undBildausführung. Treffen Sie eine Auswahl unter Environment type (Umgebungstyp), sofernverfügbar.

So verwenden Sie ein anderes Docker-Image:

Auswählen Benutzerdefiniertes Bild. Wählen Sie für Environment type (Umgebungstyp) dieOption ARM, Linux, Linux GPU, or Windows aus. Wenn Sie sich für Sonstiges Register, fürURL der externen Registrierung, geben Sie den Namen und das Tag des Docker-Imagesin Docker Hub im Format ein. docker repository/docker image name. (z. B. WennSie sich für Amazon ECR, verwenden Amazon ECR Aufbewahrungsort und Amazon ECRAbbildung um das Docker-Image in Ihrem AWS -Konto.

So verwenden Sie ein privates Docker-Image:

Auswählen Benutzerdefiniertes Bild. Wählen Sie für Environment type (Umgebungstyp)die Option ARM, Linux, Linux GPU, or Windows aus. Wählen Sie unter Image registry(Abbildregistrierung) die Option Other registry (Andere Registrierung) aus und gebenSie dann den ARN der Anmeldeinformationen für Ihr privates Docker-Image ein.Die Anmeldeinformationen müssen von Secrets Manager erstellt werden. WeitereInformationen finden Sie unter Was ist AWS Secrets Manager? im AWS Secrets Manager-Benutzerhandbuch.

Service – -Rolle

Wählen Sie eine der folgenden Optionen aus:• Wenn Sie keine CodeBuild Servicerolle, wählen Sie Neue Servicerolle. Eingebucht Rollenname,

geben Sie einen Namen für die neue Rolle ein.• Wenn Sie eine CodeBuild Servicerolle, wählen Sie Bestehende Servicerolle. Eingebucht Rollen-

ARNwählen Sie die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsoleverwenden, um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wirddie Rolle so aktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. EineServicerolle kann in bis zu zehn Build-Projekten verwendet werden.

8. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden), um die buildspec.yml-Datei imQuellcode-Stammverzeichnis zu verwenden.

• Wählen Sie Insert build commands (Build-Befehle einfügen) aus, um über die Konsole Build-Befehleeinzugeben.

API-Version 2016-10-06128

Page 136: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer GitHub-Pull-

Anfrage und eines Webhook-Filters

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).9. In Artifacts (Artefakte):

Typ

Wählen Sie eine der folgenden Optionen aus:• Wenn keine Build-Ausgabeartefakte erstellt werden sollen, klicken Sie auf die Option No

artifacts (Keine Artefakte).• Zum Speichern der Build-Ausgabe in einem S3-Bucket wählen Sie Amazon S3 aus und gehen

dann wie folgt vor:• Lassen Sie Name leer, wenn Sie den Projektnamen für die ZIP-Datei mit der Build-Ausgabe

verwenden möchten. Geben Sie andernfalls den Namen ein. Standardmäßig ist derArtefaktname der Projektname. Wenn Sie einen anderen Namen verwenden möchten,geben Sie diesen in das Feld für den Artefaktnamen ein. Wenn Sie eine ZIP-Datei ausgebenmöchten, schließen Sie die ZIP-Erweiterung mit ein.

• Wählen Sie für Bucket name den Namen des Ausgabe-Buckets aus.• Wenn Sie in diesem Vorgang zuvor die Option Insert build commands (Build-Befehle

einfügen) verwendet haben, geben Sie für Output files (Ausgabedateien) die Speicherorte derBuild-Dateien ein, die in der ZIP-Datei oder in dem Ordner für die Build-Ausgabe enthaltensein sollen. Bei mehreren Speicherorten trennen Sie die einzelnen Speicherorte durch einKomma, (wie z. B. appspec.yml, target/my-app.jar). Weitere Informationen findenSie in der Beschreibung von files in Syntax der Build-Spezifikation (p. 151).

Zusätzliche Konfiguration

Erweitern Sie Additional configuration (Zusätzliche Einstellungen) und legen Sie dieentsprechenden Optionen fest.

10. Wählen Sie Create build project (Build-Projekt erstellen) aus. Klicken Sie auf der Seite Review(Überprüfen) auf Start build (Build starten), um den Build auszuführen.

Verifizierungsprüfungen1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Führen Sie eine der folgenden Aufgaben aus:

• Klicken Sie auf den Link des Build-Projekts mit Webhooks, das Sie kontrollieren möchten, undklicken Sie dann auf Build details (Build-Details).

• Klicken Sie auf die Schaltfläche neben dem Build-Projekt mit den Webhooks, die Sie überprüfenmöchten, und wählen Sie Details anzeigenund wählen Sie dann die Details erstellen Registerkarte.

4. Eingebucht Webhook-Ereignisse der primären Quelle, wählen Sie die Webhook (Web-Haken) URL-Verknüpfung.

5. In Ihrem GitHub-Repository auf der Einstellungen Seite, unter Web-Haken, überprüfen Sie, ob Pull-Anforderungen und Drückt sind ausgewählt.

6. In Ihren GitHub-Profileinstellungen sollten Sie unter Personal settings (Persönliche Einstellungen),Applications (Anwendungen), Authorized OAuth Apps (Autorisierte OAuth-Apps) sehen, dass IhreAnwendung für den Zugriff auf die von Ihnen ausgewählte AWS-Region autorisiert wurde.

API-Version 2016-10-06129

Page 137: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHosten der Build-Ausgabe in einem S3-Bucket

Erstellen einer statischen Website mit in einem S3-Bucket gehosteter Build-AusgabeSie können die Verschlüsselung von Artefakten in einem Build deaktivieren. Dies ist sinnvoll, damitSie Artefakte an einem Ort veröffentlichen können, der zum Hosten einer Website konfiguriert ist.(Sie können verschlüsselte Artefakte nicht veröffentlichen.) Dieses Beispiel zeigt, wie Sie Webhooksverwenden können, um eine Build-Erstellung auszulösen und die Build-Artefakte in einem S3-Bucket zuveröffentlichen, der als Website konfiguriert wurde.

1. Befolgen Sie die Anleitung unter Einrichten einer statischen Website, um einen S3-Bucket als Websitezu konfigurieren.

2. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.3. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

4. Geben Sie auf der Seite Create build project (Build-Projekt erstellen) unter Project Configuration(Projektkonfiguration) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen inallen AWS-Konten eindeutig sein. Sie können optional auch eine Beschreibung für das Build-Projekteingeben, um anderen Benutzern seinen Zweck mitzuteilen.

5. Wählen Sie unter Source (Quelle) für Source provider (Quellanbieter) die Option GitHub aus. FolgenSie den Anweisungen, um sich mit GitHub zu verbinden (oder erneut neu zu verbinden) und wählenSie Authorize (Autorisieren) aus.

Wählen Sie für Webhook die Option Rebuild every time a code change is pushed to this repository(Erneut erstellen, wenn eine Codeänderung an diesen Repository übergeben wird) aus. Sie könnendieses Kontrollkästchen nur aktivieren, wenn Sie Use a repository in my account (Ein Repository inmeinem Konto verwenden) ausgewählt haben.

API-Version 2016-10-06130

Page 138: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHosten der Build-Ausgabe in einem S3-Bucket

6. In Environment (Umgebung):

Führen Sie für Environment image (Umgebungs-Image) einen der folgenden Schritte aus:

• Um ein Docker-Image zu verwenden, das von AWS CodeBuild verwaltet wird, wählen Sie Managedimage (Verwaltetes Image) aus und wählen Sie anschließend die gewünschten Optionen fürOperating system (Betriebssystem), Runtime (Laufzeit), Image und Image version (Image-Version)aus. Treffen Sie eine Auswahl unter Environment type (Umgebungstyp), sofern verfügbar.

• Wenn Sie ein anderes Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) dieOption ARM, Linux, Linux GPU, or Windows aus. Wenn Sie für External registry URL (ExterneRegistrierungs-URL) die Option Other registry (Andere Registrierung) auswählen, geben Sie denNamen und das Tag des Docker-Image in Docker Hub im Format docker repository/dockerimage name ein. Wenn Sie Amazon ECR auswählen, verwenden Sie Amazon ECR repository undAmazon ECR image zur Auswahl des Docker-Images im AWS-Konto.

• Wenn Sie ein privates Docker-Image verwenden möchten, wählen Sie Custom image(Benutzerdefiniertes Image) aus. Wählen Sie für Environment type (Umgebungstyp) die OptionARM, Linux, Linux GPU, or Windows aus. Wählen Sie unter Image registry (Abbildregistrierung)die Option Other registry (Andere Registrierung) aus und geben Sie dann den ARN derAnmeldeinformationen für Ihr privates Docker-Image ein. Die Anmeldeinformationen müssen vonSecrets Manager erstellt werden. Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.

API-Version 2016-10-06131

Page 139: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

7. Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:

• Wenn Sie keine CodeBuild-Servicerolle haben, wählen Sie New service role (Neue Servicerolle) aus.Geben Sie unter Role Name (Rollenname) einen Namen für die neue Rolle ein.

• Wenn Sie bereits eine CodeBuild-Servicerolle haben, wählen Sie Existing service role (VorhandeneServicerolle) aus. Wählen Sie unter Role ARN (Rollen-ARN) die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

8. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden), um die buildspec.yml-Datei imQuellcode-Stammverzeichnis zu verwenden.

• Wählen Sie Insert build commands (Build-Befehle einfügen) aus, um über die Konsole Build-Befehleeinzugeben.

Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).9. Wählen Sie unter Artifacts (Artefakte) für Type (Typ) Amazon S3 zum Speichern der Build-Ausgabe in

einem S3-Bucket aus.10. Wählen Sie für Bucket name (Bucket-Name) den Namen des S3-Buckets, den Sie in Schritt 1 als

Website konfiguriert haben.11. Wenn Sie unter Environment (Umgebung) den Wert Insert build commands (Build-Befehle einfügen)

ausgewählt haben, geben Sie für Output files (Ausgabedateien) die Speicherorte der Dateiendes Builds ein, die in den Ausgabe-Bucket geschrieben werden sollen. Wenn Sie mehr als einenSpeicherort haben, verwenden Sie ein Komma, um jede Position zu trennen (z. B. appspec.yml,target/my-app.jar). Weitere Informationen finden Sie unter Artifacts reference-key in thebuildspec file.

12. Wählen Sie Disable artifacts encryption (Artefaktverschlüsselung deaktivieren) aus.13. Erweitern Sie Additional configuration (Zusätzliche Einstellungen) und wählen Sie die entsprechenden

Optionen.14. Wählen Sie Create build project (Build-Projekt erstellen) aus. Wählen Sie auf der Seite für das

Erstellen des Projekts in Build history (Build-Verlauf) die Option Start build (Build starten) aus, um denBuild auszuführen.

15. (Optional) Folgen Sie den Anweisungen unter Beispiel: Beschleunigen Ihrer Website mit AmazonCloudFront im Amazon S3-Entwicklerhandbuch.

Laufzeitversionen im Build-Spezfikationsdateibeispielfür CodeBuildWenn Sie die Amazon Linux 2-(AL2)-Standardabbildversion 1.0 oder höher oder die Ubuntu-Standardabbildversion 2.0 oder höher verwenden, können Sie im Abschnittruntime-versionsIhrer buildspec-Datei eine oder mehrere Laufzeiten angeben. Dieses Beispiel zeigt Ihnen, wie Sie IhreProjektlaufzeit ändern, mehr als eine Laufzeit angeben und eine Laufzeit angeben können, die voneiner anderen Laufzeit abhängt. Hinweise zu unterstützten Laufzeiten finden Sie unter Von CodeBuildbereitgestellte Docker-Images (p. 175).

API-Version 2016-10-06132

Page 140: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

Note

Wenn Sie Docker in Ihrem Build-Container verwenden, muss Ihr Build im privilegierten Modusausgeführt werden. Weitere Informationen finden Sie unter Ausführen eines Build in AWSCodeBuild (p. 279) und Erstellen eines Build-Projekts in AWS CodeBuild (p. 206).

Aktualisieren Ihrer LaufzeitversionSie können die von Ihrem Projekt verwendete Laufzeit auf eine neue Version umstellen, indem Sie denAbschnitt runtime-versions Build-Spezifikationsdatei aktualisieren. Die folgenden Beispiele zeigen, wieSie Java-Versionen 8 und 11 angeben.

• Ein runtime-versions-Abschnitt, der Version 8 von Java angibt, wenn Sie das Amazon Linux 2-Standardabbild verwenden:

phases: install: runtime-versions: java: corretto8

• Ein runtime-versions-Abschnitt, der Version 11 von Java angibt, wenn Sie das Amazon Linux 2-Standardabbild verwenden:

phases: install: runtime-versions: java: corretto11

• Ein runtime-versions-Abschnitt, der Version 8 von Java angibt, wenn Sie das Ubuntu-Standardabbild 2.0 verwenden:

phases: install: runtime-versions: java: openjdk8

• Ein runtime-versions-Abschnitt, der Version 11 von Java angibt, wenn Sie das Ubuntu-Standardabbild 2.0 verwenden:

phases: install: runtime-versions: java: openjdk11

Die folgenden Beispiele zeigen, wie Sie verschiedene Versionen von Node.js mit dem Ubuntu-Standardabbild 2.0 oder dem Amazon Linux 2-Standardabbild 2.0 angeben:

• Ein runtime-versions-Abschnitt, der Version 8 von mit Node.js angibt:

phases: install: runtime-versions: nodejs: 8

• Ein runtime-versions-Abschnitt, der Version 10 von Node.js angibt:

API-Version 2016-10-06133

Page 141: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

phases: install: runtime-versions: nodejs: 10

Dieses Beispiel zeigt ein Projekt, das mit der Java-Laufzeitversion 8 beginnt und anschließend auf dieJava-Laufzeitversion 10 aktualisiert wird.

1. Befolgen Sie die Schritte 1 und 2 in Erstellen des Quellcodes (p. 75), um einen Quellcode zugenerieren. Ist der Befehl erfolgreich, wird ein Verzeichnis mit dem Namen my-web-app und IhrenQuelldateien erstellt.

2. Erstellen Sie eine Datei mit dem Namen buildspec.yml und dem folgenden Inhalt. Speichern Siedie Datei im Verzeichnis (root directory name)/my-web-app.

version: 0.2

phases: install: runtime-versions: java: corretto8 build: commands: - java -version - mvn packageartifacts: files: - '**/*' base-directory: 'target/my-web-app'

In der Build-Spezifikationsdatei:

• Der Abschnitt runtime-versions gibt an, dass das Projekt die Java-Laufzeitversion 8 verwendet.• Der Befehl - java -version zeigt die Version von Java an, die bei der Ausführung des Projekts

verwendet wird .

Ihre Dateistruktur sollte nun wie folgt aussehen:

(root directory name) -- my-web-app |-- src | `-- main | |-- resources | `-- webapp | |-- WEB-INF | | `-- web.xml | `-- index.jsp |-- buildspec.yml `-- pom.xml

3. Laden Sie die Inhalte des Verzeichnisses my-web-app in einen S3-Empfangs-Bucket oder in einCodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Laden Sie nicht (root directory name) oder (root directory name)/my-web-apphoch, sondern nur die Verzeichnisse und Dateien in (root directory name)/my-web-app.

API-Version 2016-10-06134

Page 142: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen, diedie Verzeichnisstruktur und die Dateien enthält, und diese dann in den Empfangs-Buckethochladen. Fügen Sie nicht (root directory name) oder (root directory name)/my-web-app zur ZIP-Datei hinzu, sondern nur die Verzeichnisse und Dateien in (rootdirectory name)/my-web-app.

4. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.5. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt

(Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279). Übernehmen Sie für alleEinstellungen die Standardwerte, außer für folgende Einstellungen:

• Für Environment (Umgebung):• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (Verwaltetes

Abbild) aus.• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie für Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:3.0 aus.

6. Wählen Sie Start build (Build starten).7. Übernehmen Sie in der Build configuration (Build-Konfiguration) die Standardeinstellungen und wählen

Sie dann Start build (Build starten).8. Überprüfen Sie die Build-Ausgabe unter der Registerkarte Build logs (Build-Protokolle), wenn der Build

abgeschlossen ist. Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

[Container] Date Time Phase is DOWNLOAD_SOURCE[Container] Date Time CODEBUILD_SRC_DIR=/codebuild/output/src460614277/src[Container] Date Time YAML location is /codebuild/output/src460614277/src/buildspec.yml[Container] Date Time Processing environment variables[Container] Date Time Selecting 'java' runtime version 'corretto8' based on manual selections...[Container] Date Time Running command echo "Installing Java version 8 ..."Installing Java version 8 ... [Container] Date Time Running command export JAVA_HOME="$JAVA_8_HOME" [Container] Date Time Running command export JRE_HOME="$JRE_8_HOME" [Container] Date Time Running command export JDK_HOME="$JDK_8_HOME" [Container] Date Time Running command for tool_path in "$JAVA_8_HOME"/bin/* "$JRE_8_HOME"/bin/*;

9. Aktualisieren Sie den Abschnitt runtime-versions mit Java-Version 11:

install: runtime-versions: java: corretto11

10. Nachdem Sie die Änderung gespeichert haben, führen Sie Ihren Build erneut aus und zeigen Sie dieBuild-Ausgabe an. Es sollte angezeigt werden, dass Java Version 11 installiert ist. Die Ausgabe solltefolgendermaßen oder ähnlich aussehen:

[Container] Date Time Phase is DOWNLOAD_SOURCE[Container] Date Time CODEBUILD_SRC_DIR=/codebuild/output/src460614277/src[Container] Date Time YAML location is /codebuild/output/src460614277/src/buildspec.yml[Container] Date Time Processing environment variables[Container] Date Time Selecting 'java' runtime version 'corretto11' based on manual selections... Installing Java version 11 ...

API-Version 2016-10-06135

Page 143: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

[Container] Date Time Running command export JAVA_HOME="$JAVA_11_HOME" [Container] Date Time Running command export JRE_HOME="$JRE_11_HOME" [Container] Date Time Running command export JDK_HOME="$JDK_11_HOME" [Container] Date Time Running command for tool_path in "$JAVA_11_HOME"/bin/* "$JRE_11_HOME"/bin/*;

Geben Sie eine Laufzeitabhängigkeit anIn diesem Beispiel wird gezeigt, wie eine Laufzeit und eine abhängige Laufzeit angegeben werden können.Beispielsweise ist jede unterstützte Android-Laufzeitversion von Java-Laufzeitversion 8 abhängig. WennSie Android-Version 29 angeben und Amazon Linux 2 oder Ubuntu verwenden, können Sie auch Java-Version 8 angeben. Wenn Sie die abhängige Laufzeit nicht angeben, versucht CodeBuild, diese für Sieauszuwählen.

Das Build-Projekt in diesem Beispiel verwendet Quellcode aus dem GitHub-Repository AWS Samples. DerQuellcode verwendet die Laufzeit von Android Version 28 und das Build-Projekt verwendet Amazon Linux2. Daher gibt die buildspec auch die Java Version 8 an.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt

(Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279). Übernehmen Sie für alleEinstellungen die Standardwerte, außer für folgende Einstellungen:

• Für Environment (Umgebung):• Wählen Sie für Source provider (Quellanbieter) die Option GitHub aus.• Wählen Sie für Repository (Repository) die Option Public Repository (öffentliche Repository) aus.• Geben Sie als Repository URL (Repository-URL) die URL https://github.com/aws-samples/aws-mobile-android-notes-tutorial ein.

• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (VerwaltetesAbbild) aus.

• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie für Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:3.0 aus.

3. Wählen Sie unter Build specification (Build-Spezifikationen) die Option Insert build commands (Build-Befehle einfügen) und anschließend Switch to editor (Zum Editor wechseln) aus.

4. Ersetzen Sie unter Build commands (Build-Befehle) den Platzhalter mit dem folgenden Text:

version: 0.2

phases: install: runtime-versions: android: 29 java: corretto8 build: commands: - ./gradlew assembleDebugartifacts: files: - app/build/outputs/apk/app-debug.apk

Der Abschnitt runtime-versions gibt sowohl die Android-Laufzeitversion 29 als auch die Java-Laufzeitversion 8 an.

API-Version 2016-10-06136

Page 144: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

5. Wählen Sie Create build project (Build-Projekt erstellen) aus.6. Wählen Sie Start build (Build starten).7. Übernehmen Sie in der Build configuration (Build-Konfiguration) die Standardeinstellungen und wählen

Sie dann Start build (Build starten).8. Überprüfen Sie die Build-Ausgabe unter der Registerkarte Build logs (Build-Protokolle), wenn der Build

abgeschlossen ist. Die Ausgabe sollte folgendermaßen oder ähnlich aussehen. Sie zeigt, dass AndroidVersion 29 und Java Version 8 installiert sind:

[Container] 2019/05/14 23:21:42 Entering phase DOWNLOAD_SOURCES [Container] Date Time Running command echo "Installing Android version 29 ..." Installing Android version 29 ... [Container] Date Time Running command echo "Installing Java version 8 ..." Installing Java version 8 ...

Zwei Laufzeiten angebenSie können mehr als eine Laufzeit im selben CodeBuild Build-Projekt angeben. Dieses Beispielprojektverwendet zwei Quelldateien: eine, die die Go-Laufzeit verwendet und eine, die die Node.js-Laufzeitverwendet.

1. Erstellen Sie ein Verzeichnis mit dem Namen my-source.2. Erstellen Sie innerhalb des Verzeichnisses my-source ein Verzeichnis mit dem Namen golang-app.3. Erstellen Sie eine Datei mit dem Namen hello.go und dem folgenden Inhalt. Speichern Sie die Datei

im Verzeichnis golang-app.

package mainimport "fmt"

func main() { fmt.Println("hello world from golang") fmt.Println("1+1 =", 1+1) fmt.Println("7.0/3.0 =", 7.0/3.0) fmt.Println(true && false) fmt.Println(true || false) fmt.Println(!true) fmt.Println("good bye from golang")}

4. Erstellen Sie im Verzeichnis my-source ein Verzeichnis mit dem Namen nodejs-app. Es sollte sichauf derselben Ebene wie das Verzeichnis golang-app befinden.

5. Erstellen Sie eine Datei mit dem Namen index.js und dem folgenden Inhalt. Speichern Sie die Dateiim Verzeichnis nodejs-app.

console.log("hello world from nodejs");console.log("1+1 =" + (1+1));console.log("7.0/3.0 =" + 7.0/3.0);console.log(true && false);console.log(true || false);console.log(!true);console.log("good bye from nodejs");

6. Erstellen Sie eine Datei mit dem Namen package.json und dem folgenden Inhalt. Speichern Sie dieDatei im Verzeichnis nodejs-app.

{

API-Version 2016-10-06137

Page 145: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

"name": "mycompany-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"run some tests here\"" }, "author": "", "license": "ISC"}

7. Erstellen Sie eine Datei mit dem Namen buildspec.yml und dem folgenden Inhalt. Speichern Siedie Datei im Verzeichnis my-source auf der gleichen Ebene wie die Verzeichnisse nodejs-app undgolang-app. Der Abschnitt runtime-versions gibt die Node.js-Laufzeitversion 10 und die Go-Laufzeitversion 1.13 an.

version: 0.2

phases: install: runtime-versions: golang: 1.13 nodejs: 10 build: commands: - echo Building the Go code... - cd $CODEBUILD_SRC_DIR/golang-app - go build hello.go - echo Building the Node code... - cd $CODEBUILD_SRC_DIR/nodejs-app - npm run testartifacts: secondary-artifacts: golang_artifacts: base-directory: golang-app files: - hello nodejs_artifacts: base-directory: nodejs-app files: - index.js - package.json

8. Ihre Dateistruktur sollte nun wie folgt aussehen:

-- my-source |-- golang-app | -- hello.go |-- nodejs.app | -- index.js | -- package.json |-- buildspec.yml

9. Laden Sie die Inhalte des Verzeichnisses my-source in einen S3-Empfangs-Bucket oder in einCodeCommit-, GitHub- oder Bitbucket-Repository hoch.

Important

Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen, diedie Verzeichnisstruktur und die Dateien enthält, und diese dann in den Empfangs-Buckethochladen. Fügen Sie my-source nicht zur ZIP-Datei hinzu, sondern nur die Verzeichnisseund Dateien in my-source.

10. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

API-Version 2016-10-06138

Page 146: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLaufzeitversionen im Build-Spezfikationsdateibeispiel

11. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt(Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279). Übernehmen Sie für alleEinstellungen die Standardwerte, außer für folgende Einstellungen:

• Für Environment (Umgebung):• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (Verwaltetes

Abbild) aus.• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie unter Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:2.0

aus.12. Wählen Sie Create build project (Build-Projekt erstellen) aus.13. Wählen Sie Start build (Build starten).14. Übernehmen Sie in der Build configuration (Build-Konfiguration) die Standardeinstellungen und wählen

Sie dann Start build (Build starten).15. Überprüfen Sie die Build-Ausgabe unter der Registerkarte Build logs (Build-Protokolle), wenn der

Build abgeschlossen ist. Die Ausgabe sollte folgendermaßen oder ähnlich aussehen. Es wird dieAusgabe der Go- und Node.js-Laufzeiten angezeigt. Es wird auch die Ausgabe der Go- und Node.js-Anwendungen angezeigt.

[Container] Date Time Processing environment variables[Container] Date Time Selecting 'golang' runtime version '1.13' based on manual selections...[Container] Date Time Selecting 'nodejs' runtime version '10' based on manual selections...[Container] Date Time Running command echo "Installing Go version 1.13 ..."Installing Go version 1.12 ... [Container] Date Time Running command echo "Installing Node.js version 10 ..." Installing Node.js version 10 ... [Container] Date Time Running command n 10.15.3

[Container] Date Time Moving to directory /codebuild/output/src819694850/src[Container] Date Time Registering with agent[Container] Date Time Phases found in YAML: 2[Container] Date Time INSTALL: 0 commands[Container] Date Time BUILD: 1 commands[Container] Date Time Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED[Container] Date Time Phase context status code: Message:[Container] Date Time Entering phase INSTALL[Container] Date Time Phase complete: INSTALL State: SUCCEEDED[Container] Date Time Phase context status code: Message: [Container] Date Time Entering phase PRE_BUILD [Container] Date Time Phase complete: PRE_BUILD State: SUCCEEDED [Container] Date Time Phase context status code: Message: [Container] Date Time Entering phase BUILD [Container] Date Time Running command echo Building the Go code... Building the Go code... [Container] Date Time Running command cd $CODEBUILD_SRC_DIR/golang-app [Container] Date Time Running command go build hello.go [Container] Date Time Running command echo Building the Node code... Building the Node code... [Container] Date Time Running command cd $CODEBUILD_SRC_DIR/nodejs-app [Container] Date Time Running command npm run test

API-Version 2016-10-06139

Page 147: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für eine Quellversion

> [email protected] test /codebuild/output/src924084119/src/nodejs-app > echo "run some tests here" run some tests here

Beispiel für eine Quellversion mit AWS CodeBuildIn diesem Beispiel wird gezeigt, wie Sie eine Version Ihrer Quelle mithilfe eines anderen Formats als einerCommit-ID (auch bekannt als Commit-SHA) angeben können. Sie haben folgende Möglichkeiten, dieVersion Ihrer Quelle anzugeben:

• Für einen Amazon S3-Quellanbieter verwenden Sie die Versions-ID des Objekts, das die Build-Eingabe-ZIP-Datei darstellt.

• Für CodeCommit, Bitbucket, GitHub und GitHub Enterprise Server können Sie eine der folgendenMöglichkeiten anwenden:• Pull-Anforderung als Pull-Anforderungsreferenz (z. B. refs/pull/1/head).• Branch als Branch-Name.• Commit-ID.• Tag.• Referenz und eine Commit-ID. Die Referenz kann Folgendes sein:

• Ein Tag (z. B. refs/tags/mytagv1.0^{full-commit-SHA}).• Ein Branch (z. B. refs/heads/mydevbranch^{full-commit-SHA}).• Eine Pull-Anforderung (z. B. refs/pull/1/head^{full-commit-SHA}).

Note

Sie können die Version einer Pull-Anforderungsquelle nur angeben, wenn Ihr Repository GitHuboder GitHub Enterprise Server ist.

Wenn Sie eine Referenz und eine Commit-ID zum Angeben einer Version verwenden, ist dieDOWNLOAD_SOURCE-Phase Ihres Builds schneller, als wenn Sie nur die Version angeben. Das hatfolgenden Grund: Wenn Sie eine Referenz hinzufügen, muss CodeBuild nicht das gesamte Repositoryherunterladen, um den Commit zu finden.

• Sie können eine Quellversion nur mit einer Commit-ID angeben, wie z. B.12345678901234567890123467890123456789. Wenn Sie dies tun, CodeBuild muss das gesamteRepository herunterladen, um die Version zu finden.

• Sie können eine Quellversion mit einer Referenz und einer Commit-ID in diesem Formatfestlegen: refs/heads/branchname^{full-commit-SHA} (zum Beispiel refs/heads/main^{12345678901234567890123467890123456789}). Wenn Sie dies tun, lädt CodeBuild nurden angegebenen Branch herunter, um die Version zu suchen.

Note

Zur Beschleunigung der DOWNLOAD_SOURCE-Phase Ihres Builds können Sie auch Git clonedepth (Git-Klontiefe) auf eine niedrigere Zahl festlegen. CodeBuild lädt weniger Versionen IhresRepositorys herunter.

So geben Sie eine GitHub-Repository-Version mit einer Commit-ID an

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

API-Version 2016-10-06140

Page 148: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für eine Quellversion

2. Erstellen eines Build-Projekts () Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207) und Ausführen eines Build (Konsole) (p. 279). Übernehmen Sie für alleEinstellungen die Standardwerte, außer für folgende Einstellungen:

• In Source (Quelle):• Wählen Sie für Source provider (Quellanbieter) die Option GitHub aus. Wenn Sie nicht mit GitHub

verbunden sind, folgen Sie den Anweisungen zum Herstellen einer Verbindung.• Wählen Sie für Repository (Repository) die Option Public Repository (öffentliche Repository) aus.• Geben Sie als Repository URL (Repository-URL) die URL https://github.com/aws/aws-sdk-ruby.git ein.

• In Environment (Umgebung):• Wählen Sie für Environment image (Umgebungs-Abbild) die Option Managed image (Verwaltetes

Abbild) aus.• Wählen Sie unter Operating system (Betriebssystem) die Option Amazon Linux 2 aus.• Wählen Sie unter Runtime (Laufzeit) die Option Standard aus.• Wählen Sie unter Image (Abbild) die Option aws/codebuild/amazonlinux2-x86_64-standard:2.0

aus.3. Wählen Sie unter Build specification (Build-Spezifikationen) die Option Insert build commands (Build-

Befehle einfügen) und anschließend Switch to editor (Zum Editor wechseln) aus.4. Ersetzen Sie unter Build commands (Build-Befehle) den Platzhalter mit dem folgenden Text:

version: 0.2

phases: install: runtime-versions: ruby: 2.6 build: commands: - echo $CODEBUILD_RESOLVED_SOURCE_VERSION

Der runtime-versions-Abschnitt ist erforderlich, wenn Sie das Ubuntu Standard-Image 2.0verwenden. Hier ist die Ruby Version 2.6-Laufzeit angegeben, Sie können jedoch einebeliebige Laufzeit verwenden. Der echo-Befehl zeigt die Version des Quellcodes an, der in derCODEBUILD_RESOLVED_SOURCE_VERSION-Umgebungsvariable gespeichert ist.

5. Übernehmen Sie in der Build configuration (Build-Konfiguration) die Standardeinstellungen und wählenSie dann Start build (Build starten).

6. für Quellversion, geben Sie 046e8b67481d53bdc86c3f6affdd5d1afae6d369. Dies ist der SHAvon einem Commit in der https://github.com/aws/aws-sdk-ruby.git Repository.

7. Wählen Sie Start build.8. Wenn die Erstellung abgeschlossen ist, sollten Sie Folgendes sehen:

• Auf der Registerkarte Build logs (Build-Protokolle: die verwendete Version der Projektquelle Hier istein Beispiel: .

[Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 046e8b67481d53bdc86c3f6affdd5d1afae6d369 [Container] Date Time Phase complete: BUILD State: SUCCEEDED

• Auf der Registerkarte Environment variables (Umgebungsvariablen): Die Resolved source version(Aufgelöste Quellversion) stimmt mit der zur Erstellung des Builds verwendeten Commit-ID überein.

• Auf der Registerkarte Phase details (Phasendetails): die Dauer der DOWNLOAD_SOURCE-Phase.API-Version 2016-10-06

141

Page 149: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer privaten Registrierung

mit AWS Secrets Manager

Diese Schritte zeigen, wie Sie einen Build mit derselben Version der Quelle erstellen. Dieses Mal wird dieVersion der Quelle mithilfe einer Referenz mit der Commit-ID angegeben.

So geben Sie eine GitHub-Repository-Version mit Commit-ID und Referenz an

1. Wählen Sie im linken Navigationsbereich Build projects (Build-Projekte) und anschließend das Projekt,das Sie vorher erstellt haben, aus.

2. Wählen Sie Start build.3. in Quellversion, geben Sie refs/heads/

main^{046e8b67481d53bdc86c3f6affdd5d1afae6d369}. Dies ist die gleiche Commit-ID undeine Referenz auf eine Zweigstelle im Format refs/heads/branchname^{full-commit-SHA}.

4. Wählen Sie Start build.5. Wenn die Erstellung abgeschlossen ist, sollten Sie Folgendes sehen:

• Auf der Registerkarte Build logs (Build-Protokolle: die verwendete Version der Projektquelle Hier istein Beispiel: .

[Container] Date Time Running command echo $CODEBUILD_RESOLVED_SOURCE_VERSION 046e8b67481d53bdc86c3f6affdd5d1afae6d369 [Container] Date Time Phase complete: BUILD State: SUCCEEDED

• Auf der Registerkarte Environment variables (Umgebungsvariablen): Die Resolved source version(Aufgelöste Quellversion) stimmt mit der zur Erstellung des Builds verwendeten Commit-ID überein.

• Auf der Registerkarte Phase details (Phasendetails) sollte die Dauer der DOWNLOAD_SOURCE-Phase kürzer sein als die Dauer, wenn Sie nur die Commit-ID zum Angeben der Version Ihrer Quelleverwendeten.

Beispiel einer privaten Registrierung mit AWS SecretsManager für CodeBuildDieses Beispiel zeigt, wie Sie ein Docker-Image verwenden, das in einer privaten Registrierung als IhreAWS CodeBuild-Laufzeitumgebung gespeichert ist. Die Anmeldeinformationen für die private Registrierungsind in AWS Secrets Manager gespeichert. Jede private Registrierung funktioniert mit CodeBuild. In diesemBeispiel wird Docker Hub verwendet.

Anforderungen für ein Beispiel einer privaten RegistrierungUm eine private Registrierung mit AWS CodeBuild zu verwenden, müssen Sie über Folgendes verfügen:

• Ein Secrets Manager-Secret, in dem Ihre Docker Hub-Anmeldeinformationen gespeichert sind. DieAnmeldeinformationen werden für den Zugriff auf Ihr privates Repository verwendet.

• Ein privates Repository oder Konto.• Eine CodeBuild-Servicerollen-IAM-Richtlinie, die Zugriff auf Ihr Secrets Manager-Geheimnis gewährt.

Führen Sie die folgenden Schritte aus, um diese Ressourcen zu erstellen, und erstellen Sie anschließendein CodeBuild-Build-Projekt unter Verwendung der in Ihrer privaten Registrierung gespeicherten Docker-Images.

API-Version 2016-10-06142

Page 150: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel einer privaten Registrierung

mit AWS Secrets Manager

Erstellen eines CodeBuild-Projekts mit einer privatenRegistrierung1. Weitere Informationen dazu, wie Sie ein kostenloses privates Repository erstellen, finden Sie unter

Repositories on Docker Hub Sie können auch die folgenden Befehle in einem Terminal ausführen, umeine Pull-Übertragung eines Images durchzuführen, seine ID abzurufen und es in ein neues Repositoryzu verschieben.

docker pull amazonlinuxdocker images amazonlinux --format {{.ID}}docker tag image-id your-username/repository-name:latestdocker logindocker push your-username/repository-name

2. Befolgen Sie die Schritte im Abschnitt Erstellen eines Basis-Secrets im AWS Secrets Manager-Benutzerhandbuch. Gehen Sie bei Schritt 3 unter Geheimnistyp auswählen wie folgt vor:

a. Wählen Sie Andere Art von Geheimnissen.

b. Erstellen Sie unter Geheimnisschlüssel/-wert, ein Schlüssel-Wert-Paar für Ihren Docker Hub-Benutzernamen und ein Schlüssel-Wert-Paar für Ihr Docker Hub-Passwort.

c. Geben Sie unter Name des Geheimnisses einen Namen wie dockerhub ein. AlsErinnerungshilfe, dass dies ein Geheimnis für Docker Hub ist, können Sie eine optionaleBeschreibung hinzufügen.

d. Lassen Sie Automatisches Rotieren deaktivieren ausgewählt, da die Schlüssel Ihren Docker Hub-Anmeldeinformationen entsprechen.

e. Wählen Sie Store secret (Secret speichern) aus.f. Wenn Sie Ihre Einstellungen überprüfen, notieren Sie sich den ARN zur späteren Verwendung in

diesem Beispiel.

Weitere Informationen finden Sie unter Was ist der AWS Secrets Manager?.3. Wenn Sie ein AWS CodeBuild-Projekt in der Konsole erstellen, fügt CodeBuild die erforderliche

Berechtigung für Sie an. Wenn Sie einen anderen AWS KMS-Schlüssel als DefaultEncryptionKeyverwenden, müssen Sie diesen zur Service-Rolle hinzufügen. Weitere Informationen finden Sie unterÄndern einer Rolle (Konsole) im Benutzerhandbuch für das AWS Identity and Management.

API-Version 2016-10-06143

Page 151: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für mehrere Eingabequellen und Ausgabeartefakte

Damit Ihre Service-Rolle mit Secrets Manager funktioniert, muss sie mindestens über diesecretsmanager:GetSecretValue-Berechtigung verfügen.

4. Um die Konsole für die Erstellung eines Projekts zu verwenden, dessen Umgebung in einer privatenRegistrierung gespeichert ist, gehen Sie während der Projekterstellung wie folgt vor: WeitereInformationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207).

Note

Wenn sich Ihre private Registrierung in Ihrer VPC befindet, muss sie über Zugriff auf dasöffentliche Internet verfügen. CodeBuild kann keine Pull-Übertragung von Images von einerprivaten IP-Adresse in einer VPC ausführen.

a. Wählen Sie für Environment (Umgebung), die Option Custom image (Benutzerdefiniertes Image).b. Wählen Sie für Environment type (Umgebungsart) die Option Linux oder Windows aus.c. Wählen Sie für Custom image type (Benutzerdefinierter Imagetyp) die Option Other location

(Anderer Speicherort).d. Geben Sie unter Other location (Anderer Speicherort) den Image-Speicherort und den ARN oder

den Namen Ihrer Secrets Manager-Anmeldeinformationen ein.

Note

Wenn Ihre Anmeldeinformationen nicht in Ihrer aktuellen Region vorhanden sind, müssenSie den ARN verwenden. Sie können den Namen der Anmeldeinformationen nichtverwenden, wenn die Anmeldeinformationen in einer anderen Region existieren.

Beispiel für mehrere Eingabequellen undAusgabeartefakteSie können ein AWS CodeBuild-Build-Projekt mit mehr als einer Eingabequelle und mehr als einemSatz von Ausgabeartefakten erstellen. Dieses Beispiel zeigt, wie Sie ein Build-Projekt mit folgendenEigenschaften einrichten:

• Mehrere Quellen und Repositorys unterschiedlicher Typen• Veröffentlichung von Build-Artefakten für mehrere S3-Buckets in einem Build

In diesem Beispiel erstellen Sie ein Build-Projekt und verwenden es zum Ausführen eines Builds. DasBeispiel verwendet die buildspec-Datei des Build-Projekts, um zu demonstrieren, wie mehr als eine Quelleeingeschlossen und mehr als ein Satz Artefakte erstellt wird.

1. Laden Sie die Quellen in mindestens einen S3-Bucket bzw. ein CodeCommit-, GitHub-, GitHubEnterprise Server- oder Bitbucket-Repository hoch.

2. Wählen Sie die als primäre Quelle dienende Quelle. Dies ist die Quelle, in der CodeBuild diebuildspec-Datei sucht und ausführt.

API-Version 2016-10-06144

Page 152: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für mehrere Eingabequellen und Ausgabeartefakte

3. Erstellen Sie ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts inAWS CodeBuild (p. 206).

4. Befolgen Sie die Anleitung unter Direktes Ausführen von AWS CodeBuild (p. 407), um das Build-Projekt zu erstellen, den Build auszuführen und Informationen zum Build abzurufen.

5. Wenn Sie das Build-Projekt mit der AWS CLI erstellen, kann die Eingabe im JSON-Format für denBefehl create-project beispielsweise folgendermaßen aussehen:

{ "name": "sample-project", "source": { "type": "S3", "location": "bucket/sample.zip" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo" "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin" "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ { "type": "S3", "location": "output-bucket", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "other-output-bucket", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

Die primäre Quelle ist im Attribut source definiert. Alle weiteren Quellen sind sekundäre Quellenund werden unter secondarySources aufgeführt. Alle sekundären Quellen werden in einemeigenen Verzeichnis installiert. Dieses Verzeichnis wird in der integrierten UmgebungsvariableCODEBUILD_SRC_DIR_sourceIdentifer gespeichert. Weitere Informationen finden Sie unterUmgebungsvariablen in Build-Umgebungen (p. 182).

Das Attribut secondaryArtifacts enthält eine Liste der Artefaktdefinitionen. Diese Artefakte verwendenden Block secondary-artifacts in der buildspec-Datei, der im Block artifacts verschachtelt ist.

Sekundäre Artefakte in der buildspec-Datei haben die gleiche Struktur wie Artefakte und werden durch diejeweiligen Artefaktbezeichner voneinander getrennt.

API-Version 2016-10-06145

Page 153: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für mehrere Eingabequellen und Ausgabeartefakte

Note

In der CodeBuild API ist der artifactIdentifier für ein sekundäres Artefakt ein zwingenderforderliches Attribut in CreateProject und UpdateProject. Es muss verwendet werden, umauf ein sekundäres Artefakt zu verweisen.

Mit der oben gezeigten Eingabe im JSON-Format ergibt sich eine buildspec-Datei wie die folgende:

version: 0.2

phases: install: runtime-versions: java: openjdk11 build: commands: - cd $CODEBUILD_SRC_DIR_source1 - touch file1 - cd $CODEBUILD_SRC_DIR_source2 - touch file2

artifacts: secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR_source1 files: - file1 artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - file2

Sie können die Version der primären Quelle unter Verwendung der API mit dem Attribut sourceVersionin StartBuild überschreiben. Mit dem Attribut secondarySourceVersionOverride können Sieeinzelne oder mehrere Versionen sekundärer Quellen überschreiben.

Beispiel für die Eingabe im JSON-Format für den Befehl start-build in der AWS CLI:

{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ]}

Beispiel für ein Projekt ohne QuelleSie können ein CodeBuild-Projekt konfigurieren, indem Sie beim Konfigurieren der Quelle den QuelltypNO_SOURCE auswählen. Wenn Ihr Quelltyp NO_SOURCE ist, können Sie keine buildspec-Datei angeben,da Ihr Projekt keine Quelle hat. Stattdessen müssen Sie eine YAML-formatierte buildspec-Zeichenfolge imbuildspec-Attribut der JSON-formatierten Eingabe für den create-project-CLI-Befehl angeben. Diesekönnte wie folgt aussehen:

{

API-Version 2016-10-06146

Page 154: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für die Verwendung des semantischen

Versionings zum Benennen von Build-Artefakten

"name": "project-name", "source": { "type": "NO_SOURCE", "buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - command" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL", }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"}

Weitere Informationen finden Sie unter Erstellen eines Build-Projekts (AWS CLI) (p. 217).

Informationen zum Erstellen einer Pipeline, die mehrere Quelleingaben für CodeBuild verwendet, ummehrere Ausgabeartefakte zu erstellen, finden Sie unter Beispiel für AWS CodePipeline-Integration mitCodeBuild sowie mehrere Eingabequellen und Ausgabeartefakte (p. 70).

Beispiel für die Verwendung des semantischenVersionings zum Benennen von Build-ArtefaktenDieses Beispiel enthält buildspec-Beispieldateien, die zeigen, wie ein Artefaktname angegeben wird,der während der Build-Erstellung erstellt wird. Ein in einer buildspec-Datei angegebener Name kannShell-Befehle und Umgebungsvariablen enthalten, um ihn eindeutig zu gestalten. Ein in einer buildspec-Datei angegebener Name überschreibt einen Name, den Sie beim Erstellen des Projekts in der Konsoleangeben.

Wenn Sie den Build mehrmals erstellen, kann mit einem in der buildspec-Datei angegebenen Namensichergestellt werden, dass die Namen der Ausgabeartefaktdateien eindeutig sind. Sie könnenbeispielsweise einen Datums- und Zeitstempel verwenden, der während der Build-Erstellung in denArtefaktnamen eingefügt wird.

Wenn Sie den in der Konsole eingegebenen Artefaktnamen mit einem Namen in der buildspec-Dateiüberschreiben möchten, gehen Sie wie folgt vor:

1. Konfigurieren Sie das Build-Projekt so, dass der Artefaktname mit einem Namen in der buildspec-Dateiüberschrieben wird.

• Wenn Sie die Konsole zum Erstellen Ihres Build-Projekts verwenden, wählen Sie Enable semantiticversioning (Semantisches Versioning aktivieren) aus. Weitere Informationen finden Sie im ErstellenSie ein Build-Projekt (Konsole) (p. 207).

• Wenn Sie die AWS CLI, stellen Sie die overrideArtifactName in die JSON-formatierte Datei,die an die create-project. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts(AWS CLI) (p. 217).

• Legen Sie bei Verwendung der AWS CodeBuild-API das Flag overrideArtifactName für dasProjectArtifacts-Objekt fest, wenn ein Projekt erstellt oder aktualisiert oder ein Build gestartetwird.

2. Geben Sie einen Namen in der buildspec-Datei an. Ziehen Sie die folgenden buildspec-Beispieldateienzur Orientierung heran.

Dieses Linux-Beispiel zeigt, wie Sie einen Artefaktnamen angeben, der das Datum der Build-Erstellungenthält:

version: 0.2

API-Version 2016-10-06147

Page 155: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für die Verwendung des semantischen

Versionings zum Benennen von Build-Artefakten

phases: build: commands: - rspec HelloWorld_spec.rbartifacts: files: - '**/*' name: myname-$(date +%Y-%m-%d)

Dieses Linux-Beispiel zeigt, wie Sie einen Artefaktnamen angeben, der eine CodeBuild-Umgebungsvariable verwendet. Weitere Informationen finden Sie im Umgebungsvariablen in Build-Umgebungen (p. 182).

version: 0.2 phases: build: commands: - rspec HelloWorld_spec.rbartifacts: files: - '**/*' name: myname-$AWS_REGION

Dieses Windows-Beispiel zeigt, wie Sie einen Artefaktnamen angeben, der das Datum und die Zeit derBuild-Erstellung enthält:

version: 0.2env: variables: TEST_ENV_VARIABLE: myArtifactNamephases: build: commands: - cd samples/helloworld - dotnet restore - dotnet runartifacts: files: - '**/*' name: $Env:TEST_ENV_VARIABLE-$(Get-Date -UFormat "%Y%m%d-%H%M%S")

Dieser Windows-Beispiel zeigt, wie Sie einen Artefaktnamen angeben, der eine in der buildspec-Dateideklarierte Variable und eine CodeBuild-Umgebungsvariable verwendet. Weitere Informationen finden Sieim Umgebungsvariablen in Build-Umgebungen (p. 182).

version: 0.2env: variables: TEST_ENV_VARIABLE: myArtifactNamephases: build: commands: - cd samples/helloworld - dotnet restore - dotnet runartifacts: files: - '**/*' name: $Env:TEST_ENV_VARIABLE-$Env:AWS_REGION

Weitere Informationen finden Sie im Build-Spezifikationsreferenz für CodeBuild (p. 150).

API-Version 2016-10-06148

Page 156: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Planen eines Builds in AWSCodeBuild

Bevor Sie AWS CodeBuild verwenden, müssen Sie sich folgende Fragen beantworten:

1. Wo ist der Quellcode gespeichert? CodeBuild unterstützt derzeit das Erstellen von den folgendenQuellcode-Repository-Anbietern. Der Quellcode muss eine Build-Spezifikationsdatei (buildspec)enthalten. Eine buildspec ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungenim YAML-Format, die CodeBuild zum Ausführen eines Builds verwendet. Sie können eine Build-Spezifikationsdatei in einer Build-Projektdefinition deklarieren.

Repository-Anbieter

Erforderlich Dokumentation

CodeCommit Repository-Name.

(Optional) Mitdem QuellcodeverknüpfteCommit-ID.

Weitere Informationen finden Sie unter den folgendenThemen im AWS CodeCommit-Benutzerhandbuch:

Erstellen eines CodeCommit-Repositorys

Erstellen eines Commits in CodeCommit

Amazon S3 Empfangs-Bucket-Name.

Objektname fürdie Build-Eingabe-ZIP-Datei, die denQuellcode enthält.

(Optional)Mit der Build-Eingabe-ZIP-Datei verknüpfteVersions-ID.

Weitere Informationen unter den folgenden Themen imHandbuch "Erste Schritte" für Amazon S3:

Bucket erstellen

Hinzufügen eines Objekts zu einem Bucket

GitHub Repository-Name.

(Optional) Mitdem QuellcodeverknüpfteCommit-ID.

Siehe Thema auf der Hilfe-Website für GitHub:

Erstellen eines Repository

Bitbucket Repository-Name.

(Optional) Mitdem QuellcodeverknüpfteCommit-ID.

Siehe dieses Thema auf der Dokumentationswebsite zurBitbucket Cloud:

Erstellen eines Repositorys

2. Welche Build-Befehle müssen Sie ausführen und in welcher Reihenfolge? Standardmäßiglädt CodeBuild die Build-Eingabe von dem von Ihnen angegebenen Anbieter herunter und

API-Version 2016-10-06149

Page 157: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Spezifikationsreferenz

lädt die Build-Ausgabe in den von Ihnen angegebenen Bucket hoch. Sie verwenden die Build-Spezifikationen für Anweisungen dazu, wie die heruntergeladene Build-Eingabe in die erwarteteBuild-Ausgabe umgewandelt werden soll. Weitere Informationen hierzu finden Sie unter Build-Spezifikationsreferenz (p. 150).

3. Welche Laufzeiten und Tools benötigen Sie zur Build-Ausführung? Erstellen Sie den Buildbeispielsweise für Java, Ruby, Python oder Node.js? Benötigt der Build Maven oder Ant oder einenCompiler für Java, Ruby oder Python? Erfordert der Build Git, die AWS CLI oder andere Tools?

CodeBuild führt Builds in Build-Umgebungen aus, die Docker-Images verwenden. Diese Docker-Imagesmüssen in einem Repository-Typ gespeichert sein, der von CodeBuild unterstützt wird. Dazu gehörendas CodeBuild Docker-Image-Repository, Docker Hub und Amazon Elastic Container Registry (AmazonECR). Weitere Informationen über das CodeBuild Docker-Image-Repository finden Sie unter VonCodeBuild bereitgestellte Docker-Images (p. 175).

Important

Wenn Sie das Ubuntu-Standard-Image 2.0 oder höher oder das Amazon Linux 2 (AL2)Standard-Image 1.0 oder höher verwenden, müssen Sie runtime-versions in Ihrerbuildspec-Datei angeben. Weitere Informationen finden Sie unter Specify runtime versions inthe buildspec file.

4. Benötigen Sie AWS-Ressourcen, die nicht automatisch von CodeBuild bereitgestellt werden? FallsJa, welche Sicherheitsrichtlinien erfordern diese Ressourcen? Sie müssen beispielsweise ggf. dieCodeBuild-Servicerolle anpassen, damit CodeBuild mit diesen Ressourcen arbeiten kann.

5. Möchten Sie, dass CodeBuild mit Ihrer VPC arbeitet? Wenn Ja, benötigen Sie für Ihre VPC-Konfiguration die VPC-ID, die Subnet-IDs und die Sicherheitsgruppen-IDs. Weitere Informationen findenSie unter Verwenden von AWS CodeBuild mit Amazon Virtual Private Cloud (p. 188).

Nachdem Sie diese Fragen beantwortet haben, sollten Sie über die Einstellungen und Ressourcenverfügen, die Sie benötigen, um einen Build erfolgreich auszuführen. Sie können den Build wie folgtausführen:

• Verwenden Sie die AWS CodeBuild-Konsole, AWS CLI oder AWS-SDKs. Weitere Informationen findenSie unter Direktes Ausführen von CodeBuild (p. 407).

• Erstellen oder definieren Sie eine Pipeline in AWS CodePipeline und fügen Sie dann eine Build-oder Testaktion hinzu, die CodeBuild anweist, den Code automatisch zu testen und/oder denBuild auszuführen. Weitere Informationen finden Sie unter Verwenden von CodePipeline mitCodeBuild (p. 407).

Build-Spezifikationsreferenz für CodeBuildDieses Thema enthält wichtige Referenzinformationen zu Build-Spezifikationsdateien (buildspec). Einebuildspec ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format,die CodeBuild zum Ausführen eines Builds verwendet. Sie können eine Build-Spezifikation als Teildes Quellcodes einschließen oder eine Build-Spezifikation definieren, wenn Sie ein Build-Projekterstellen. Informationen zur Funktionsweise einer Build-Spezifikation finden Sie unter Funktionsweise vonCodeBuild (p. 3).

Themen• Dateiname der Build-Spezifikation und Speicherort (p. 151)• Syntax der Build-Spezifikation (p. 151)• Beispiel für eine Build-Spezifikation (p. 167)• Versionen der Build-Spezifikationen (p. 169)• Chargenbuild-Build-Referenz (p. 170)

API-Version 2016-10-06150

Page 158: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDateiname der Build-Spezifikation und Speicherort

Dateiname der Build-Spezifikation und SpeicherortWenn Sie eine Build-Spezifikation als Teil des Quellcodes einbinden, muss die Build-Spezifikationsdateistandardmäßig als buildspec.yml benannt und im Stammverzeichnis Ihres Quellverzeichnissesabgelegt werden.

Sie können den Standard-Namen und -Speicherort der Build-Spezifikationsdatei überschreiben.Beispielsweise können Sie:

• Verwenden Sie eine andere Build-Spezifikationsdatei für verschiedene Builds im selben Repository, z. B.buildspec_debug.yml und buildspec_release.yml.

• Speichern Sie eine Build-Spezifikationsdatei in einem anderen Verzeichnis als dem Stammverzeichnisdes Quellverzeichnisses, also z. B. in config/buildspec.yml oder in einem S3-Bucket. Der S3-Bucket muss sich in derselben AWS-Region wie das Build-Projekt befinden. Geben Sie die buildspec-Datei mit ihrem ARN an (z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml).

Sie können für ein Build-Projekt nur ein Build-Spezifikation angeben, unabhängig vom Namen der Build-Spezifikationsdatei.

Führen Sie einen der folgenden Schritte aus, um den Standard-Dateinamen, -Speicherort der Build-Spezifikationsdatei oder beides zu überschreiben:

• Ausführen der AWS CLI create-project oder update-project Befehl, das Einstellen derbuildspec Wert zum Pfad zur alternativen Build-Spezifikationsdatei relativ zum Wert der integriertenUmgebungsvariablen CODEBUILD_SRC_DIR. (z. B. Sie können das Äquivalent auch mit dem createproject Vorgang im AWS -SDKs. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts() (p. 206) oder Ändern der Einstellungen eines Build-Projekts () (p. 259).

• Ausführen der AWS CLI start-build Befehl, das Einstellen der buildspecOverride Wert zumPfad zur alternativen Build-Spezifikationsdatei relativ zum Wert der integrierten UmgebungsvariablenCODEBUILD_SRC_DIR. (z. B..) Sie können das Äquivalent auch mit dem start build Vorgang imAWS -SDKs. Weitere Informationen finden Sie im Ausführen eines Build () (p. 279).

• In einem AWS CloudFormation Vorlage, stellen Sie die BuildSpec Eigentum von Source in einerRessource des Typs AWS::CodeBuild::Project zum Pfad zur alternativen Build-Spezifikationsdateirelativ zum Wert der integrierten Umgebungsvariablen CODEBUILD_SRC_DIR. (z. B.. WeitereInformationen finden Sie unter der BuildSpec-Eigenschaft in AWS CodeBuild Projektquelle in der AWSCloudFormation Benutzerhandbuch.

Syntax der Build-SpezifikationBuild-Spezifikationsdateien müssen im Format YAML ausgedrückt werden.

Wenn ein Befehl ein Zeichen oder eine Zeichenfolge enthält, die von YAML nicht unterstützt wird, müssenSie den Befehl in Anführungszeichen ("") einschließen. Der folgende Befehl ist in Anführungszeicheneingeschlossen, da ein Doppelpunkt (:) gefolgt von einem Leerzeichen in YAML nicht erlaubt ist. DasAnführungszeichen im Befehl wird mit Escape (\") angegeben.

"export PACKAGE_NAME=$(cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g')"

Die Build-Spezifikation hat die folgende Syntax:

version (p. 153): 0.2

run-as (p. 153): Linux-user-name

API-Version 2016-10-06151

Page 159: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

env (p. 153): shell (p. 154): shell-tag variables (p. 154): key: "value" key: "value" parameter-store (p. 155): key: "value" key: "value" exported-variables (p. 156): - variable - variable secrets-manager (p. 155): key: secret-id:json-key:version-stage:version-id git-credential-helper (p. 156): no | yes

proxy (p. 156): upload-artifacts (p. 156): no | yes logs (p. 156): no | yes

batch (p. 170): fast-fail: false | true # build-list: # build-matrix: # build-graph: phases (p. 157): install (p. 157): run-as (p. 157): Linux-user-name runtime-versions (p. 157): runtime: version runtime: version commands (p. 160): - command - command finally (p. 160): - command - command pre_build (p. 161): run-as (p. 157): Linux-user-name commands (p. 161): - command - command finally (p. 161): - command - command build (p. 161): run-as (p. 157): Linux-user-name commands (p. 161): - command - command finally (p. 161): - command - command post_build (p. 161): run-as (p. 157): Linux-user-name commands (p. 161): - command - command finally (p. 161): - command - commandreports (p. 162): report-group-name-or-arn: files (p. 162): - location

API-Version 2016-10-06152

Page 160: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

- location base-directory (p. 163): location discard-paths (p. 163): no | yes file-format (p. 162): report-formatartifacts (p. 163): files (p. 163): - location - location name (p. 164): artifact-name discard-paths (p. 165): no | yes base-directory (p. 165): location secondary-artifacts (p. 166): artifactIdentifier: files (p. 163): - location - location name (p. 164): secondary-artifact-name discard-paths (p. 165): no | yes base-directory (p. 165): location artifactIdentifier: files (p. 163): - location - location discard-paths (p. 165): no | yes base-directory (p. 165): locationcache (p. 167): paths (p. 167): - path - path

Die Build-Spezifikation enthält Folgendes:

versionErforderliche Zuweisung. Diese steht für die Version der Build-Spezifikation. Wir empfehlen Ihnen, 0.2 zuverwenden.

Note

Obwohl Version 0.1 wird weiterhin unterstützt wird, empfehlen wir Ihnen, nach MöglichkeitVersion 0.2 zu verwenden. Weitere Informationen finden Sie im Versionen der Build-Spezifikationen (p. 169).

run-asOptionale Sequenz. Nur für Linux-Benutzer verfügbar. Gibt einen Linux-Benutzer an, der Befehlein dieser buildspec-Datei ausführt. run-as gewährt dem angegebenen Benutzer Lese- undAusführungsberechtigungen. Wenn Sie run-as zu Beginn der buildspec-Datei angeben, gilt dieEinstellung global für alle Befehle. Wenn Sie nicht möchten, dass ein Benutzer Berechtigungen fürsämtliche Befehle in der buildspec-Datei erhält, können Sie die Berechtigungen auf eine Phasebeschränken, indem Sie run-as in einem der phases-Blöcke angeben. Wird run-as nicht angegeben,werden alle Befehle als Root-Benutzer ausgeführt.

envOptionale Sequenz. Diese steht für die Informationen von einer oder mehrerer benutzerdefinierterUmgebungsvariablen.

Note

Zum Schutz vertraulicher Informationen wird in CodeBuild-Protokollen Folgendes ausgeblendet:

API-Version 2016-10-06153

Page 161: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

• AWS-Zugriffsschlüssel-IDs. Weitere Informationen finden Sie unter Verwalten derZugriffsschlüssel für IAM-Benutzer im AWS Identity and Access Management-Benutzerhandbuch.

• Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unterSystems Manager Parameter Store und in den Anleitungen zur Systems Manager ParameterStore-Konsole im Amazon EC2 Systems Manager Benutzerhandbuch.

• Mit dem AWS Secrets Manager angegebene Zeichenfolgen. Weitere Informationen finden Sieunter Schlüsselverwaltung (p. 359).

einenv/Hülle

Optionale Sequenz. Gibt die unterstützte Hülle für Linux- oder Windows-Betriebssysteme an.

Für Linux-Betriebssysteme sind unterstützte Shell-Tags:• bash

• /bin/sh

Für Windows-Betriebssysteme sind unterstützte Shell-Tags:• powershell.exe

• cmd.exe

env/variables

Erforderlich, wenn env angegeben ist und Sie benutzerdefinierte Umgebungsvariablen im Klartextdefinieren möchten. Enthält eine Zuordnung von key/value Skaleneffekte, wobei jede Zuordnungeine einzelne benutzerdefinierte Umgebungsvariable in Klartext darstellt. key den Namen derbenutzerdefinierten Umgebungsvariable ist, und value ist der Wert der Variablen.

Important

Wir raten dringend davon ab, Umgebungsvariablen zum Speichern vertraulicher Wertezu verwenden, dies gilt insbesondere für AWS-Zugriffsschlüssel-IDs und geheimeZugriffsschlüssel. Umgebungsvariablen können mit Tools wie der CodeBuild-Konsole undüber die AWS CLI im Klartext angezeigt werden. Für vertrauliche Werte sollte stattdessen dieZuweisung per parameter-store oder secrets-manager verwendet werden (siehe untenin diesem Abschnitt).Jede festgelegte Umgebungsvariable ersetzt vorhandene Umgebungsvariablen. Wenn dasDocker-Bild beispielsweise eine Umgebungsvariable enthält, die benannt wurde MY_VAR miteinem Wert von my_value, und Sie legen eine Umgebungsvariable fest MY_VAR mit einemWert von other_value, dann my_value ersetzt durch other_value. Wenn das Docker-Bild bereits eine Umgebungsvariable enthält, die benannt wurde PATH mit einem Wert von /usr/local/sbin:/usr/local/bin, und Sie legen eine Umgebungsvariable fest PATH miteinem Wert von $PATH:/usr/share/ant/bin, dann /usr/local/sbin:/usr/local/bin wird durch den literalen Wert ersetzt $PATH:/usr/share/ant/bin.Keine Umgebungsvariablen mit einem Namen festlegen, der beginnt mit CODEBUILD_.Dieses Präfix ist für den internen Gebrauch reserviert.Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wirdder Wert folgendermaßen bestimmt:• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang. Beim

Erstellen eines Builds können Sie Umgebungsvariablen hinzufügen oder überschreiben.Weitere Informationen finden Sie im Ausführen eines Build in AWS CodeBuild (p. 279).

• Der Wert in der Build-Projektdefinition folgt darauf. Beim Erstellen oder Bearbeiteneines Projekts können Sie Umgebungsvariablen auf Projektebene hinzufügen. WeitereInformationen finden Sie unter Erstellen eines Build-Projekts in AWS CodeBuild (p. 206)und Ändern der Einstellungen eines Build-Projekts in AWS CodeBuild (p. 259).

API-Version 2016-10-06154

Page 162: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.env/parameter-store

Erforderlich, wenn env angegeben ist und Sie benutzerdefinierte Umgebungsvariablen abrufenmöchten, die in Amazon EC2 Systems Manager Parameter Store gespeichert sind. Enthält eineZuordnung von key/value Skaleneffekte, wobei jede Zuordnung eine einzelne benutzerdefinierteUmgebung darstellt, die in Amazon EC2 Systems Manager Parametergeschäft. key derName, den Sie später verwenden, um die Variablen der Umgebung zu beziehen, um auf diesebenutzerdefinierte Umgebungsvariable zu verweisen, und value ist der Name der benutzerdefiniertenUmgebungsvariable, die in gespeichert ist Amazon EC2 Systems Manager Parametergeschäft.Informationen zum Speichern von sensiblen Werten finden Sie unter Systemparameter fürSystemmanager und Walkthrough: Erstellen und testen Sie einen String-Parameter (Konsole) imAmazon EC2 Systems Manager Benutzerhandbuch.

Important

Um CodeBuild zu erlauben, benutzerdefinierte Umgebungsvariablen abzurufen, diein Amazon EC2 Systems Manager Parameter Store gespeichert sind, müssen Sie diessm:GetParameters-Aktion zu Ihrer CodeBuild-Servicerolle hinzufügen. WeitereInformationen finden Sie im Erstellen Sie eine CodeBuild-Servicerolle (p. 396).Alle Umgebungsvariablen, die Sie von Amazon EC2 Systems Manager Parameter Storeabrufen, werden vorhandene Umgebungsvariablen ersetzen. Wenn das Docker-Bildbeispielsweise eine Umgebungsvariable enthält, die benannt wurde MY_VAR mit einem Wertvon my_value, und Sie erhalten eine Umgebungsvariable MY_VAR mit einem Wert vonother_value, dann my_value ersetzt durch other_value. Wenn das Docker-Bild bereitseine Umgebungsvariable enthält, die benannt wurde PATH mit einem Wert von /usr/local/sbin:/usr/local/bin, und Sie erhalten eine Umgebungsvariable PATH mit einem Wertvon $PATH:/usr/share/ant/bin, dann /usr/local/sbin:/usr/local/bin wirddurch den literalen Wert ersetzt $PATH:/usr/share/ant/bin.Speichern Sie keine Umgebungsvariablen mit einem Namen, der beginnt mit CODEBUILD_.Dieses Präfix ist für den internen Gebrauch reserviert.Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wirdder Wert folgendermaßen bestimmt:• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang. Beim

Erstellen eines Builds können Sie Umgebungsvariablen hinzufügen oder überschreiben.Weitere Informationen finden Sie im Ausführen eines Build in AWS CodeBuild (p. 279).

• Der Wert in der Build-Projektdefinition folgt darauf. Beim Erstellen oder Bearbeiteneines Projekts können Sie Umgebungsvariablen auf Projektebene hinzufügen. WeitereInformationen finden Sie unter Erstellen eines Build-Projekts in AWS CodeBuild (p. 206)und Ändern der Einstellungen eines Build-Projekts in AWS CodeBuild (p. 259).

• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.env/secrets-manager

Erforderlich, wenn env angegeben ist und Sie benutzerdefinierte Umgebungsvariablenabrufen möchten, die in AWS Secrets Manager gespeichert sind. Geben Sie einen SecretsManager-reference-key mit dem folgenden Muster an:

secret-id:json-key:version-stage:version-id

• secret-id: Der Name oder Amazon-Ressourcenname (ARN), der als eindeutige ID für das Secretdient. Um auf ein Secret in Ihrem AWS-Konto zuzugreifen, geben Sie einfach den Secret-Namen an.Um auf ein Secret in einem anderen AWS-Konto zuzugreifen, geben Sie den ARN des Secrets an.

• json-key: Gibt den Schlüsselnamen des Schlüssel/Wert-Paares an, dessen Wert Sie abrufenmöchten. Wenn Sie keinen json-key angeben, ruft CodeBuild den gesamten Secret-Text ab.

• version-stage: Gibt die Secret-Version an, die Sie über die der Version zugeordnete Staging-Kennzeichnung abrufen möchten. Staging-Kennzeichnungen werden verwendet, um während desRotationsprozesses den Überblick über verschiedene Versionen zu behalten. Wenn Sie version-

API-Version 2016-10-06155

Page 163: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

stage, nicht angeben version-id. Wenn Sie keine Versionsstufe oder Versions-ID angeben,ist die Standardeinstellung, die Version mit dem Versionsstadium der Version von abzurufenAWSCURRENT.

• version-id: Gibt die eindeutige ID der Version des Secrets an, die Sie verwenden möchten.Wenn Sie angeben, version-id, nicht angeben version-stage. Wenn Sie keine Versionsstufeoder Versions-ID angeben, ist die Standardeinstellung, die Version mit dem Versionsstadium derAWSCURRENT abzurufen.

Weitere Informationen finden Sie unter Was ist AWS Secrets Manager? im AWS Secrets Manager-Benutzerhandbuch.

env/exported-variables

Optionale Zuweisung. Wird verwendet, um Umgebungsvariablen aufzulisten, die Sie exportierenmöchten. Geben Sie den Namen jeder Variablen an, die Sie in einer separaten Zeile unter exported-variables. Die Variable, die Sie exportieren möchten, muss während des Build-Vorgangs in IhremBehälter verfügbar sein. Die Variable, die Sie exportieren, kann eine Umgebungsvariable sein.

Während eines Builds ist der Wert einer Variablen ab der install-Phase verfügbar. Er kannzwischen dem Beginn der install-Phase und dem Ende der post_build-Phase aktualisiertwerden. Nach dem Ende der post_build-Phase kann sich der Wert der exportierten Variablen nichtändern.

Note

Folgendes kann nicht exportiert werden:• Amazon EC2 Systems Manager Parameter Store-Secrets, die im Build-Projekt angegeben

sind.• Secrets Manager-Secrets, die im Build-Projekt angegeben sind.• Umgebungsvariablen, die mit AWS_ beginnen.

einenv/git-credential-helper

Optionale Zuweisung. Wird verwendet, um anzugeben, ob CodeBuild verwendet den Git-Berechtigungsassistenten, um Git-Anmeldedaten bereitzustellen. yes wenn es verwendet wird.Andernfalls no oder nicht angegeben. Weitere Informationen finden Sie unter gitcredentials auf der Git-Website.

Note

git-credential-helper wird für Builds, die von einem Webhook für ein öffentliches Git-Repository ausgelöst werden, nicht unterstützt.

proxyOptionale Sequenz. Wird verwendet, um Einstellungen darzustellen, wenn Sie Ihren Build in einemexpliziten Proxy-Server ausführen. Weitere Informationen finden Sie im Ausführen von CodeBuild in einemexpliziten Proxy-Server (p. 200).

proxy/upload-artifacts

Optionale Zuweisung. Legen Sie diese auf yes fest, wenn Ihr Build in einem expliziten Proxy-ServerArtefakte hochladen soll. Der Standardwert ist no.

proxy/logs

Optionale Zuweisung. Legen Sie diese für Ihren Build in einem expliziten Proxy-Server auf yes fest,um CloudWatch Protokolle zu erstellen. Der Standardwert ist no.

API-Version 2016-10-06156

Page 164: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

phasesErforderliche Sequenz. Steht für die Befehle CodeBuild wird während jeder Phase des Build ausgeführt.

Note

In der Build-Spezifikationsversion 0.1 führt CodeBuild jeden Befehl in einer separaten Instanceder Standard-Shell in der Build-Umgebung aus. d. h., dass jeder Befehl unabhängig von allenanderen Befehlen ausgeführt wird. Daher können Sie standardmäßig keinen Einzelbefehlausführen, der auf dem Status eines vorherigen Befehls basiert (beispielsweise beim Ändernvon Verzeichnissen oder beim Einrichten von Variablen). Um diese Einschränkung zu umgehen,empfehlen wir die Nutzung von Version 0.2, die dieses Problem löst. Wenn Sie die Build-Spezifikation Version 0.1 verwenden müssen, empfehlen wir die Ansätze in Shells und Befehle inBuild-Umgebungen (p. 181).

phases/*/run-as

Optionale Sequenz. Verwenden Sie den Befehl in einer Build-Phase, um den Linux-Benutzerfestzulegen, der die zugehörigen Befehle ausführt. Wenn zusätzlich zu Beginn der buildspec-Dateirun-as global für alle Befehle angegeben wird, wird dem Benutzer auf Phasenebene Vorrangeingeräumt. Beispiel: Wenn run-as global User-1 angibt und in der install-Phase eine run-as-Anweisung User-2 definiert, werden alle Befehle in der buildspec-Datei als User-1 ausgeführt, bis aufdie Befehle in der install-Phase, die als User-2 ausgeführt werden.

Die zulässigen Build-Phasennamen sind:

phases/install

Optionale Sequenz. Steht für die Befehle, falls vorhanden, die CodeBuild während der Installationausführt. Wir empfehlen Ihnen, die Phase install nur für Installationspakete in der Build-Umgebungeinzusetzen. Beispielsweise könnten sie diese Phase nutzen, um ein Code-Testframework wie Mochaoder RSpec zu installieren.phases/install/runtime-versions

Optionale Sequenz. Eine Laufzeitversion wird mit dem Ubuntu-Standardabbild 2.0 oder höherund dem Amazon Linux 2-Standardabbild 1.0 oder höher unterstützt. Wenn dieses Argumentangegeben wird, muss mindestens eine Laufzeit in diesen Abschnitt aufgenommen werden.Geben Sie eine Laufzeit mit einer bestimmten Version an, eine Hauptversion, gefolgt von .x,um anzugeben, dass CodeBuild diese Hauptversion mit ihrer neuesten Unterversion verwendet,oder latest, um die neueste Haupt- und Unterversion zu verwenden (z. B. java: openjdk11,ruby: 2.6, nodejs: 12.x oder java: latest). Sie können die Laufzeit unter Verwendungeiner Zahl oder einer Umgebungsvariablen angeben. Wenn Sie beispielsweise das AmazonLinux 2-Standardabbild 2.0 verwenden, dann wird im Folgenden angegeben, dass Version 8 vonJava, die neueste Unterversion von Python Version 3 und eine in einer Umgebungsvariablenvon Ruby enthaltene Version installiert ist. Weitere Informationen finden Sie im Von CodeBuildbereitgestellte Docker-Images (p. 175).

phases: install: runtime-versions: java: corretto8 python: 3.x ruby: "$MY_RUBY_VAR"

Sie können eine oder mehrere Laufzeiten im Abschnitt runtime-versions Ihrer buildspec-Datei angeben. Wenn Ihre Laufzeit von einer anderen Laufzeit abhängig ist, können Sie auch die

API-Version 2016-10-06157

Page 165: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

abhängige Laufzeit in der buildspec-Datei angeben. Wenn Sie keine Laufzeiten in der buildspec-Datei angeben, wählt CodeBuild die Standardlaufzeiten aus, die in dem verwendeten Imageverfügbar sind. Wenn Sie eine oder mehrere Laufzeiten angeben, verwendet CodeBuild nur dieseLaufzeiten. Wenn keine abhängige Laufzeit angegeben wird, versucht CodeBuild, die abhängigeLaufzeit für Sie auszuwählen.

Wenn zwei angegebene Laufzeiten unvereinbar sind, schlägt der Build fehl. Beispiel: android:29 und java: openjdk11 sind miteinander unvereinbar. Wenn beide angegeben werden,schlägt der Build fehl.

Die folgenden unterstützten Laufzeiten können angegeben werden.

Laufzeiten der Plattformen Ubuntu 18.04 und Amazon Linux 2

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

28. android: 28 android: 28.x android: latestStandard:2.0

Standard:3.0

AlleImagesvonUbuntu18.04

android

29. android: 29 android: 29.x android: latestStandard:2.0

Standard:3.0

AlleImagesvonUbuntu18.04

3.0 dotnet: 3.0 dotnet: 3.x dotnet: latestStandard:2.0

UbuntuStandard:3.0

dotnet

3.1 dotnet: 3.1 dotnet: 3.x dotnet: latestStandard:3.0

UbuntuStandard:4.0

1.12 golang: 1.12 golang: 1.x golang: latestAlleImagesvonUbuntu18.04

1.13 golang: 1.13 golang: 1.x golang: latestAlleImagesvonUbuntu18.04

Golang

1.14 golang: 1.14 golang: 1.x golang: latestStandard:3.0

API-Version 2016-10-06158

Page 166: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

UbuntuStandard:4.0

8. nodejs: 8 nodejs: 8.x nodejs: latestStandard:1.0

UbuntuStandard:2.0

-10 nodejs: 10 nodejs: 10.x nodejs: latestAlleImagesvonUbuntu18.04

nodejs

12. nodejs: 12 nodejs: 12.x nodejs: latestUbuntuStandard:3.0

UbuntuStandard:4.0

openjdk8 java: openjdk8 java: openjdk8.x java: latestUbuntuStandard:2.0

UbuntuStandard:3.0

openjdk11 java: openjdk11 java: openjdk11.x java: latestUbuntuStandard:2.0

UbuntuStandard:3.0

corretto8 java: corretto8 java: corretto8.x java: latestStandard:2.0

Standard:3.0

UbuntuStandard:4.0

"java"

corretto11 java: corretto11 java: corretto11.x java: latestStandard:2.0

Standard:3.0

UbuntuStandard:4.0

7.3 php: 7.3 php: 7.x php: latestAlleImagesvonUbuntu18.04

php

7.4 php: 7.4 php: 7.x php: latestStandard:3.0

UbuntuStandard:4.0

API-Version 2016-10-06159

Page 167: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

3.7 python: 3.7 python: 3.x python: latestStandard:3.0

Aarch64:1.0

UbuntuStandard:2.0

UbuntuStandard:4.0

python

3.8 python: 3.8 python: 3.x python: latestStandard:2.0

Standard:3.0

UbuntuStandard:3.0

UbuntuStandard:4.0

2.6 ruby: 2.6 ruby: 2.x ruby: latestAlleImagesvonUbuntu18.04

ruby

2.7 ruby: 2.7 ruby: 2.x ruby: latestStandard:3.0

UbuntuStandard:4.0

Note

Wenn Sie einen runtime-versions-Abschnitt angeben und ein anderes Image als dasUbuntu-Standard-Image 2.0 oder höher oder das Amazon Linux 2 (AL2)-Standard-Image1.0 oder höher verwenden, gibt der Build folgende Warnung aus: „Skipping installof runtimes. Runtime version selection is not supported by thisbuild image aus.“.

phases/install/commands

commands: Optionale Sequenz. Enthält eine Sequenz von Skalaren, wobei jeder Skalar für einenEinzelbefehl steht, der während der Installation von CodeBuild ausgeführt wird. CodeBuild führtjeden Befehl aus, jeweils einzeln, in der aufgeführten Reihenfolge, vom Anfang bis zum Ende.

phases/install/finally

Optionaler Block. Die in einem finally-Block angegebenen Befehle werden nach den Befehlenim commands-Block ausgeführt. Die Befehle in einem finally-Block werden sogar dannausgeführt, wenn ein Befehl im commands-Block fehlschlägt. Wenn der commands-Block z. B. dreiBefehle enthält und der erste fehlschlägt, überspringt CodeBuild die verbleibenden zwei Befehleund führt alle Befehle im finally-Block aus. Die Phase ist erfolgreich, wenn alle Befehle in denBlöcken commands und finally erfolgreich ausgeführt werden. Wenn ein Befehl in einer Phasefehlschlägt, schlägt die Phase fehl.

API-Version 2016-10-06160

Page 168: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

phases/pre_build

Optionale Sequenz. Steht für die Befehle, falls vorhanden, die CodeBuild vor dem Build ausführt.Beispielsweise könnten sie diese Phase nutzen, um sich bei Amazon ECR anzumelden, oder Siekönnten npm-Abhängigkeiten installieren.phases/pre_build/commands

Erforderliche Sequenz, wenn pre_build angegeben ist. Enthält eine Sequenz von Skalaren,wobei jeder Skalar für einen Einzelbefehl steht, den CodeBuild vor dem Build ausführt. CodeBuildführt jeden Befehl aus, jeweils einzeln, in der aufgeführten Reihenfolge, vom Anfang bis zumEnde.

phases/pre_build/finally

Optionaler Block. Die in einem finally-Block angegebenen Befehle werden nach den Befehlenim commands-Block ausgeführt. Die Befehle in einem finally-Block werden sogar dannausgeführt, wenn ein Befehl im commands-Block fehlschlägt. Wenn der commands-Block z. B. dreiBefehle enthält und der erste fehlschlägt, überspringt CodeBuild die verbleibenden zwei Befehleund führt alle Befehle im finally-Block aus. Die Phase ist erfolgreich, wenn alle Befehle in denBlöcken commands und finally erfolgreich ausgeführt werden. Wenn ein Befehl in einer Phasefehlschlägt, schlägt die Phase fehl.

phases/build

Optionale Sequenz. Steht für die Befehle, falls vorhanden, die CodeBuild während des Builds ausführt.Beispielsweise könnten sie diese Phase nutzen, um Mocha, RSpec oder sbt auszuführen.phases/build/commands

commands: Erforderlich, wenn build ist angegeben. Enthält eine Sequenz von Skalaren, wobeijeder Skalar für einen Einzelbefehl steht, den CodeBuild während des Builds ausführt. CodeBuildführt jeden Befehl aus, jeweils einzeln, in der aufgeführten Reihenfolge, vom Anfang bis zumEnde.

phases/build/finally

Optionaler Block. Die in einem finally-Block angegebenen Befehle werden nach den Befehlenim commands-Block ausgeführt. Die Befehle in einem finally-Block werden sogar dannausgeführt, wenn ein Befehl im commands-Block fehlschlägt. Wenn der commands-Block z. B. dreiBefehle enthält und der erste fehlschlägt, überspringt CodeBuild die verbleibenden zwei Befehleund führt alle Befehle im finally-Block aus. Die Phase ist erfolgreich, wenn alle Befehle in denBlöcken commands und finally erfolgreich ausgeführt werden. Wenn ein Befehl in einer Phasefehlschlägt, schlägt die Phase fehl.

phases/post_build

Optionale Sequenz. Steht für die Befehle, falls vorhanden, die CodeBuild nach dem Build ausführt.Beispielsweise können Sie Maven nutzen, um die Build-Artefakte in eine Jar- oder WAR-Datei zuverpacken, oder Sie können ein Docker-Image in Amazon ECR verschieben. Dann können Sie eineBuild-Benachrichtigung über Amazon SNS senden.phases/post_build/commands

commands: Erforderlich, wenn post_build ist angegeben. Enthält eine Sequenz von Skalaren,wobei jeder Skalar für einen Einzelbefehl steht, den CodeBuild nach dem Build ausführt.CodeBuild führt jeden Befehl aus, jeweils einzeln, in der aufgeführten Reihenfolge, vom Anfang biszum Ende.

phases/post_build/finally

Optionaler Block. Die in einem finally-Block angegebenen Befehle werden nach den Befehlenim commands-Block ausgeführt. Die Befehle in einem finally-Block werden sogar dannausgeführt, wenn ein Befehl im commands-Block fehlschlägt. Wenn der commands-Block z. B. drei

API-Version 2016-10-06161

Page 169: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

Befehle enthält und der erste fehlschlägt, überspringt CodeBuild die verbleibenden zwei Befehleund führt alle Befehle im finally-Block aus. Die Phase ist erfolgreich, wenn alle Befehle in denBlöcken commands und finally erfolgreich ausgeführt werden. Wenn ein Befehl in einer Phasefehlschlägt, schlägt die Phase fehl.

Important

In einigen Build-Phasen können Befehle nicht ausgeführt werden, wenn Befehle in früherenBuild-Phasen fehlschlagen. Wenn ein Befehl beispielsweise während der Phase installfehlschlägt, wird keiner der Befehle in den Phasen pre_build, build, und post_build fürdiesen Build-Lebenszyklus ausgeführt. Weitere Informationen finden Sie im Übergang von Build-Phasen (p. 292).

reportsreport-group-name-or-arn

Optionale Sequenz. Gibt die Berichtsgruppe an, an die die Berichte gesendet werden. Ein Projektkann maximal fünf Berichtsgruppen haben. Geben Sie den ARN für eine vorhandene Berichtsgruppeoder den Namen einer neuen Berichtsgruppe an. Wenn Sie einen Namen angeben, CodeBuild erstellteine Berichtsgruppe unter Verwendung Ihres Projektnamens und des Namens, den Sie im Formatangeben <project-name>-<report-group-name>. (z. B.. Weitere Informationen finden Sie unterBenennung von Berichtsgruppen (p. 314).

reports/<report-group>/files

Erforderliche Sequenz. Stellt die Speicherorte dar, die die Rohdaten der vom Bericht generiertenTestergebnisse enthalten. Enthält eine Sequenz von Skalaren, wobei jeder Skalar eine separate Stelledarstellt, an der CodeBuild kann Testdateien relativ zum ursprünglichen Build-Speicherort oder, fallsfestgelegt, base-directory. (z. B.. Die Standorte können Folgendes umfassen:• Eine Einzeldatei (z. B. my-test-report-file.json).• Eine einzelne Datei in einem Unterverzeichnis (Beispiel: my-subdirectory/my-test-report-file.json oder my-parent-subdirectory/my-subdirectory/my-test-report-file.json).

• '**/*' steht rekursiv für alle Dateien.• my-subdirectory/* stellt alle Dateien in einem Unterverzeichnis mit dem Namen my-subdirectory.

• my-subdirectory/**/* stellt alle Dateien rekursiv dar, beginnend mit einem Unterverzeichnis mitdem Namen my-subdirectory.

reports/<report-group>/file-format

Optionale Zuweisung. Stellt das Format der Berichtsdatei dar. Wenn nicht angegeben, wird JUNITXMLverwendet. Bei diesem Wert wird nicht zwischen Groß- und Kleinschreibung unterschieden. Diemöglichen Werte sind >, =, <.

TestberichteCUCUMBERJSON

Cucumber JSONJUNITXML

JUnit XMLNUNITXML

NUnit XML

API-Version 2016-10-06162

Page 170: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

NUNIT3XML

NEinheit 3 XMLTESTNGXML

TestNG XMLVISUALSTUDIOTRX

Visual Studio TRX

CodeabdeckungsberichteCLOVERXML

XML-Datei kopierenCOBERTURAXML

Cobertura-XML-DateiJACOCOXML

JaCoCo-XML-DateiSIMPLECOV

EinfachesCov-JSONNote

reports/<report-group>/base-directory

Optionale Zuweisung. Stellt ein oder mehrere Verzeichnisse der obersten Ebene in Bezug auf denursprünglichen Build-Speicherort dar, mit denen CodeBuild ermittelt, wo die rohen Testdateiengefunden werden sollen.

reports/<report-group>/discard-paths

(Optional) Gibt an, ob die Berichtsdateiverzeichnisse in der Ausgabe abgeflacht werden. Wenndies nicht angegeben ist oder no enthält, werden Berichtsdateien mit intakter Verzeichnisstrukturausgegeben. Wenn dies yes enthält, werden alle Testdateien im selben Ausgabeverzeichnis abgelegt.Wenn beispielsweise ein Pfad zu einem Testergebnis com/myapp/mytests/TestResult.xmllautet, wird die Datei durch Angabe von yes in /TestResult.xml gespeichert.

artifactsOptionale Sequenz. Gibt an, wo CodeBuild die Build-Ausgabe finden kann und wie CodeBuild dieseauf den Upload zum S3-Ausgabe-Bucket vorbereitet. Diese Sequenz ist nicht erforderlich, wenn Siebeispielsweise ein Docker-Image erstellen und dies zu Amazon ECR verschieben, oder wenn SieEinheitentests auf Ihrem Quellcode ausführen, dies jedoch nicht erstellen.

artifacts/files

Erforderliche Sequenz. Diese stellt die Speicherorte dar, die die Build-Ausgabeartefakte in der Build-Umgebung enthalten. Enthält eine Sequenz von Skalaren, wobei jeder Skalar für einen einzelnenSpeicherort steht, an dem CodeBuild Build-Ausgabeartefakte in Bezug auf die ursprünglichen Build-Speicherorte finden kann, oder, sofern festgelegt, auf das Basisverzeichnis. Speicherorte könnenFolgendes enthalten:• Eine Einzeldatei (z. B. my-file.jar).• Eine einzelne Datei in einem Unterverzeichnis (Beispiel: my-subdirectory/my-file.jar odermy-parent-subdirectory/my-subdirectory/my-file.jar).

API-Version 2016-10-06163

Page 171: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

• '**/*' steht rekursiv für alle Dateien.• my-subdirectory/* stellt alle Dateien in einem Unterverzeichnis dar my-subdirectory.• my-subdirectory/**/* stellt alle Dateien dar, die von einem Unterverzeichnis aus wiederholt

sind my-subdirectory.

Wenn Sie Speicherorte von Build-Ausgabeartefakten angeben, kann CodeBuild die ursprünglichenBuild-Speicherorte in der Build-Umgebung lokalisieren. Sie müssen die Speicherorte von Build-Ausgabeartefakten mit dem Pfad zu den ursprünglichen Build-Speicherorten nicht voranstellen oderangeben, ./ oder ähnliches. Wenn sie den Pfad zu diesem Speicherort wissen möchten, können Siewährend eines Builds ein Befehl ausführen wie echo $CODEBUILD_SRC_DIR. Der Speicherort fürjede Build-Umgebung kann geringfügig voneinander abweichen.

artifacts/name

Optionaler Name. Gibt einen Namen für Ihr Build-Artefakt an. Dieser Name wird verwendet, wenn eineder folgenden Bedingungen zutrifft.• Sie verwenden die CodeBuild-API zum Erstellen Ihrer Builds und das overrideArtifactName-

Flag ist für das ProjectArtifacts-Objekt gesetzt, wenn ein Projekt aktualisiert wird, ein Projekterstellt wird oder ein Build gestartet wird.

• Sie verwenden die CodeBuild-Konsole zum Erstellen Ihrer Builds, in der buildspec-Datei wirdein Name angegeben und Sie wählen beim Erstellen oder Aktualisieren eines Projekts Enablesemantitic versioning (Semantisches Versioning aktivieren) aus. Weitere Informationen finden Sie imErstellen Sie ein Build-Projekt (Konsole) (p. 207).

Sie können einen Namen in der Build-Spezifikationsdatei angeben, die zur Build-Zeit berechnetwird. Der in einer Build-Spezifikationsdatei angegebene Name verwendet die Shell-Befehlssprache.Beispielsweise können Sie dem Namen Ihres Artefakts ein Datum und eine Uhrzeit anhängen, damitdieser stets eindeutig ist. Eindeutige Artefakt-Namen verhindern, dass Artefakte überschriebenwerden. Weitere Informationen finden Sie unter Shell-Befehlssprache.

Dies ist ein Beispiel für einen Artefakt-Namen, dem das Datum angefügt wurde, an dem das Artefakterstellt wurde.

version: 0.2phases: build: commands: - rspec HelloWorld_spec.rbartifacts: files: - '**/*' name: myname-$(date +%Y-%m-%d)

Dies ist ein Beispiel für einen Artefakt-Namen, der eine CodeBuild-Umgebungsvariable verwendet.Weitere Informationen finden Sie im Umgebungsvariablen in Build-Umgebungen (p. 182).

version: 0.2phases: build: commands: - rspec HelloWorld_spec.rbartifacts: files: - '**/*' name: myname-$AWS_REGION

Dies ist ein Beispiel für einen Artefakt-Namen, der eine CodeBuild-Umgebungsvariable verwendet,wobei das Erstellungsdatum des Artefakts angefügt ist.

API-Version 2016-10-06164

Page 172: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

version: 0.2phases: build: commands: - rspec HelloWorld_spec.rbartifacts: files: - '**/*' name: $AWS_REGION-$(date +%Y-%m-%d)

artifacts/discard-paths

(Optional) Gibt an, ob die Build-Artefaktnerzeichnisse in der Ausgabe abgeflacht werden. Wenndies nicht angegeben ist oder no enthält, werden Build-Artefakte mit intakter Verzeichnisstrukturausgegeben. Wenn yesenthalten ist, werden alle Build-Artefakte im selben Ausgabeverzeichnisplatziert. Wenn beispielsweise ein Pfad zu einer Datei im Build-Ausgabeartefakt com/mycompany/app/HelloWorld.java ist, wird diese Datei durch Angabe von yes in /HelloWorld.javagespeichert.

artifacts/base-directory

Optionale Zuweisung. Stellt eines oder mehrere der Top-Level-Verzeichnisse bezogen auf denursprünglichen Speicherort des Build dar, den CodeBuild verwendet, um zu ermitteln, welche Dateienund Unterverzeichnisse in den Build-Ausgabeartefakt aufgenommen werden. Zulässige Werte sind:• Ein einziges Top-Level-Verzeichnis (z. B. my-directory).• 'my-directory*' stellt alle Top-Level-Verzeichnisse dar, deren Namen mit my-directory

beginnen.

Die übereinstimmenden Top-Level-Verzeichnisse werden nicht in den Build-Ausgabeartefaktaufgenommen, sondern nur deren Dateien und Unterverzeichnisse.

Sie können files und discard-paths verwenden, um weiter zu beschränken, welche Dateien undUnterverzeichnisse aufgenommen werden. Wie zum Beispiel für die folgende Verzeichnisstruktur:

|-- my-build1| `-- my-file1.txt`-- my-build2 |-- my-file2.txt `-- my-subdirectory `-- my-file3.txt

Und für die folgende Sequenz artifacts :

artifacts: files: - '*/my-file3.txt' base-directory: my-build2

Das folgende Unterverzeichnis und die Datei werden in den Build-Ausgabeartefakt aufgenommen:

my-subdirectory `-- my-file3.txt

Während für die Sequenz artifacts Folgendes gilt:

artifacts: files: - '**/*'

API-Version 2016-10-06165

Page 173: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSyntax der Build-Spezifikation

base-directory: 'my-build*' discard-paths: yes

Die folgenden Dateien werden in den Build-Ausgabeartefakt aufgenommen:

|-- my-file1.txt|-- my-file2.txt`-- my-file3.txt

artifacts/secondary-artifacts

Optionale Sequenz. Repräsentiert einzelne oder mehrere Artefaktdefinitionen als Zuordnung zwischeneinem Artefaktbezeichner und einer Artefaktdefinition. Jeder Artefaktbezeichner in diesem Blockmuss einem im Attribut secondaryArtifacts des Projekts definierten Artefakt entsprechen. Jedeseparate Definition hat die gleiche Syntax wie der artifacts-Block oben.

Note

Die artifacts/files (p. 163) ist immer erforderlich, selbst wenn es nur sekundäreArtefakte gibt.

Angenommen sei ein Projekt mit folgender Struktur:

{ "name": "sample-project", "secondaryArtifacts": [ { "type": "S3", "location": "output-bucket1", "artifactIdentifier": "artifact1", "name": "secondary-artifact-name-1" }, { "type": "S3", "location": "output-bucket2", "artifactIdentifier": "artifact2", "name": "secondary-artifact-name-2" } ]}

Anschließend sieht die buildspec-Datei wie folgt aus:

version: 0.2

phases:build: commands: - echo Building...artifacts: files: - '**/*' secondary-artifacts: artifact1: files: - directory/file1 name: secondary-artifact-name-1 artifact2: files: - directory/file2 name: secondary-artifact-name-2

API-Version 2016-10-06166

Page 174: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für eine Build-Spezifikation

cacheOptionale Sequenz. Gibt an, wo CodeBuild die Dateien für den Cache-Upload zu einem S3-Cache-Bucketvorbereiten kann. Diese Sequenz ist nicht erforderlich, wenn der Cache-Typ des Projekts No Cache ist.

cache/paths

Erforderliche Sequenz. Steht für die Speicherorte des Caches. Enthält eine Sequenz von Skalaren,wobei jeder Skalar für einen einzelnen Speicherort steht, an dem CodeBuild Build-Ausgabeartefaktein Bezug auf die ursprünglichen Build-Speicherorte finden kann, oder, sofern festgelegt, auf dasBasisverzeichnis. Speicherorte können Folgendes enthalten:• Eine Einzeldatei (z. B. my-file.jar).• Eine einzelne Datei in einem Unterverzeichnis (Beispiel: my-subdirectory/my-file.jar odermy-parent-subdirectory/my-subdirectory/my-file.jar).

• '**/*' steht rekursiv für alle Dateien.• my-subdirectory/* stellt alle Dateien in einem Unterverzeichnis mit dem Namen my-subdirectory.

• my-subdirectory/**/* stellt alle Dateien rekursiv dar, beginnend mit einem Unterverzeichnis mitdem Namen my-subdirectory.

Important

Da es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt, istdie Formatierung in einer Build-Spezifikationsdeklaration wichtig. Wenn die Anzahl derLeerzeichen in der Build-Spezifikationsdeklaration unzulässig ist, können die Builds sofortfehlschlagen. Verwenden Sie eine YAML-Validierung, um zu testen, ob es sich bei Ihrer Build-Spezifikationsdeklaration um eine gültige YAML handelt.Wenn sie die AWS CLI, oder die AWS-SDKs verwenden, um eine Build-Spezifikation bei derErstellung oder Aktualisierung eines Build-Projekts zu deklarieren, muss die Build-Spezifikationaus einer einzigen Zeichenfolge im YAML-Format, zusammen mit den erforderlichen Escape-Zeichen für Leerzeichen und Zeilenumbruch bestehen. Es folgt ein Beispiel im nächsten Abschnitt.Wenn Sie die CodeBuild- oder AWS CodePipeline-Konsolen anstelle einer Datei buildspec.ymlverwenden, können Sie ausschließlich Befehle für die build-Phase einfügen. Statt die vorherigeSyntax zu verwenden, geben Sie in einer einzigen Ziele sämtliche Befehle an, die Sie während derBuild-Phase verwenden möchten. Bei mehreren Befehlen unterteilen Sie die einzelnen Befehle mit&&, (wie z. B. mvn test && mvn package).Sie können die CodeBuild- oder CodePipeline-Konsolen statt einer Datei buildspec.yml einsetzen,um die Speicherorte der Build-Ausgabeartefakte in der Build-Umgebung anzugeben. Statt dievorherige Syntax zu verwenden, geben Sie in einer einzigen Ziele sämtliche Speicherorte an.Bei mehreren Speicherorten trennen Sie die einzelnen Speicherorte durch ein Komma, (wie z. B.buildspec.yml, target/my-app.jar).

Beispiel für eine Build-SpezifikationHier finden Sie ein Beispiel für eine Datei buildspec.yml.

version: 0.2

env: variables: JAVA_HOME: "/usr/lib/jvm/java-8-openjdk-amd64" parameter-store: LOGIN_PASSWORD: /CodeBuild/dockerLoginPassword

phases: install:

API-Version 2016-10-06167

Page 175: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBeispiel für eine Build-Spezifikation

commands: - echo Entered the install phase... - apt-get update -y - apt-get install -y maven finally: - echo This always runs even if the update or install command fails pre_build: commands: - echo Entered the pre_build phase... - docker login –u User –p $LOGIN_PASSWORD finally: - echo This always runs even if the login command fails build: commands: - echo Entered the build phase... - echo Build started on `date` - mvn install finally: - echo This always runs even if the install command fails post_build: commands: - echo Entered the post_build phase... - echo Build completed on `date`

reports: arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1: files: - "**/*" base-directory: 'target/tests/reports' discard-paths: no reportGroupCucumberJson: files: - 'cucumber/target/cucumber-tests.xml' discard-paths: yes file-format: CUCUMBERJSON # default is JUNITXMLartifacts: files: - target/messageUtil-1.0.jar discard-paths: yes secondary-artifacts: artifact1: files: - target/artifact-1.0.jar discard-paths: yes artifact2: files: - target/artifact-2.0.jar discard-paths: yescache: paths: - '/root/.m2/**/*'

Hier ist ein Beispiel der vorherigen Build-Spezifikation, ausgedrückt in einer einzigen Zeichenfolge für dieVerwendung mit der AWS CLI oder den AWS-SDKs.

"version: 0.2\n\nenv:\n variables:\n JAVA_HOME: \"/usr/lib/jvm/java-8-openjdk-amd64\\"\n parameter-store:\n LOGIN_PASSWORD: /CodeBuild/dockerLoginPassword\n phases:\n\n install:\n commands:\n - echo Entered the install phase...\n - apt-get update -y\n - apt-get install -y maven\n finally:\n - echo This always runs even if the update or install command fails \n pre_build:\n commands:\n - echo Entered the pre_build phase...\n - docker login –u User –p $LOGIN_PASSWORD\n finally:\n - echo This always runs even if the login command fails \n build:\n commands:\n - echo Entered the build phase...\n - echo Build started on `date`\n - mvn install\n finally:\n - echo This always runs even if the install command

API-Version 2016-10-06168

Page 176: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVersionen der Build-Spezifikationen

fails\n post_build:\n commands:\n - echo Entered the post_build phase...\n - echo Build completed on `date`\n\n reports:\n reportGroupJunitXml:\n files:\n - \"**/*\"\n base-directory: 'target/tests/reports'\n discard-paths: false\n reportGroupCucumberJson:\n files:\n - 'cucumber/target/cucumber-tests.xml'\n file-format: CUCUMBERJSON\n\nartifacts:\n files:\n - target/messageUtil-1.0.jar\n discard-paths: yes\n secondary-artifacts:\n artifact1:\n files:\n - target/messageUtil-1.0.jar\n discard-paths: yes\n artifact2:\n files:\n - target/messageUtil-1.0.jar\n discard-paths: yes\n cache:\n paths:\n - '/root/.m2/**/*'"

Hier sehen Sie ein Beispiel für die Befehle in der Phase build für die Nutzung mit CodeBuild- oderCodePipeline-Konsolen.

echo Build started on `date` && mvn install

In diesen Beispielen gilt:

• Eine benutzerdefinierte Klartext-Umgebungsvariable mit dem Schlüssel JAVA_HOME und dem Wert /usr/lib/jvm/java-8-openjdk-amd64 wird eingerichtet.

• Eine benutzerdefinierte, in Amazon EC2 Systems Manager Parameter Store gespeicherteUmgebungsvariable mit der Bezeichnung dockerLoginPassword, auf die später in Build-Befehlen mitdem Schlüssel LOGIN_PASSWORD verwiesen wird.

• Sie können diese Build-Phasennamen nicht ändern. Die Befehle, die in diesem Beispiel ausgeführtwerden, sind apt-get update -y und apt-get install -y maven (um Apache Mavenzu installieren), mvn install (um den Quellcode zu kompilieren, zu testen und in ein Build-Ausgabeartefakt zu packen und andere Aktionen durchzuführen, wie z. B. das Build-Ausgabeartefakt inseinem internen Repository zu installieren), docker login (um sich mit dem Passwort, das dem Wertder benutzerdefinierten Umgebungsvariablen dockerLoginPassword entspricht, die Sie in AmazonEC2 Systems Manager Parameter Store festgelegt haben, in Docker anzumelden) und einige echo-Befehle. Die Befehle echo wurden hier aufgenommen, um zu zeigen, wie und in welcher ReihenfolgeCodeBuild Befehle ausführt.

• files stellt die Dateien dar, die in den Build-Ausgabespeicherort hochgeladen werden sollen. In diesemBeispiel CodeBuild lädt die einzelne Datei hoch messageUtil-1.0.jar. (z. B..) Die SchaltflächemessageUtil-1.0.jar Datei befindet sich im relativen Verzeichnis mit dem Namen target in derBuild-Umgebung. Da discard-paths: yes angegeben wird, wird messageUtil-1.0.jar direkthochgeladen (und nicht an ein intermediäres Verzeichnis mit dem Namen target). Der DateinamemessageUtil-1.0.jar und der dazugehörige Verzeichnisname von target basiert auf der Weise,wie - nur für dieses Beispiel - unter den Apache Maven Build-Ausgabeartefakte erstellt und gespeichertwerden. In Ihren eigenen Szenarios lauten diese Dateinamen und Verzeichnisse anders.

• reports stellt zwei Berichtsgruppen dar, die während des Builds Berichte generieren:• arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1 gibt den ARN einer Berichtsgruppe an. Testergebnisse, die vom Test-Framework generiertwerden, befinden sich im Verzeichnis target/tests/reports. Das Dateiformat ist JunitXml undder Pfad wird nicht aus den Dateien entfernt, die Testergebnisse enthalten.

• reportGroupCucumberJson gibt eine neue Berichtsgruppe an. Wenn der Name des Projekts my-project lautet, wird beim Ausführen eines Builds eine Berichtsgruppe mit dem Namen my-project-reportGroupCucumberJson erstellt. Die vom Test-Framework generierten Testergebnisse befindensich in cucumber/target/cucumber-tests.xml. (z. B. Das Testdateiformat ist CucumberJsonund der Pfad wird aus den Dateien entfernt, die Testergebnisse enthalten.

Versionen der Build-SpezifikationenIn der folgenden Tabelle werden Versionen von Build-Spezifikationen und die Änderungen zwischen denVersionen aufgeführt.

API-Version 2016-10-06169

Page 177: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchChargenbuildSpezifikationsreferenz

Version () Änderungen

-0.2 • environment_variables wurde umbenanntin env.

• plaintext wurde umbenannt in variables.• Die type-Eigenschaft für artifacts ist

veraltet.• In Version 0.1 führt AWS CodeBuild jeden

Build-Befehl in einer separaten Instance derStandard-Shell in der Build-Umgebung aus. InVersion 0.2 führt CodeBuild jeden Build-Befehlin derselben Instance der Standard-Shell in derBuild-Umgebung aus.

0,1 USD Dies ist die erste Definition des Build-Spezifikationsformats.

Chargenbuild-Build-ReferenzDieses Thema enthält die GebäudespezifikationenReferenz für Chargenerstellungs-Eigenschaften.

batchOptionale Zuweisung. Die Batch-Build-Einstellungen für das Projekt.

Batch/schnell-versagen

(Optional) Für Baudiagramme wird diese Eigenschaft nicht verwendet und immer true.false

 – der Standardwert Alle laufenden Builds werden abgeschlossen.true

Alle laufenden Builds werden gestoppt, wenn eines der Builds fehlschlägt.

Standardmäßig laufen alle Batch-Build-Aufgaben mit den Build-Einstellungen, wie env und phases, in derBuildspec-Datei angegeben. Sie können die Standardeinstellungen für die Erstellung überschreiben, indemSie verschiedene env Werte oder eine andere Buildspec-Datei im batch/<batch-type>/buildspecParameter.

Der Inhalt der batch Eigenschaft variiert je nach Art des angegebenen Batch-Builds. Die möglichen Batch-Build-Typen sind:

• batch/build-graph (p. 170)• batch/build-list (p. 172)• batch/build-matrix (p. 173)

batch/build-graph

Definiert eine Build-Diagramm. Ein Build-Diagramm definiert eine Reihe von Aufgaben, die Abhängigkeitenbei anderen Aufgaben im Batch aufweisen.

API-Version 2016-10-06170

Page 178: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchChargenbuildSpezifikationsreferenz

Batch/Build-Graph/buildspec

(Optional) Pfad und Dateiname der Datei, die für diese Aufgabe verwendet werden soll.Batch/Build-Graph/abhängen

Eine Reihe von Aufgabenkennungen, von denen diese Aufgabe abhängt. Diese Aufgabe läuft erst,wenn diese Aufgaben abgeschlossen sind.

Batch/Build-Graph/Einenv

(Optional) Die Übersteuerungen für die Aufgabe werden für die Aufgabe erstellt.Batch/Build-Graph/Env/Berechnungstyp

Die Kennung des Rechnungstypen, die für die Aufgabe verwendet wird. Siehe Computetype inthe section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) für möglicheWerte.

Batch/Build-Graph/Env/Bild

Die Kennung des Bildes, das für die Aufgabe verwendet wird. Siehe Bildkennung in the sectioncalled “Von CodeBuild bereitgestellte Docker-Images” (p. 175) für mögliche Werte.

Batch/Build-Graph/Env/privilegierter Modus

(Optional) Ein boolescher Wert, der anzeigt, ob der Docker-Daemon innerhalb eines Docker-Containers ausgeführt werden soll. Auf einstellen true nur wenn das Build-Projekt verwendetwird, um Docker-Bilder aufzubauen. Andernfalls schlägt ein Build fehl, der versucht, mit demDocker-Daemon zu interagieren. Die Standardeinstellung lautet false.

Batch/Build-Graph/Env/Typ

Die Kennung des zu verwendenden Umgebungstypen für die Aufgabe. Siehe Umgebungstyp inthe section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) für möglicheWerte.

Batch/Build-Graph/Env/Variablen

Die Umgebungsvariablen, die in der Build-Umgebung vorhanden sind. Weitere Informationenfinden Sie unter env/variables (p. 154).

Batch/Build-Graph/Kennung

Erforderlich Die Kennung der Aufgabe.

Im Folgenden wird ein Beispiel für einen Build-Diagrammeintrag erstellt:

batch: build-graph: - identifier: linux_small env: compute-type: BUILD_GENERAL1_SMALL - identifier: linux_medium env: compute-type: BUILD_GENERAL1_MEDIUM depend-on: - linux_small - identifier: linux_large env: compute-type: BUILD_GENERAL1_LARGE depend-on: - linux_medium

API-Version 2016-10-06171

Page 179: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchChargenbuildSpezifikationsreferenz

batch/build-listDefiniert eine Build-Liste. Eine Build-Liste wird verwendet, um eine Anzahl von Aufgaben zu definieren, dieparallel ausgeführt werden.

Batch/Build-Liste/buildspec

(Optional) Pfad und Dateiname der Datei, die für diese Aufgabe verwendet werden soll.Batch/Build-Liste/Einenv

(Optional) Die Übersteuerungen für die Aufgabe werden für die Aufgabe erstellt.Batch/Build-Liste/Env/Berechnungstyp

Die Kennung des Rechnungstypen, die für die Aufgabe verwendet wird. Siehe Computetype inthe section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) für möglicheWerte.

Batch/Build-Liste/Env/Bild

Die Kennung des Bildes, das für die Aufgabe verwendet wird. Siehe Bildkennung in the sectioncalled “Von CodeBuild bereitgestellte Docker-Images” (p. 175) für mögliche Werte.

Batch/Build-Liste/Env/privilegierter Modus

(Optional) Ein boolescher Wert, der anzeigt, ob der Docker-Daemon innerhalb eines Docker-Containers ausgeführt werden soll. Auf einstellen true nur wenn das Build-Projekt verwendetwird, um Docker-Bilder aufzubauen. Andernfalls schlägt ein Build fehl, der versucht, mit demDocker-Daemon zu interagieren. Die Standardeinstellung lautet false.

Batch/Build-Liste/Env/Typ

Die Kennung des zu verwendenden Umgebungstypen für die Aufgabe. Siehe Umgebungstyp inthe section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) für möglicheWerte.

Batch/Build-Liste/Env/Variablen

Die Umgebungsvariablen, die in der Build-Umgebung vorhanden sind. Weitere Informationenfinden Sie unter env/variables (p. 154).

Batch/Build-Liste/Kennung

(Optional) Die Kennung der Aufgabe.Batch/Build-Liste/ignorieren-Fehler

(Optional) Ein boolescher Wert, der anzeigt, ob Fehler im Stapel ignoriert werden können.false

 – der Standardwert Wenn eine Build-Aufgabe fehlschlägt, schlägt der Batch-Build nicht sofort fehl.true

Wenn eine Build-Aufgabe fehlschlägt, laufen die übrigen Build-Aufgaben weiterhin.

Im Folgenden finden Sie ein Beispiel für eine Build-Liste-BuildSpec-Eingabe:

batch: fast-fail: false build-list: - identifier: linux_small env: compute-type: BUILD_GENERAL1_SMALL - identifier: windows_medium

API-Version 2016-10-06172

Page 180: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchChargenbuildSpezifikationsreferenz

env: type: WINDOWS_CONTAINER image: aws/codebuild/windows-base:2.0 compute-type: BUILD_GENERAL1_MEDIUM

batch/build-matrix

Definiert eine Matrix erstellen. Eine Build Matrix wird verwendet, um Aufgaben zu definieren, die parallel mitverschiedenen Umgebungen ausgeführt werden. CodeBuild erstellt eine separate Build-Funktion für jedemögliche Umgebungskonfiguration.

Batch/Build-Matrix/statisch

Die statischen Eigenschaften gelten für alle Build-Aufgaben.Batch/Build-Matrix/statisch/ignorieren-Fehler

(Optional) Ein boolescher Wert, der anzeigt, ob Fehler im Stapel ignoriert werden können.false

 – der Standardwert Wenn eine Build-Aufgabe fehlschlägt, schlägt der Batch-Build nicht sofortfehl.

true

Wenn eine Build-Aufgabe fehlschlägt, laufen die übrigen Build-Aufgaben weiterhin.Batch/Build-Matrix/statisch/Einenv

(Optional) Die Übersteuerungen für die Aufgabe werden für die Aufgabe erstellt.Batch/Build-Matrix/statisch/env/privilegierter Modus

(Optional) Ein boolescher Wert, der anzeigt, ob der Docker-Daemon innerhalb eines Docker-Containers ausgeführt werden soll. Auf einstellen true nur wenn das Build-Projekt verwendetwird, um Docker-Bilder aufzubauen. Andernfalls schlägt ein Build fehl, der versucht, mit demDocker-Daemon zu interagieren. Die Standardeinstellung lautet false.

Batch/Build-Matrix/statisch/env/Typ

(Optional) Die Kennung des zu verwendenden Umgebungstypen für die Aufgabe.Siehe Umgebungstyp in the section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) für mögliche Werte.

Batch/Build-Matrix/dynamisch

Die dynamischen Eigenschaften definieren die Build Matrix.Batch/Build-Matrix/dynamisch/buildspec

(Optional) Pfad und Dateiname der Datei, die für diese Aufgabe verwendet werden soll.Batch/Build-Matrix/dynamisch/Einenv

(Optional) Die Übersteuerungen für die Aufgabe werden für die Aufgabe erstellt.Batch/Build-Matrix/dynamisch/env/Berechnungstyp

Die Kennung des Rechnungstypen, die für die Aufgabe verwendet wird. Siehe Computetypein the section called “Arten der Datenverarbeitung bei der Build-Umgebung” (p. 180) fürmögliche Werte.

Batch/Build-Matrix/dynamisch/env/Bild

(Optional) Die Kennung des Bildes, das für die Aufgabe verwendet wird. Siehe Bildkennungin the section called “Von CodeBuild bereitgestellte Docker-Images” (p. 175) für möglicheWerte.

API-Version 2016-10-06173

Page 181: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Umgebungsreferenz

Batch/Build-Matrix/dynamisch/env/Variablen

Die Umgebungsvariablen, die in der Build-Umgebung vorhanden sind. Weitere Informationenfinden Sie unter env/variables (p. 154).

Wenn Ihre Build Matrix beispielsweise zwei Bilder und drei Werte für eine Umgebungsvariable aufweist, wiez. B.:

batch: build-matrix: static: ignore-failure: false env: type: LINUX_CONTAINER privileged-mode: true dynamic: env: image: - aws/codebuild/amazonlinux2-x86_64-standard:3.0 - aws/codebuild/windows-base:2.0 variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3

CodeBuild erstellt sechs Builds:

• aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE1• aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE2• aws/codebuild/amazonlinux2-x86_64-standard:3.0 / MY_VAR=VALUE3• aws/codebuild/windows-base:2.0 / MY_VAR=VALUE1• aws/codebuild/windows-base:2.0 / MY_VAR=VALUE2• aws/codebuild/windows-base:2.0 / MY_VAR=VALUE3

Jeder Build hat die folgenden Einstellungen:

• ignore-failure eingestellt auf false• env/type eingestellt auf LINUX_CONTAINER• env/privileged-Modus eingestellt auf true

Build-Umgebungsreferenz für AWS CodeBuildWenn Sie anrufen AWS CodeBuild um einen Build auszuführen, müssen Sie Informationen über dieBuild-Umgebung bereitstellen. Eine Build-Umgebung stellt eine Kombination aus Betriebssystem,Programmiersprachenlaufzeit und Tools dar, die CodeBuild zum Ausführen eines Builds verwendet.Weitere Informationen zur Funktionsweise einer Build-Umgebung finden Sie unter. Funktionsweise vonCodeBuild (p. 3).

Eine Build-Umgebung enthält ein Docker-Image. Weitere Informationen finden Sie unter the Dockerglossary auf der Docker Docs-Website.

Wenn sie CodeBuild Informationen über die Build-Umgebung bereitstellen, geben Sie die Kennung einerDocker-Image in einem unterstützten Repository-Typ an. Dazu gehören das CodeBuild-Docker-Image-

API-Version 2016-10-06174

Page 182: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVon CodeBuild bereitgestellte Docker-Images

Repository, öffentlich verfügbare Images in Docker Hub und Amazon Elastic Container Registry (AmazonECR)-Repositorys, für die Ihr AWS-Konto zugriffsberechtigt ist:

• Wir empfehlen Ihnen, Docker-Images zu verwenden, die im CodeBuild-Docker-Image-Repositorygespeichert sind, weil diese auf den Einsatz mit dem Service abgestimmt sind. Weitere Informationenfinden Sie im Von CodeBuild bereitgestellte Docker-Images (p. 175).

• Um die Kennung eines öffentlich verfügbaren Docker-Image zu erhalten, das in Docker Hub gespeichertist, lesen Sie bitte Searching for Repositories auf der Docker Docs-Website.

• Weitere Informationen zur Arbeitsweise mit Docker-Images, die in Amazon ECR-Repositorys in IhremAWS-Konto gespeichert sind, finden Sie unter Amazon ECR-Beispiel (p. 54).

Zusätzlich zur Kennung für ein Docker-Image geben Sie auch eine Reihe vonDatenverarbeitungsressourcen an, die die Build-Umgebung verwendet. Weitere Informationen finden Sie imArten der Datenverarbeitung bei der Build-Umgebung (p. 180).

Themen• Von CodeBuild bereitgestellte Docker-Images (p. 175)• Arten der Datenverarbeitung bei der Build-Umgebung (p. 180)• Shells und Befehle in Build-Umgebungen (p. 181)• Umgebungsvariablen in Build-Umgebungen (p. 182)• Hintergrundaufgaben in Build-Umgebungen (p. 185)

Von CodeBuild bereitgestellte Docker-ImagesAWS CodeBuild verwaltet die folgenden Docker-Images, die in den CodeBuild- und AWS CodePipeline-Konsolen verfügbar sind.

Plattform Image-Kennung Definition

Amazon Linux 2 aws/codebuild/amazonlinux2-x86_64-standard:3.0

al2/standard/3.0

Amazon Linux 2 aws/codebuild/amazonlinux2-x86_64-standard:2.0

al2/standard/2.0

Amazon Linux 2 aws/codebuild/amazonlinux2-aarch64-standard:1.0

al2/aarch64/standard/1.0

Ubuntu 18.04 aws/codebuild/standard:4.0

ubuntu/standard/4.0

Ubuntu 18.04 aws/codebuild/standard:3.0

ubuntu/standard/3.0

Ubuntu 18.04 aws/codebuild/standard:2.0 ¹

ubuntu/standard/2.0

Windows Server Core 2016 aws/codebuild/windows-base:2.0

N/A

Kern von Windows Server 2019 aws/codebuild/windows-base:2019-1.0

N/A

API-Version 2016-10-06175

Page 183: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVon CodeBuild bereitgestellte Docker-Images

¹ Nach Juni 2020 nicht mehr instandgehalten.

Die neueste Version jedes Abbilds wird zwischengespeichert. Wenn Sie die Version genauer angeben,stellt CodeBuild diese Version anstelle der zwischengespeicherten Version bereit. Dies kann die Build-Zeiten verlängern. Um von der Zwischenspeicherung zu profitieren, geben Sie beispielsweise aws/codebuild/amazonlinux2-x86_64-standard:3.0 anstelle einer granularen Version wie aws/codebuild/amazonlinux2-x86_64-standard:3.0-1.0.0 an.

Sie können eine oder mehrere Laufzeiten im Abschnitt runtime-versions Ihrer buildspec-Dateiangeben. Wenn Ihre Laufzeit von einer anderen Laufzeit abhängig ist, können Sie auch die abhängigeLaufzeit in der buildspec-Datei angeben. Wenn Sie keine Laufzeiten in der buildspec-Datei angeben, wähltCodeBuild die Standardlaufzeiten aus, die in dem verwendeten Image verfügbar sind. Wenn Sie eine odermehrere Laufzeiten angeben, verwendet CodeBuild nur diese Laufzeiten. Wenn keine abhängige Laufzeitangegeben wird, versucht CodeBuild, die abhängige Laufzeit für Sie auszuwählen. – Weitere Informationenfinden Sie unter Specify runtime versions in the buildspec file.

Wenn Sie eine Laufzeit im Abschnitt runtime-versions Ihrer BuildSpec-Datei angeben, können Sie einebestimmte Version, eine spezifische Hauptversion und die neueste Unterversion oder die neueste Versionangeben. In der folgenden Tabelle sind die verfügbaren Laufzeiten und deren Angabe aufgeführt.

Laufzeiten der Plattformen Ubuntu 18.04 und Amazon Linux 2

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

28. android: 28 android: 28.x android: latestStandard:2.0

Standard:3.0

AlleImagesvonUbuntu18.04

android

29. android: 29 android: 29.x android: latestStandard:2.0

Standard:3.0

AlleImagesvonUbuntu18.04

3.0 dotnet: 3.0 dotnet: 3.x dotnet: latestStandard:2.0

UbuntuStandard:3.0

dotnet

3.1 dotnet: 3.1 dotnet: 3.x dotnet: latestStandard:3.0

UbuntuStandard:4.0

Golang 1.12 golang: 1.12 golang: 1.x golang: latestAlleImagesvonUbuntu18.04

API-Version 2016-10-06176

Page 184: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVon CodeBuild bereitgestellte Docker-Images

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

1.13 golang: 1.13 golang: 1.x golang: latestAlleImagesvonUbuntu18.04

1.14 golang: 1.14 golang: 1.x golang: latestStandard:3.0

UbuntuStandard:4.0

8. nodejs: 8 nodejs: 8.x nodejs: latestStandard:1.0

UbuntuStandard:2.0

-10 nodejs: 10 nodejs: 10.x nodejs: latestAlleImagesvonUbuntu18.04

nodejs

12. nodejs: 12 nodejs: 12.x nodejs: latestUbuntuStandard:3.0

UbuntuStandard:4.0

openjdk8 java: openjdk8 java: openjdk8.x java: latestUbuntuStandard:2.0

UbuntuStandard:3.0

openjdk11 java: openjdk11 java: openjdk11.x java: latestUbuntuStandard:2.0

UbuntuStandard:3.0

corretto8 java: corretto8 java: corretto8.x java: latestStandard:2.0

Standard:3.0

UbuntuStandard:4.0

"java"

corretto11 java: corretto11 java: corretto11.x java: latestStandard:2.0

Standard:3.0

UbuntuStandard:4.0

API-Version 2016-10-06177

Page 185: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVon CodeBuild bereitgestellte Docker-Images

Laufzeitname Version () Spezifische Version Spezifische Haupt- undneueste Unterversion

AktuelleVersion

Abbild(er)

7.3 php: 7.3 php: 7.x php: latestAlleImagesvonUbuntu18.04

php

7.4 php: 7.4 php: 7.x php: latestStandard:3.0

UbuntuStandard:4.0

3.7 python: 3.7 python: 3.x python: latestStandard:3.0

Aarch64:1.0

UbuntuStandard:2.0

UbuntuStandard:4.0

python

3.8 python: 3.8 python: 3.x python: latestStandard:2.0

Standard:3.0

UbuntuStandard:3.0

UbuntuStandard:4.0

2.6 ruby: 2.6 ruby: 2.x ruby: latestAlleImagesvonUbuntu18.04

ruby

2.7 ruby: 2.7 ruby: 2.x ruby: latestStandard:3.0

UbuntuStandard:4.0

Note

Das aws/codebuild/amazonlinux2-aarch64-standard:1.0-Image unterstützt die AndroidRuntime (ART) nicht.

Das Basis-Abbild von Windows Server Core 2016 enthält die folgenden Laufzeiten.

Laufzeitname Ausführung in windows-base:2.0

dotnet 2.2, 3.1

Golang 1.13

API-Version 2016-10-06178

Page 186: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVon CodeBuild bereitgestellte Docker-Images

Laufzeitname Ausführung in windows-base:2.0

nodejs 10.18, 12.14

"java" openjdk11

php 7.3, 7.4

python 3.7

ruby 2.6

Das Basis-Image des Windows Server Core 2019 enthält die folgenden Laufzeiten.

Laufzeitname Ausführung in windows-base:2019-1.0

dotnet 3.1.3

Golang 1.14

nodejs Veranstaltungsraum"Variante" und "

"java" corretto11

php 7.4.7 (Übersicht)

powershell/ 7.0,2 (Durchführung)

python 3.8.3 (dreizehnte Prozent)

ruby 2.7

Note

Das Basisabbild der Plattformen Windows Server Core 2016 und Windows Server Core 2016 istim USA Ost (Nord-Virginia), , und Sie haben die Möglichkeit USA Ost (Ohio), , und Sie haben dieMöglichkeit USA West (Oregon), und Europa (Irland) Nur Regionen.

Sie können eine Build-Spezifikation verwenden, um andere Komponenten (z. B. die AWS CLI, ApacheMaven, Apache Ant, Mocha, RSpec oder ähnliches) während der install Build-Phase installieren.Weitere Informationen finden Sie im Beispiel für eine Build-Spezifikation (p. 167).

CodeBuild aktualisiert die Liste der Docker-Images häufig. Die aktuelle Liste erhalten Sie, wenn Sie einender folgenden Schritte ausführen:

• Wählen Sie in der CodeBuild-Konsole im Assistenten Create build project (Build-Projekt erstellen) oderauf der Seite Edit Build Project (Build-Projekt bearbeiten) für Environment image (Umgebungsimage)die Option Managed image (Verwaltetes Image) aus. Wählen Sie aus den Dropdown-Listen Operatingsystem (Betriebssystem), Runtime (Laufzeit) und Runtime version (Laufzeitversion) aus. WeitereInformationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207) oder Ändern derEinstellungen eines Build-Projekts (Konsole) (p. 259).

• Führen Sie für AWS CLI den Befehl list-curated-environment-images aus:

aws codebuild list-curated-environment-images

API-Version 2016-10-06179

Page 187: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArten der Datenverarbeitung bei der Build-Umgebung

• Rufen Sie für die AWS-SDKs die Operation ListCuratedEnvironmentImages für dieZielprogrammiersprache aus. Weitere Informationen finden Sie unter AWS SDKs- und Tools-Referenz (p. 404).

Arten der Datenverarbeitung bei der Build-UmgebungAWS CodeBuild bietet Build-Umgebungen mit dem folgenden verfügbaren Speicher, vCPUs und derfolgenden verfügbaren Festplattenkapazität:

Betriebssystem (Linux)

DatenverarbeitungcomputeTypeWert

Arbeitsspeicher vCPUs FestplattenkapazitätUmgebungstyp

build.general1.smallBUILD_GENERAL1_SMALL3 GB 2. 64 GB LINUX_CONTAINER

build.general1.mediumBUILD_GENERAL1_MEDIUM7 GB 4. 128 GB LINUX_CONTAINER

build.general1.largeBUILD_GENERAL1_LARGE15 GB 8. 128 GB LINUX_CONTAINER

build.general1.largeBUILD_GENERAL1_LARGE255 GB 32 50 GB LINUX_GPU_CONTAINER

build.general1.largeBUILD_GENERAL1_LARGE16 GB 8. 50 GB ARM_CONTAINER

build.general1.2xlargeBUILD_GENERAL1_2XLARGE145 GB 72 824 GB (SSD) LINUX_CONTAINER

Der für jede Build-Umgebung aufgelistete Speicherplatz ist nur in dem durch die CODEBUILD_SRC_DIR-Umgebungsvariable angegebenen Verzeichnis verfügbar.

Note

Einige Umgebungs- und Compute-Typen haben Einschränkungen:

• Der Umgebungstyp LINUX_GPU_CONTAINER ist nur in Regionen verfügbar USA Ost (Nord-Virginia), , und Sie haben die Möglichkeit USA West (Oregon), , und Sie haben die MöglichkeitKanada (Zentral), , und Sie haben die Möglichkeit Europa (Irland), , und Sie haben dieMöglichkeit Europa (London), , und Sie haben die Möglichkeit Europa (Frankfurt), , und zwarAsien-Pazifik (Tokio), , und Sie haben die Möglichkeit Asien-Pazifik (Seoul), , und Sie habendie Möglichkeit Asien-Pazifik (Singapur), , und zwar Asien-Pazifik (Sydney), , und Sie haben dieMöglichkeit China (Peking), und China (Ningxia).

• Der Umgebungstyp ARM_CONTAINER ist nur in Regionen verfügbar USA Ost (Nord-Virginia), ,und Sie haben die Möglichkeit USA Ost (Ohio), , und Sie haben die Möglichkeit USA West(Oregon), , und Sie haben die Möglichkeit Europa (Irland), , und Sie haben die MöglichkeitAsien-Pazifik (Mumbai), , und Sie haben die Möglichkeit Asien-Pazifik (Tokio), , und Sie habendie Möglichkeit Asien-Pazifik (Sydney), und Europa (Frankfurt).

• Der Berechnungstyp build.general1.2xlarge ist nur in Regionen verfügbar USA Ost(Nord-Virginia), , und Sie haben die Möglichkeit USA Ost (Ohio), , und Sie haben die MöglichkeitUSA West (Nordkalifornien), , und Sie haben die Möglichkeit USA West (Oregon), , und Siehaben die Möglichkeit Kanada (Zentral), , und Sie haben die Möglichkeit Südamerika (SãoPaulo), , und Sie haben die Möglichkeit Europa (Stockholm), , und Sie haben die MöglichkeitEuropa (Irland), , und zwar Europa (London), , und Sie haben die Möglichkeit Europa (Paris), ,und Sie haben die Möglichkeit Europa (Frankfurt), , und zwar Naher Osten (Bahrain), , und Siehaben die Möglichkeit Asien-Pazifik (Hongkong), , und Sie haben die Möglichkeit Asien-Pazifik(Tokio), , und Sie haben die Möglichkeit Asien-Pazifik (Seoul), , und Sie haben die MöglichkeitAsien-Pazifik (Singapur), , und Sie haben die Möglichkeit Asien-Pazifik (Sydney), , und zwarAsien-Pazifik (Mumbai), , und Sie haben die Möglichkeit China (Peking), und China (Ningxia).

API-Version 2016-10-06180

Page 188: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchShells und Befehle in Build-Umgebungen

• Für den Compute-Typ build.general1.2xlarge werden Docker-Images bis zu 100 GBunkomprimiert unterstützt.

Betriebssystem Windows:

DatenverarbeitungcomputeTypeWert

Arbeitsspeicher vCPUs FestplattenkapazitätUmgebungstyp

build.general1.mediumBUILD_GENERAL1_MEDIUM7 GB 4. 128 GB WINDOWS_CONTAINER

FENSTER_SERVER_2019_BEHÄLTER

build.general1.largeBUILD_GENERAL1_LARGE15 GB 8. 128 GB WINDOWS_CONTAINER

FENSTER_SERVER_2019_BEHÄLTER

Note

Für benutzerdefinierte Build-Umgebung-Images unterstützt CodeBuild Docker-Imagesbis zu 50 GB (unkomprimiert) unter Linux und Windows, und zwar unabhängig vomDatenverarbeitungstyp. Zum Prüfen der Größe des Build-Image nutzen Sie Docker und führen denBefehl docker images REPOSITORY:TAG aus.

So wählen Sie einen Datenverarbeitungstyp aus:

• Erweitern Sie in der CodeBuild-Konsole im Assistenten Create build project (Build-Projekt erstellen)oder auf der Seite Edit Build Project (Build-Projekt erstellen) in Environment (Umgebung) die OptionAdditional configuration (Zusätzliche Konfiguration). Wählen Sie dann eine der Optionen in Computetype (Datenverarbeitungstyp) aus. Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt(Konsole) (p. 207) oder Ändern der Einstellungen eines Build-Projekts (Konsole) (p. 259).

• Führen Sie für die AWS CLI den Befehl create-project oder update-project aus, der den WertcomputeType des environment-Objekts angibt. Weitere Informationen finden Sie unter Erstelleneines Build-Projekts (AWS CLI) (p. 217) oder Ändern der Einstellungen eines Build-Projekts (AWSCLI) (p. 268).

• Rufen Sie für AWS-SDKs das Äquivalent der Operation CreateProject oder UpdateProject für IhreZielprogrammiersprache auf, die das Äquivalent des Werts computeType des environment-Objektsangibt. Weitere Informationen finden Sie unter AWS SDKs- und Tools-Referenz (p. 404).

Sie können Amazon EFS für den Zugriff auf mehr Speicherplatz in Ihrem Build-Container verwenden.Weitere Informationen finden Sie im Amazon Elastic File System-Beispiel für AWS CodeBuild (p. 58). WennSie während eines Builds Container-Festplattenspeicher bearbeiten möchten, dann muss der Build imprivilegierten Modus ausgeführt werden.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierte Modusgewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. Weitere Informationenfinden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

Shells und Befehle in Build-UmgebungenSie geben eine Reihe von Befehlen für AWS CodeBuild an, die in einer Build-Umgebung während desBuild-Lebenszyklus ausgeführt werden (z. B. Installieren der Build-Abhängigkeiten sowie Testen undKompilieren Ihres Quellcodes). Es gibt mehrere Möglichkeiten, diese Befehle anzugeben:

API-Version 2016-10-06181

Page 189: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchUmgebungsvariablen in Build-Umgebungen

• Erstellen Sie eine Build-Spezifikationsdatei und schließen Sie diese in Ihren Quellcode ein. In dieserDatei geben Sie die Befehle an, die Sie in jeder Phase des Build-Lebenszyklus ausführen möchten.Weitere Informationen finden Sie unter Build-Spezifikationsreferenz für CodeBuild (p. 150).

• Verwenden Sie zur Erstellung eines Build-Projekts die CodeBuild-Konsole. Geben Sie unter Insert buildcommands (Build-Befehle eingeben) für Build commands (Build-Befehle) die Befehle ein, die Sie in derbuild-Phase ausführen möchten. Weitere Informationen finden Sie im Erstellen Sie ein Build-Projekt(Konsole) (p. 207).

• Verwenden Sie die CodeBuild-Konsole, um die Einstellungen eines Build-Projekts zu ändern. Geben Sieunter Insert build commands (Build-Befehle eingeben) für Build commands (Build-Befehle) die Befehleein, die Sie in der build-Phase ausführen möchten. Weitere Informationen finden Sie im Ändern derEinstellungen eines Build-Projekts (Konsole) (p. 259).

• Nutzen Sie die AWS CLI oder AWS-SDKs zur Erstellung eines Build-Projekts oder zum Ändern derEinstellungen eines solchen. Greifen Sie auf den Quellcode zu, der eine Build-Spezifikationsdatei mitIhren Befehlen enthält, oder geben Sie eine einzelne Zeichenfolge ein, die die Inhalte einer äquivalentenBuild-Spezifikationsdatei enthält. Weitere Informationen finden Sie unter Erstellen eines Build-Projekts() (p. 206) oder Ändern der Einstellungen eines Build-Projekts () (p. 259).

• Verwenden Sie die AWS CLI- oder AWS-SDKs, um einen Build zu starten, der eine Build-Spezifikationsdatei oder eine einzelne Zeichenfolge angibt, die die Inhalte einer äquivalenten Build-Spezifikationsdatei enthält. Weitere Informationen finden Sie in der Beschreibung für den WertbuildspecOverride in Ausführen eines Build () (p. 279).

Sie können einen beliebigen Shell Command Language (sh)-Befehl angeben. In der Build-Spezifikationsversion 0.1 führt CodeBuild jeden Shell-Befehl in einer separaten Instance in der Build-Umgebung aus. d. h., dass jeder Befehl unabhängig von allen anderen Befehlen ausgeführt wird. Daherkönnen Sie standardmäßig keinen Einzelbefehl ausführen, der auf dem Status eines vorherigen Befehlsbasiert (beispielsweise beim Ändern von Verzeichnissen oder beim Einrichten von Variablen). Um dieseEinschränkung zu umgehen, empfehlen wir die Nutzung von Version 0.2, die dieses Problem löst. WennSie Version 0.1 verwenden müssen, empfehlen wir folgenden Ansätze:

• Schließen Sie ein Shell-Skript in Ihren Quellcode ein, das die Befehle, die Sie ausführen möchten, ineiner einzelnen Instance der Standard-Shell enthält. Sie könnten beispielsweise eine Datei mit demNamen my-script.sh in Ihrem Quellcode, der Befehle wie cd MyDir; mkdir -p mySubDir; cdmySubDir; pwd;. (z. B.. Geben Sie dann in Ihrer buildspec-Datei den Befehl an. ./my-script.sh.

• Geben Sie in Ihrer Build-Spezifikationsdatei oder für die Build commands (Build-Befehle)-Einstellungausschließlich für die build-Phase einen einzelnen Befehl an, der alle Befehle enthält, die Sie in einereinzelnen Instance der Standard-Shell ausführen möchten (z. B cd MyDir && mkdir -p mySubDir&& cd mySubDir && pwd).

Wenn bei CodeBuild ein Fehler auftritt, ist der Fehler schwerer zu beheben. Es ist vergleichsweiseeinfacher, einen einzelnen Befehl eigenständig in seiner eigenen Instance der Standard-Shell auszuführen.

Befehle, die in einem Windows Server Core-Image ausgeführt werden, verwenden die PowerShell-Shell.

Umgebungsvariablen in Build-UmgebungenAWS CodeBuild bietet mehrere Umgebungsvariablen, die Sie in Ihren Build-Befehlen verwenden können.

AWS_DEFAULT_REGION

Die Schaltfläche AWS Region, in der Build ausgeführt wird (z. B. us-east-1). DieseUmgebungsvariable wird hauptsächlich bei der AWS CLI verwendet.

AWS_REGION

Die Schaltfläche AWS Region, in der Build ausgeführt wird (z. B. us-east-1). DieseUmgebungsvariable wird hauptsächlich von den AWS SDKs verwendet.

API-Version 2016-10-06182

Page 190: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchUmgebungsvariablen in Build-Umgebungen

CODEBUILD_BATCH_GEBÄUDE_IDENTIFIKATOR

Die ID des Builds in einem Batch-Build. Dies wird in der Batch-Build-Spezifikation angegeben. WeitereInformationen finden Sie im the section called “ChargenbuildSpezifikationsreferenz” (p. 170).

CODEAUFBAU_AUFBAU_ARN

Der Amazon-Ressourcenname (ARN) des Builds (z. B. arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE).

CODEAUFBAU_AUSBAU_ID

Die Schaltfläche CodeBuild ID des Builds (z. B. codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE).

CODEBUILD_AUFBAU_BILD

Die Schaltfläche CodeBuild Build-Image-Kennung (z. B. aws/codebuild/standard:2.0).CODEAUFBAU_AUFBAUEN_NUMMER

: Die aktuelle Build-Nummer für das Projekt.CODEBUILD_BUILD_SUCCEEDING (CODEAUFBAUEN_AUFBAUEN)

: Ob der aktuelle Build erfolgreich ist. Legen Sie den Wert auf 0 fest, wenn der Build fehlschlägt, undauf 1, wenn er erfolgreich ausgeführt wird.

CODEAUFBAU_INITIATOR

: Die Entität, die den Build gestartet hat. Wenn CodePipeline den Build gestartet hat, ist dies der Nameder Pipeline (beispielsweise codepipeline/my-demo-pipeline). Wenn ein Benutzer von IAM denBuild gestartet hat, ist dies der Name der Pipeline (z. B. MyUserName). Wenn das Jenkins-Plugin fürCodeBuild den Build gestartet hat, lautet die Zeichenfolge CodeBuild-Jenkins-Plugin.

CODEBUILD_KMS_SCHLÜSSEL_ID

Die Kennung des AWS KMS Schlüssel, der CodeBuild verwendet zum Verschlüsseln des Build-Ausgabeartefakts (z. B. arn:aws:kms:region-ID:account-ID:key/key-ID oder alias/key-alias).

CODEBUILD_LOG_PATH (CODEAUFBAU_PROTOKOLL_PFAD)

Der Name des Protokoll-Streams in CloudWatch Logs für den Build.CODEBUILD_AUFGELÖST_QUELLE_VERSION

: Ein Bezeichner für die Version eines Build-Quellcodes. Das Format richtet sich nach dem Quellcode-Repository:• Bei CodeCommit, GitHub, GitHub Enterprise Server und Bitbucket handelt es sich um die Commit-

ID. Für diese Repositorys ist CODEBUILD_RESOLVED_SOURCE_VERSION erst nach der PhaseDOWNLOAD_SOURCE verfügbar.

• Bei CodePipeline handelt es sich um die von CodePipeline bereitgestellte Quellrevision. BeiCodePipeline ist die Umgebungsvariable CODEBUILD_RESOLVED_SOURCE_VERSION u. U. nichtimmer verfügbar.

• Für Amazon S3 gilt dies nicht.CODEBUILD_SOURCE_REPO_URL (CODEAUFBAU_QUELLE_REPO_URL)

: Die URL zum Eingabe-Artefakt oder den Quellcode-Repository. Für Amazon S3 ist dies der s3://,gefolgt von dem Bucket-Namen und dem Pfad zum Eingabeartefakt. Dies ist die Repository-Klon-URLfür CodeCommit und GitHub. Wenn ein Build aus CodePipeline, diese Umgebungsvariable kann leersein.

API-Version 2016-10-06183

Page 191: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchUmgebungsvariablen in Build-Umgebungen

Für sekundäre Quellen ist die Umgebungsvariable für die sekundäre Quell-Repository-URLCODEBUILD_SOURCE_REPO_URL_<sourceIdentifier>, wobei <sourceIdentifier> ist dieQuell-ID, die Sie erstellen.

CODEBUILD_QUELLEN_VERSION

: Das Format des Werts richtet sich nach dem Quellcode-Repository.• Für Amazon S3 handelt es sich um die Versions-ID, die zum Eingabeartefakt gehört.• Bei CodeCommit handelt es sich um die Commit-ID oder den Branch-Namen, der zur Version des zu

erstellenden Quellcodes gehört.• Bei GibHub, GitHub Enterprise Server und Bitbucket handelt es sich um die Commit-ID, den Branch-

Namen oder den Tag-Namen, die bzw. der zur Version des zu erstellenden Quellcodes gehört.Note

Bei einem GitHub- oder GitHub Enterprise Server-Build, der über eine Webhook-Pull-Anforderung ausgelöst wird, handelt es sich um pr/pull-request-number.

Für sekundäre Quellen ist die Umgebungsvariable für die sekundäre QuellversionCODEBUILD_SOURCE_VERSION_<sourceIdentifier>, wobei <sourceIdentifier> ist dieQuell-ID, die Sie erstellen. Weitere Informationen finden Sie im Beispiel für mehrere Eingabequellenund Ausgabeartefakte (p. 144).

CODEAUFBAU_SRC_DIR

Der Verzeichnispfad, der CodeBuild verwendet für den Build (z. B. /tmp/src123456789/src).

Für sekundäre Quellen ist die Umgebungsvariable für den sekundären QuellverzeichnispfadCODEBUILD_SRC_DIR_<sourceIdentifier>, wobei <sourceIdentifier> ist die Quell-ID,die Sie erstellen. Weitere Informationen finden Sie im Beispiel für mehrere Eingabequellen undAusgabeartefakte (p. 144).

CODEBUILD_START_ZEIT

: Die Startzeit des Builds, angegeben als Unix-Zeitstempel in Millisekunden.CODEBUILD_WEBHOOK_AUFTRAGGEBER_KONTO_ID

: Die Konto-ID des Benutzers, der das Webhook-Ereignis ausgelöst hat.CODEBUILD_WEBHOOK_BASIS_REF

: Der Basisreferenzname des Webhook-Ereignisses, das den aktuellen Build auslöst. Bei einer Pull-Anforderung handelt es sich hierbei um die Verzweigungsreferenz.

CODEBUILD_WEBHOOK_EREIGNIS

: Das Webhook-Ereignis, das den aktuellen Build auslöst.CODEBUILD_WEBHOOK_VORHER_ZUSTELLEN

: Die ID des letzten Commits vor dem Webhook-Push-Ereignis, das den aktuellen Build auslöst.CODEBUILD_WEBHOOK_KOPF_REF

: Der Kopfreferenzname des Webhook-Ereignisses, das den aktuellen Build auslöst. Hierbei kann essich um eine Verzweigungsreferenz oder um eine Tag-Referenz handeln.

CODEBUILD_WEBHOOK_AUSLÖSER

zeigt das Webhook-Ereignis an, das den Build ausgelöst hat. Diese Variable ist nur für Buildsverfügbar, die von einem Webhook ausgelöst wurden. Der Wert wird der Nutzlast entnommen, die vonGitHub, GitHub Enterprise Server oder Bitbucket an CodeBuild gesendet wurde. Der Wert des Formatshängt davon ab, welche Art von Ereignis den Build ausgelöst hat.• Für Builds, die von einer Pull-Anforderung ausgelöst wurden, handelt es sich um pr/pull-request-number.

API-Version 2016-10-06184

Page 192: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHintergrundaufgaben in Build-Umgebungen

• Für Builds, die durch das Erstellen eines neuen Branches oder durch Pushen eines Commits füreinen Branch ausgelöst wurden, handelt es sich um branch/branch-name.

• Für Builds, die durch das Pushen eines Tags in ein Repository ausgelöst wurden, handelt es sich umtag/tag-name.

ZUHAUSE

Diese Umgebungsvariable ist immer auf /root.

Sie können auch Build-Umgebungen mit Ihren eigenen Umgebungsvariablen liefern. Mit AWS können SieGesundheitsdaten, darunter geschützte patientenbezogene Daten (protected health information, PHI),im Rahmen eines abgeschlossenen Geschäftspartnervertrags (Business Associate Agreement, BAA)speichern.

• Verwenden von CodePipeline mit CodeBuild (p. 407)• Erstellen eines Build-Projekts () (p. 206)• Ändern der Einstellungen eines Build-Projekts () (p. 259)• Ausführen eines Build () (p. 279)• Build-Spezifikationsreferenz (p. 150)

Zur Auflistung der verfügbaren Umgebungsvariablen in einer Build-Umgebung können Sie währendeines Builds den Befehl printenv ausführen (für eine Linux-basierte Build-Umgebung), oder "Get-ChildItem Env:" (für Windows-basierte Build-Umgebungen). Mit Ausnahme der vorstehendaufgeführten Umgebungsvariablen sind die mit CODEBUILD_ beginnenden Umgebungsvariablen nur für dieinterne Nutzung in CodeBuild bestimmt. Diese sollten nicht in Ihrem Build-Befehlen eingesetzt werden.

Important

Wir raten dringend davon ab, Umgebungsvariablen zum Speichern vertraulicher Werte zuverwenden, dies gilt insbesondere für AWS-Zugriffsschlüssel-IDs und geheime Zugriffsschlüssel.Umgebungsvariablen können mit Tools wie der CodeBuild-Konsole und über die AWS CLI imKlartext angezeigt werden.Sie sollten sensible Werte im Amazon EC2 Systems Manager-Parameter Store speichern undanschließend aus Ihrer Build-Spezifikation abrufen. Informationen zum Speichern sensiblerWerte finden Sie unter Systemmanager-Parameterspeicher und Anleitung: Erstellen und Testeneines String-Parameters (Konsole) in der Amazon EC2 Systems Manager Benutzerhandbuch.Informationen zum Abrufen dieser Variablen finden Sie unter der parameter-store-Zuordnungin Syntax der Build-Spezifikation (p. 151).

Hintergrundaufgaben in Build-UmgebungenSie können Hintergrundaufgaben in Build-Umgebungen ausführen. Dazu verwenden Sie in IhrerBuild-Spezifikation den Befehl nohup, um einen Befehl auch dann als Aufgabe im Hintergrundauszuführen, wenn der Build-Prozess die Shell verlässt. Mit dem Befehl disown können Sie eine laufendeHintergrundaufgabe zwangsweise stoppen.

Beispiele

• Starten Sie einen Hintergrundprozess und warten Sie, bis dieser später abgeschlossen ist:

nohup sleep 30 & echo $! > pidfile…wait $(cat pidfile)

• Starten Sie einen Hintergrundprozess und warten Sie nicht darauf, dass dieser jemals abgeschlossen ist:

API-Version 2016-10-06185

Page 193: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLokales Testen und Debuggen

nohup sleep 30 & disown $!

• Starten Sie einen Hintergrundprozess und beenden Sie ihn später:

nohup sleep 30 & echo $! > pidfile…kill $(cat pidfile)

Lokales Testen und Debuggen mit dem AWSCodeBuild-Agenten

In diesem Thema finden Sie Informationen zum Ausführen des AWS CodeBuild-Agenten und zumAbonnieren von Benachrichtigungen über neue Versionen des Agenten.

Testen und Debuggen auf einem lokalen Rechner mitdem CodeBuild-AgentenSie können mit dem AWS CodeBuild-Agenten Builds auf einem lokalen Rechner testen und debuggen.

So verwenden Sie den Agenten

1. Laden Sie das Skript codebuild.sh herunter.2. Führen Sie das Skript aus und geben Sie die Container-Abbilder und das Ausgabeverzeichnis an:

codebuild_build.sh [-i image_name] [-a artifact_output_directory] [options]

Der CodeBuild-Agent steht über https://hub.docker.com/r/amazon/aws-codebuild-local/ zur Verfügung. Seine Secure Hash Algorithm (SHA)-Signatur ist94467b3eeac4184d28a38feb27a1530691527dd49c17e30ad1b6331d791e82f5. Sie können diesenSHA nutzen, um die Version des Agenten zu identifizieren. Um die SHA-Signatur des Agenten anzuzeigen,führen Sie den folgenden Befehl aus:

docker inspect amazon/aws-codebuild-local

Erhalten von Benachrichtigungen über neueCodeBuild-Agenten-VersionenSie können Amazon SNS-Benachrichtigungen abonnieren, damit Sie erfahren, wann neue Versionen desAWS CodeBuild-Agenten veröffentlicht werden. Befolgen Sie die Schritte in diesem Verfahren, um dieseBenachrichtigungen zu abonnieren.

So abonnieren Sie die CodeBuild-Agenten-Benachrichtigungen

1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.2. Ändern Sie die AWS-Region in der Navigationsleiste, wenn sie noch nicht ausgewählt ist, zu USA Ost

(Nord-Virginia). Sie müssen diese AWS-Region auswählen, da die Amazon SNS-Benachrichtigungen,die Sie abonnieren, in dieser Region erstellt werden.

API-Version 2016-10-06186

Page 194: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErhalten von Benachrichtigungen überneue CodeBuild-Agenten-Versionen

3. Wählen Sie im Navigationsbereich Subscriptions aus.4. Wählen Sie Create subscription.5. In Create subscription (Abonnement erstellen):

Verwenden Sie für Topic ARN den folgenden Amazon-Ressourcennamen (ARN):

arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates

Wählen Sie für Protocol (Protokoll) die Option Email (E-Mail) oder SMS.

Wählen Sie unter Endpoint (Endpunkt) aus, worüber (per E-Mail oder SMS) die Benachrichtigungenempfangen werden sollen. Geben Sie eine E-Mail-Adresse, Adresse oder Telefonnummereinschließlich Vorwahl ein.

Wählen Sie Create subscription.

Bei Wahl von Email (E-Mail) werden Sie in einer E-Mail aufgefordert, Ihr Abonnement zu bestätigen.Befolgen Sie die Anweisungen in der E-Mail zum Abschließen Ihres Abonnements.

Wenn Sie diese Benachrichtigungen nicht mehr erhalten möchten, führen Sie die Schritte in diesemVerfahren aus, um sich abzumelden.

So melden Sie sich von den CodeBuild-Agenten-Benachrichtigungen ab

1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.2. Wählen Sie im Navigationsbereich Subscriptions aus.3. Wählen Sie das Abonnement und unter Actions (Aktionen) die Option Delete subscriptions

(Abonnements löschen) aus. Wenn Sie aufgefordert werden, Ihre Entscheidung zu bestätigen, wählenSie Delete aus.

API-Version 2016-10-06187

Page 195: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnwendungsfälle

Verwenden von AWS CodeBuild mitAmazon Virtual Private Cloud

In der Regel kann AWS CodeBuild nicht auf Ressourcen in einer VPC zugreifen. Um den Zugriff zuermöglichen, müssen Sie zusätzliche VPC-spezifische Konfigurationsinformationen in Ihrer CodeBuild-Projektkonfiguration bereitstellen. Dazu gehören die VPC-ID, die VPC-Subnetz-IDs und die VPC-Sicherheitsgruppen-IDs. VPC-fähige Builds können dann auf Ressourcen in Ihrer VPC zugreifen. WeitereInformationen zur Einrichtung einer VPC in Amazon VPC finden Sie im Amazon VPC-Benutzerhandbuch.

Note

VPC-Konnektivität von CodeBuild wird in Windows nicht unterstützt.

Themen• Anwendungsfälle (p. 188)• Zulassen des Amazon VPCZugriffs in Ihren CodeBuild-Projekten (p. 188)• Bewährte Methoden für VPCs (p. 189)• Fehlerbehebung für Ihre VPC-Einrichtung (p. 190)• Verwenden von VPC-Endpunkten (p. 190)• AWS CloudFormation VPC-Vorlage (p. 192)• Verwenden von AWS CodeBuild mit einem Proxy-Server (p. 196)

AnwendungsfälleEine VPC-Konnektivität von AWS CodeBuild-Builds ermöglicht es,

• Integrationstests von Ihrem Build aus mit Daten in einer Amazon RDS-Datenbank auszuführen, das ineinem privaten Subnetz isoliert ist,

• Daten in einem Amazon ElastiCache-Cluster direkt aus Tests heraus abzufragen,• Mit internen Webservices, die auf Amazon EC2, Amazon ECS gehostet werden, oder mit Services, die

einen internen Elastic Load Balancing verwenden, zu interagieren,• Abhängigkeiten von selbst gehosteten, internen Artefakt-Repositorys, wie PyPI für Python, Maven für

Java und npm für Node.js abzurufen,• auf Objekte in einem S3-Bucket zuzugreifen, der so konfiguriert ist, dass der Zugriff nur über einen

Amazon VPC-Endpunkt möglich ist,• externe Webservices, die feste IP-Adressen benötigen, über die elastische IP-Adresse des NAT-

Gateways oder der NAT-Instance abzufragen, die mit Ihrem Subnetz verknüpft ist.

Ihre Builds können auf jede Ressource zugreifen, die in Ihrer VPC gehostet wird.

Zulassen des Amazon VPCZugriffs in IhrenCodeBuild-Projekten

Nehmen Sie diese Einstellungen in Ihre VPC-Konfiguration auf:

API-Version 2016-10-06188

Page 196: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBewährte Methoden für VPCs

• Wählen Sie für VPC ID, die VPC-ID aus, die CodeBuild verwendet.• Wählen Sie für Subnets (Subnetze) ein privates Subnetz mit NAT-Übersetzung aus, das Routen zu den

in CodeBuild verwendeten Ressourcen enthält bzw. hat.• Wählen Sie für Security Groups (Sicherheitsgruppen) die Sicherheitsgruppen aus, die CodeBuild

verwendet, um den Zugriff auf Ressourcen in den VPCs zu erlauben.

Informationen über das Verwenden der Konsole zum Erstellen eines Build-Projekts finden Sie unterErstellen Sie ein Build-Projekt (Konsole) (p. 207). Wenn Sie Ihr CodeBuild-Projekt erstellen oder ändern,wählen Sie in VPC Ihre VPC-ID, Subnetze und Sicherheitsgruppen aus.

Informationen über das Verwenden der AWS CLI zum Erstellen eines Build-Projekts finden Sie unterErstellen eines Build-Projekts (AWS CLI) (p. 217). Wenn Sie die AWS CLI mit CodeBuild verwenden,muss der Servicerolle, die von CodeBuild verwendet wird, um mit Services im Namen des IAM-Benutzerszu interagieren, eine Richtlinie angefügt sein. Weitere Informationen finden Sie unter CodeBuild Zugriff aufdie zur Erstellung einer VPC-Netzwerkschnittstelle erforderlichen AWS-Services erlauben (p. 380).

Das Tool . vpcConfig Objekt sollte Ihre vpcId, securityGroupIds, und . subnets.

• vpcIdErforderlich Die von CodeBuild verwendete VPC-ID. Führen Sie diesen Befehl aus, um eine Listealler Amazon VPC-IDs in Ihrer Region zu erhalten:

aws ec2 describe-vpcs

• subnetsErforderlich Die Subnetz-IDs, die Ressourcen enthalten, die von CodeBuild verwendet werden.Führen Sie folgenden Befehl aus, um diese IDs zu erhalten:

aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1

Note

Ersetzen Sie us-east-1 durch Ihre Region.• securityGroupIdsErforderlich Die IDs der Sicherheitsgruppe, die von CodeBuild verwendet werden,

um den Zugriff auf Ressourcen in den VPCs zu ermöglichen. Führen Sie diesen Befehl aus, um dieseIDs zu erhalten:

aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --region us-east-1

Note

Ersetzen Sie us-east-1 durch Ihre Region.

Bewährte Methoden für VPCsVerwenden Sie diese Checkliste, wenn Sie eine VPC für die Arbeit mit CodeBuild einrichten.

• Richten Sie Ihre VPC mit öffentlichen und privaten Subnetzen und einem NAT-Gateway ein. WeitereInformationen finden Sie unter VPC mit öffentlichen und privaten Subnetzen (NAT) im Amazon VPC-Benutzerhandbuch.

Important

Sie benötigen ein NAT-Gateway oder eine NAT-Instance, um CodeBuild mit Ihrer VPCverwenden zu können, damit CodeBuild öffentliche Endpunkte erreichen kann (z. B. um CLI-

API-Version 2016-10-06189

Page 197: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehlerbehebung für Ihre VPC-Einrichtung

Befehle auszuführen, wenn Builds ausgeführt werden). Sie können das Internet-Gatewaynicht anstelle eines NAT-Gateways oder einer NAT-Instance verwenden, da CodeBuild dieZuweisung von Elastic IP-Adressen zu den von ihm erstellten Netzwerkschnittstellen nichtunterstützt, und die automatische Zuweisung einer öffentlichen IP-Adresse von Amazon EC2für alle Netzwerkschnittstellen, die außerhalb von Amazon EC2-Instance-Starts erstellt wurden,nicht unterstützt wird.

• Binden Sie mehrere Availability Zones in Ihre VPC ein.• Stellen Sie sicher, dass Ihre Sicherheitsgruppen keinen eingehenden (Ingress) Datenverkehr haben,

der Ihren Builds erlaubt ist. CodeBuild hat keine spezifischen Anforderungen für den ausgehendenDatenverkehr, Sie müssen jedoch Zugriff auf alle Internetressourcen gewähren, die für Ihre Erstellungerforderlich sind, wie z. B. Amazon S3.

Weitere Informationen finden Sie unter Sicherheitsgruppenregeln im Amazon VPC-Benutzerhandbuch.• Richten Sie für Ihre Builds separate Subnetze ein.• Wählen Sie bei der Einrichtung Ihrer CodeBuild-Projekte für den Zugriff auf Ihre VPC nur private

Subnetze.

Weitere Informationen zur Einrichtung einer VPC in Amazon VPC finden Sie im Amazon VPC-Benutzerhandbuch.

Weitere Informationen zur Nutzung von AWS CloudFormation, um eine VPC für die Verwendung derCodeBuild-VPC-Funktion zu konfigurieren, finden Sie unter AWS CloudFormation VPC-Vorlage (p. 192).

Fehlerbehebung für Ihre VPC-EinrichtungVerwenden Sie die in der Fehlermeldung angegebenen Informationen, um Probleme zu identifizieren, zudiagnostizieren und zu beheben.

Nachfolgend finden Sie einige Richtlinien, die Ihnen beim Beheben einer allgemeinen CodeBuild VPC-Fehler: Build does not have internet connectivity. Please check subnet networkconfiguration.

1. Stellen Sie sicher, dass Ihr Internet-Gateway an die VPC angeschlossen ist..2. Stellen Sie sicher, dass die Routing-Tabelle für Ihr öffentliches Subnetz auf das Internet-Gateway

verweist..3. Stellen Sie sicher, dass Ihre Netzwerk-ACLs den Datenverkehr zulassen.4. Stellen Sie sicher, dass Ihre Sicherheitsgruppen den Datenverkehr zulassen.5. Fehlerbehebung für Ihr NAT-Gateway.6. Vergewissern Sie sich, dass die Routing-Tabelle für private Subnetze auf das NAT-Gateway verweist..7. Stellen Sie sicher, dass der Servicerolle, die von CodeBuild verwendet wird, um mit Services im

Namen des IAM-Benutzers zu interagieren, über Berechtigungen in dieser Richtlinie verfügt. WeitereInformationen finden Sie im Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

Wenn CodeBuild fehlt Berechtigungen, Sie erhalten möglicherweise einen Fehler, der UnexpectedEC2 error: UnauthorizedOperation. Dieser Fehler kann auftreten, wenn CodeBuild hat nichtdie Amazon EC2 Berechtigungen, die zur Zusammenarbeit mit einer VPC erforderlich sind.

Verwenden von VPC-EndpunktenSie können die Sicherheit von Builds erhöhen, indem Sie AWS CodeBuild so konfigurieren, dass ein VPC-Schnittstellenendpunkt verwendet wird. Schnittstellenendpunkte werden mittels PrivateLink realisiert, einer

API-Version 2016-10-06190

Page 198: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVorbereitungen für das Erstellen von VPC-Endpunkten

Technologie, die Sie für den privaten Zugriff auf Amazon EC2 und CodeBuild unter Verwendung privaterIP-Adressen verwenden können. PrivateLink beschränkt den gesamten Netzwerkverkehr zwischen Ihrenverwalteten Instances, CodeBuild und Amazon EC2 auf das Amazon-Netzwerk. (Verwaltete Instanceshaben keinen Zugriff auf das Internet.) Zudem benötigen Sie kein Internet-Gateway, kein NAT-Gerät undkein virtuelles privates Gateway. Es ist nicht erforderlich, PrivateLink zu konfigurieren, aber wir empfehlenes. Weitere Informationen zu PrivateLink und VPC-Endpunkten finden Sie unter Zugriff auf AWS-Servicesüber PrivateLink im Amazon VPC-Benutzerhandbuch.

Vorbereitungen für das Erstellen von VPC-EndpunktenBeachten Sie die folgenden Einschränkungen, bevor Sie VPC-Endpunkte für AWS CodeBuildkonfigurieren.

Note

Verwenden Sie ein NAT Gateway, wenn Sie CodeBuild mit AWS-Services verwenden möchten,die keine Amazon VPC-PrivateLink-Verbindungen unterstützen.

• VPC-Endpunkte unterstützen ausschließlich von Amazon über Amazon Route 53 bereitgestellte DNS.Wenn Sie Ihre eigene DNS verwenden möchten, können Sie die bedingte DNS-Weiterleitung nutzen.Weitere Informationen finden Sie unter DHCP-Optionssätze im Amazon VPC-Benutzerhandbuch.

• VPC-Endpunkte unterstützen derzeit keine regionsübergreifenden Anforderungen. Stellen Siesicher, dass Sie den Endpunkt in der selben AWS-Region erstellen, in der sich die S3-Buckets zumSpeichern der Build-Eingabe und -Ausgabe befinden. Die Region Ihres Buckets können Sie mitder Amazon S3-Konsole oder mit dem Befehl get-bucket-location abrufen. Verwenden Sie einenregionsspezifischen Amazon S3-Endpunkt, um auf Ihren Bucket zuzugreifen (z. B. mybucket.s3-us-west-2.amazonaws.com). Weitere Informationen zu regionsspezifischen Endpunkten für Amazon S3finden Sie unter Amazon Simple Storage Service in der Allgemeine Amazon Web Services-Referenz.Wenn Sie mit der AWS CLI Anforderungen an Amazon S3 senden, legen Sie Ihre Standardregion auf diegleiche Region fest, in der Ihr Bucket erstellt wurde, oder verwenden Sie in Ihren Anforderungen den --region-Parameter.

Erstellen von VPC-Endpunkten für CodeBuildFolgen Sie den Anweisungen unter Schnittstellendpunkt erstellen, um den Endpunktcom.amazonaws.region.codebuild zu erstellen. Dies ist ein VPC-Endpunkt für AWS CodeBuild.

region ist die Regionskennung für eine von CodeBuild unterstützte AWS-Region, z. B. us-east-2 fürdie Region USA Ost (Ohio). Eine Liste der unterstützten AWS-Regionen finden Sie unter CodeBuild in der allgemeinen AWS-Referenz. Der Endpunkt ist bereits mit der Region belegt, die Sie beim Anmelden beiAWS angegeben haben. Wenn Sie Ihre Region ändern, wird der VPC-Endpunkt entsprechend aktualisiert.

API-Version 2016-10-06191

Page 199: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer VPC-Endpunktrichtlinie für CodeBuild

Erstellen einer VPC-Endpunktrichtlinie für CodeBuildSie können eine Richtlinie für Amazon VPC-Endpunkte für AWS CodeBuild erstellen. Darin können Siefolgende Angaben machen:

• Prinzipal, der die Aktionen ausführen kann• Aktionen, die ausgeführt werden können• Ressourcen, für die Aktionen ausgeführt werden können

Die folgende Beispielrichtlinie gibt an, dass alle Prinzipale ausschließlich Builds für das Projekt project-name starten und einsehen können.

{ "Statement": [ { "Action": [ "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:BatchGetBuilds" ], "Effect": "Allow", "Resource": "arn:aws:codebuild:region-ID:account-ID:project/project-name", "Principal": "*" } ]}

Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten imAmazon VPC-Benutzerhandbuch.

AWS CloudFormation VPC-VorlageAWS CloudFormation ermöglicht Ihnen, AWS-Infrastrukturbereitstellungen vorhersehbar und wiederholbarzu erstellen und bereitzustellen, indem Sie Vorlagendateien einsetzen und mit diesen mehrere Ressourcengleichzeitig als einzelne Einheit (ein Stack) erstellen und löschen. Weitere Informationen finden Sie im AWSCloudFormation-Benutzerhandbuch.

Im Folgenden finden Sie eine AWS CloudFormation YAML-Vorlage zur Konfiguration einer VPC für dieVerwendung von AWS CodeBuild. Diese Datei ist auch verfügbar in Proben.zip.

Description: This template deploys a VPC, with a pair of public and private subnets spread across two Availability Zones. It deploys an internet gateway, with a default route on the public subnets. It deploys a pair of NAT gateways (one in each AZ), and default routes for them in the private subnets.

Parameters: EnvironmentName: Description: An environment name that is prefixed to resource names Type: String

VpcCIDR: Description: Please enter the IP range (CIDR notation) for this VPC Type: String Default: 10.192.0.0/16

PublicSubnet1CIDR: Description: Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone

API-Version 2016-10-06192

Page 200: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CloudFormation VPC-Vorlage

Type: String Default: 10.192.10.0/24

PublicSubnet2CIDR: Description: Please enter the IP range (CIDR notation) for the public subnet in the second Availability Zone Type: String Default: 10.192.11.0/24

PrivateSubnet1CIDR: Description: Please enter the IP range (CIDR notation) for the private subnet in the first Availability Zone Type: String Default: 10.192.20.0/24

PrivateSubnet2CIDR: Description: Please enter the IP range (CIDR notation) for the private subnet in the second Availability Zone Type: String Default: 10.192.21.0/24

Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: !Ref VpcCIDR EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Ref EnvironmentName

InternetGateway: Type: AWS::EC2::InternetGateway Properties: Tags: - Key: Name Value: !Ref EnvironmentName

InternetGatewayAttachment: Type: AWS::EC2::VPCGatewayAttachment Properties: InternetGatewayId: !Ref InternetGateway VpcId: !Ref VPC

PublicSubnet1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: !Select [ 0, !GetAZs '' ] CidrBlock: !Ref PublicSubnet1CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub ${EnvironmentName} Public Subnet (AZ1)

PublicSubnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: !Select [ 1, !GetAZs '' ] CidrBlock: !Ref PublicSubnet2CIDR MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub ${EnvironmentName} Public Subnet (AZ2)

API-Version 2016-10-06193

Page 201: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CloudFormation VPC-Vorlage

PrivateSubnet1: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: !Select [ 0, !GetAZs '' ] CidrBlock: !Ref PrivateSubnet1CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub ${EnvironmentName} Private Subnet (AZ1)

PrivateSubnet2: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC AvailabilityZone: !Select [ 1, !GetAZs '' ] CidrBlock: !Ref PrivateSubnet2CIDR MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub ${EnvironmentName} Private Subnet (AZ2)

NatGateway1EIP: Type: AWS::EC2::EIP DependsOn: InternetGatewayAttachment Properties: Domain: vpc

NatGateway2EIP: Type: AWS::EC2::EIP DependsOn: InternetGatewayAttachment Properties: Domain: vpc

NatGateway1: Type: AWS::EC2::NatGateway Properties: AllocationId: !GetAtt NatGateway1EIP.AllocationId SubnetId: !Ref PublicSubnet1

NatGateway2: Type: AWS::EC2::NatGateway Properties: AllocationId: !GetAtt NatGateway2EIP.AllocationId SubnetId: !Ref PublicSubnet2

PublicRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub ${EnvironmentName} Public Routes

DefaultPublicRoute: Type: AWS::EC2::Route DependsOn: InternetGatewayAttachment Properties: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway

PublicSubnet1RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties:

API-Version 2016-10-06194

Page 202: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS CloudFormation VPC-Vorlage

RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet1

PublicSubnet2RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: !Ref PublicRouteTable SubnetId: !Ref PublicSubnet2

PrivateRouteTable1: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub ${EnvironmentName} Private Routes (AZ1)

DefaultPrivateRoute1: Type: AWS::EC2::Route Properties: RouteTableId: !Ref PrivateRouteTable1 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway1

PrivateSubnet1RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: !Ref PrivateRouteTable1 SubnetId: !Ref PrivateSubnet1

PrivateRouteTable2: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: !Sub ${EnvironmentName} Private Routes (AZ2)

DefaultPrivateRoute2: Type: AWS::EC2::Route Properties: RouteTableId: !Ref PrivateRouteTable2 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway2

PrivateSubnet2RouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: !Ref PrivateRouteTable2 SubnetId: !Ref PrivateSubnet2

NoIngressSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupName: "no-ingress-sg" GroupDescription: "Security group with no ingress rule" VpcId: !Ref VPC

Outputs: VPC: Description: A reference to the created VPC Value: !Ref VPC

PublicSubnets: Description: A list of the public subnets

API-Version 2016-10-06195

Page 203: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden eines Proxy-Servers

Value: !Join [ ",", [ !Ref PublicSubnet1, !Ref PublicSubnet2 ]]

PrivateSubnets: Description: A list of the private subnets Value: !Join [ ",", [ !Ref PrivateSubnet1, !Ref PrivateSubnet2 ]]

PublicSubnet1: Description: A reference to the public subnet in the 1st Availability Zone Value: !Ref PublicSubnet1

PublicSubnet2: Description: A reference to the public subnet in the 2nd Availability Zone Value: !Ref PublicSubnet2

PrivateSubnet1: Description: A reference to the private subnet in the 1st Availability Zone Value: !Ref PrivateSubnet1

PrivateSubnet2: Description: A reference to the private subnet in the 2nd Availability Zone Value: !Ref PrivateSubnet2

NoIngressSecurityGroup: Description: Security group with no ingress rule Value: !Ref NoIngressSecurityGroup

Verwenden von AWS CodeBuild mit einem Proxy-Server

Sie können AWS CodeBuild mit einem Proxy-Server verwenden, um den HTTP- und HTTPS-Datenverkehrin und aus dem Internet zu regeln. Um CodeBuild mit einem Proxy-Server auszuführen, installieren Sieeinen Proxy-Server in einem öffentlichen Subnetz und CodeBuild in einem privaten Subnetz in einer VPC.

Die Ausführung von CodeBuild in einem Proxy-Server dient hauptsächlich zwei Anwendungsfällen:

• Damit entfällt die Nutzung eines NAT-Gateways oder einer NAT-Instance in Ihrer VPC.• Sie können die URLs angeben, auf welche die Instances in dem Proxy-Server zugreifen können, und die

URLs, für die der Proxy-Server den Zugriff verweigert.

Sie können CodeBuild mit zwei Arten von Proxy-Servern verwenden. In beiden Fällen wird der Proxy-Server in einem öffentlichen Subnetz und CodeBuild in einem privaten Subnetz ausgeführt.

• Expliziter Proxy: Wenn Sie einen expliziten Proxy-Server verwenden, müssen Sie dieUmgebungsvariablen NO_PROXY, HTTP_PROXY und HTTPS_PROXY in CodeBuild auf Projektebenekonfigurieren. Weitere Informationen finden Sie unter Ändern der Einstellungen eines Build-Projekts inAWS CodeBuild (p. 259) und Erstellen eines Build-Projekts in AWS CodeBuild (p. 206).

• Transparenter Proxy: Wenn Sie einen transparenten Proxy-Server verwenden, ist keine besondereKonfiguration erforderlich.

Themen• Erforderliche Komponenten zur Ausführung von CodeBuild in einem Proxy-Server (p. 197)• Ausführen von CodeBuild in einem expliziten Proxy-Server (p. 200)• Ausführung von CodeBuild in einem transparenten Proxy-Server (p. 203)• Ausführung eines Paket-Managers und anderer Tools in einem Proxy-Server (p. 204)

API-Version 2016-10-06196

Page 204: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErforderliche Komponenten zur Ausführung

von CodeBuild in einem Proxy-Server

Erforderliche Komponenten zur Ausführung vonCodeBuild in einem Proxy-ServerFür die Ausführung von AWS CodeBuild in einem transparenten oder expliziten Proxy-Server benötigen Siediese Komponenten:

• Eine VPC.• Ein öffentliches Subnetz in Ihrer VPC für den Proxy-Server• Ein privates Subnetz in Ihrer VPC für CodeBuild.• Ein Internet-Gateway, das die Kommunikation zwischen der VPC und dem Internet ermöglicht

Das folgende Diagramm zeigt, wie die Komponenten interagieren.

API-Version 2016-10-06197

Page 205: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErforderliche Komponenten zur Ausführung

von CodeBuild in einem Proxy-Server

API-Version 2016-10-06198

Page 206: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErforderliche Komponenten zur Ausführung

von CodeBuild in einem Proxy-Server

Einrichten eines VPC, von Subnetzen und eines Netzwerk-GatewaysDie folgenden Schritte sind für die Ausführung von AWS CodeBuild in einem transparenten oder explizitenProxy-Server erforderlich.

1. Erstellen Sie eine VPC. Weitere Informationen finden Sie unter Erstellen einer VPC im Amazon VPC-Benutzerhandbuch.

2. Erstellen Sie zwei Subnetze in Ihrer VPC. Eines ist ein öffentliches Subnetz mit dem Namen PublicSubnet, in dem der Proxy-Server ausgeführt wird. Das andere ist ein privates Subnetz mit dem NamenPrivate Subnet, in dem CodeBuild ausgeführt wird.

Informationen hierzu finden Sie im Abschnitt Erstellen eines Subnetzes in Ihrer VPC.3. Erstellen Sie ein Internet-Gateway und ordnen Sie es Ihrer VPC zu. Weitere Informationen finden Sie

unter Erstellen und Anfügen eines Internet-Gateways.4. Fügen Sie eine Regel zu der Standard-Routing-Tabelle hinzu, die ausgehenden Datenverkehr von der

VPC (0.0.0.0/0) an das Internet-Gateway weiterleitet. Informationen hierzu finden Sie unter Hinzufügenund Entfernen von Routen einer Routing-Tabelle.

5. Fügen Sie eine Regel zu der Standard-Sicherheitsgruppe Ihrer VPC hinzu, die eingehenden SSH-Datenverkehr (TCP 22) von Ihrer VPC (0.0.0.0/0) zulässt.

6. Befolgen Sie die Anweisungen unter Starten einer Instance mit dem Startassistenten im AmazonEC2-Benutzerhandbuch, um eine Amazon Linux-Instance zu starten. Wählen Sie bei Ausführung desAssistenten die folgenden Optionen aus:• Wählen Sie unter Choose an Instance Type (Instance-Typ auswählen) ein Amazon Linux Amazon-

Systemabbild (Amazon Machine Image, AMI) aus.• Wählen Sie unter Subnet (Subnetz) das öffentliche Subnetz aus, das Sie zuvor in diesem Thema

erstellt haben. Wenn Sie den vorgeschlagenen Namen verwendet haben, heißt dieses Subnetz PublicSubnet (Öffentliches Subnetz).

• Wählen Sie unter Auto-assign Public IP (Öffentliche IP-Adresse automatisch zuweisen) Enable(Aktivieren) aus.

• Wählen Sie auf der Seite Configure Security Group (Sicherheitsgruppe konfigurieren) für Assign asecurity group (Sicherheitsgruppe zuweisen) die Option Select an existing security group (VorhandeneSicherheitsgruppe auswählen) aus. Wählen Sie nun die Standard-Sicherheitsgruppe aus.

• Nachdem Sie Launch (Starten) ausgewählt haben, wählen Sie ein vorhandenes Schlüsselpaar ausoder erstellen Sie ein neues.

Wählen Sie für alle anderen Optionen die Standardeinstellungen aus.7. Nachdem die EC2-Instance ausgeführt wird, deaktivieren Sie Quell-/Zielprüfungen. Weitere

Informationen finden Sie unter Deaktivieren von Quellen-/Zielüberprüfungen im Amazon VPC-Benutzerhandbuch.

8. Erstellen Sie eine Routing-Tabelle in Ihrer VPC. Fügen Sie eine Regel zu der Routing-Tabelle hinzu,die für das Internet bestimmten Datenverkehr zu Ihrem Proxy-Server leitet. Ordnen Sie diese Routing-Tabelle Ihrem privaten Subnetz zu. Dies ist notwendig, damit ausgehende Anfragen von Instancesin Ihrem privaten Subnetz, in dem CodeBuild ausgeführt wird, immer über den Proxy-Server geleitetwerden.

Installieren und Konfigurieren eines Proxy-ServersEs stehen viele Proxy-Server zur Auswahl. Um die Ausführung von AWS CodeBuild in einem Proxy-Serverzu demonstrieren, wird hier ein Open-Source-Proxy-Server, Squid, verwendet. Dasselbe Konzept gilt auchfür andere Proxy-Server.

API-Version 2016-10-06199

Page 207: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen von CodeBuild in einem expliziten Proxy-Server

Verwenden Sie für die Installation von Squid ein yum-Repository. Führen Sie dazu die folgenden Befehleaus:

sudo yum update -ysudo yum install -y squid

Nachdem Sie Squid installiert haben, bearbeiten Sie die squid.conf-Datei mit den Anweisungen weiterunten in diesem Thema.

Konfigurieren von Squid für HTTPS-DatenverkehrBei HTTPS ist der HTTP-Datenverkehr in einer Transport Layer Security (TLS)-Verbindung gekapselt.Squid verwendet eine Funktion namens SslPeekAndSplice zum Abrufen der SNI (Server Name Indication,Servernamensanzeige) von der TLS-Initiierung, die den angeforderten Internet-Host enthält. Dies isterforderlich, damit Squid den HTTPS-Datenverkehr nicht entschlüsseln muss. Zum Aktivieren vonSslPeekAndSplice benötigt Squid ein Zertifikat. Erstellen Sie dieses Zertifikat mit OpenSSL:

sudo mkdir /etc/squid/sslcd /etc/squid/sslsudo openssl genrsa -out squid.key 2048sudo openssl req -new -key squid.key -out squid.csr -subj "/C=XX/ST=XX/L=squid/O=squid/CN=squid"sudo openssl x509 -req -days 3650 -in squid.csr -signkey squid.key -out squid.crtsudo cat squid.key squid.crt | sudo tee squid.pem

Note

Für HTTP muss Squid nicht konfiguriert werden. Von allen HTTP/1.1-Anforderungsnachrichtenkann er das Host-Header-Feld abrufen, das den angeforderten Internet-Host angibt.

Ausführen von CodeBuild in einem expliziten Proxy-ServerThemen

• Konfigurieren von Squid als expliziter Proxy-Server (p. 200)• Erstellen eines Projekts (CodeBuild) (p. 202)• Expliziter Proxy-Server – Beispieldatei squid.conf (p. 202)

Um AWS CodeBuild in einem expliziten Proxy-Server auszuführen, müssen Sie den Proxy-Server sokonfigurieren, dass Datenverkehr zu und von externen Standorten zugelassen oder abgelehnt wird, undanschließend die Umgebungsvariablen HTTPS_PROXY und HTTP_PROXY konfigurieren.

Konfigurieren von Squid als expliziter Proxy-ServerUm Squid als expliziten Proxy-Server zu konfigurieren, müssen Sie die folgenden Änderungen an der Datei/etc/squid/squid.conf vornehmen:

• Entfernen Sie die folgenden Standard-ACL-Regeln (ACL = Access Control List, Zugriffskontrollliste).

acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16

API-Version 2016-10-06200

Page 208: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen von CodeBuild in einem expliziten Proxy-Server

acl localnet src fc00::/7 acl localnet src fe80::/10

Fügen Sie anstelle der von Ihnen entfernten Standard-ACL-Regeln Folgendes hinzu. Die erste Zeile lässtAnforderungen von Ihrer VPC zu. Die nächsten beiden Zeilen gewähren Ihrem Proxy-Server Zugriff aufdie Ziel-URLs, die von AWS CodeBuildverwendet werden könnten. Ändern Sie den regulären Ausdruckin der letzten Zeile, um S3-Buckets oder ein CodeCommit-Repository in einer AWS-Region anzugeben.Beispiel:• Wenn Ihre Quelle Amazon S3 ist, verwenden Sie den Befehl acl download_src dstdom_regex .*s3\.us-

west-1\.amazonaws\.com, um Zugriff auf S3-Buckets in der Region us-west-1 zu erteilen.• Wenn Ihre Quelle AWS CodeCommit ist, verwenden Sie git-codecommit.<your-region>.amazonaws.com, um eine AWS-Region einer Genehmigungsliste hinzuzufügen.

acl localnet src 10.1.0.0/16 #Only allow requests from within the VPCacl allowed_sites dstdomain .github.com #Allows to download source from GitHubacl allowed_sites dstdomain .bitbucket.com #Allows to download source from Bitbucketacl download_src dstdom_regex .*\.amazonaws\.com #Allows to download source from Amazon S3 or CodeCommit

• Ersetzen Sie http_access allow localnet durch Folgendes:

http_access allow localnet allowed_siteshttp_access allow localnet download_src

• Wenn Sie möchten, dass Ihr Build Protokolle und Artefakte hochlädt, führen Sie einen der folgendenSchritte aus:1. Fügen Sie vor der Anweisung http_access deny all die folgenden Anweisungen ein. Diese

ermöglichen CodeBuild den Zugriff auf CloudWatch und Amazon S3. Zugriff auf CloudWatch isterforderlich, damit CodeBuild CloudWatch-Protokolle erstellen kann. Zugriff auf Amazon S3 ist für dasHochladen von Artefakten und Amazon S3-Caching erforderlich.•https_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump interceptacl SSL_port port 443http_access allow SSL_portacl allowed_https_sites ssl::server_name .amazonaws.comacl step1 at_step SslBump1acl step2 at_step SslBump2acl step3 at_step SslBump3ssl_bump peek step1 allssl_bump peek step2 allowed_https_sitesssl_bump splice step3 allowed_https_sitesssl_bump terminate step2 all

• Führen Sie Folgendes aus, nachdem Sie squid.conf gespeichert haben:

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3130sudo service squid restart

2. Fügen Sie Ihrer Buildspec-Datei proxy hinzu. Weitere Informationen finden Sie unter Syntax derBuild-Spezifikation (p. 151).

version: 0.2proxy: upload-artifacts: yes logs: yesphases: build: commands: - command

API-Version 2016-10-06201

Page 209: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen von CodeBuild in einem expliziten Proxy-Server

Note

Wenn Sie einen RequestError-Timeout-Fehler erhalten, beachten Sie die Informationen imAbschnitt RequestError-Timeout-Fehler beim Ausführen von CodeBuild in einem Proxy-Server (p. 443).

Weitere Informationen finden Sie unter Expliziter Proxy-Server – Beispieldatei squid.conf (p. 202)weiter oben in diesem Thema.

Erstellen eines Projekts (CodeBuild)Wenn Sie AWS CodeBuild mit Ihrem expliziten Proxy-Server ausführen möchten, legen Sie für dieUmgebungsvariablen HTTP_PROXY und HTTPS_PROXY die private IP-Adresse der EC2-Instance fest, dieSie für Ihren Proxy-Server und Port 3128 auf Projektebene erstellt haben. Die private IP-Adresse siehtfolgendermaßen aus: http://your-ec2-private-ip-address:3128. Weitere Informationen findenSie unter Erstellen eines Build-Projekts in AWS CodeBuild (p. 206) und Ändern der Einstellungen einesBuild-Projekts in AWS CodeBuild (p. 259).

Verwenden Sie den folgenden Befehl, um das Zugriffsprotokoll des Squid-Proxys anzuzeigen:

sudo tail -f /var/log/squid/access.log

Expliziter Proxy-Server – Beispieldatei squid.confIm Folgenden sehen Sie ein Beispiel für eine Datei squid.conf, die für einen expliziten Proxy-Serverkonfiguriert wurde.

acl localnet src 10.0.0.0/16 #Only allow requests from within the VPC # add all URLS to be whitelisted for download source and commands to be executed in build environment acl allowed_sites dstdomain .github.com #Allows to download source from github acl allowed_sites dstdomain .bitbucket.com #Allows to download source from bitbucket acl allowed_sites dstdomain ppa.launchpad.net #Allows to execute apt-get in build environment acl download_src dstdom_regex .*\.amazonaws\.com #Allows to download source from S3 or CodeCommit acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # # Recommended minimum Access Permission configuration: # # Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports # Only allow cachemgr access from localhost http_access allow localhost manager http_access deny manager # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only

API-Version 2016-10-06202

Page 210: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführung von CodeBuild in

einem transparenten Proxy-Server

# one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed http_access allow localnet allowed_sites http_access allow localnet download_src http_access allow localhost # Add this for CodeBuild to access CWL end point, caching and upload artifacts S3 bucket end point https_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump intercept acl SSL_port port 443 http_access allow SSL_port acl allowed_https_sites ssl::server_name .amazonaws.com acl step1 at_step SslBump1 acl step2 at_step SslBump2 acl step3 at_step SslBump3 ssl_bump peek step1 all ssl_bump peek step2 allowed_https_sites ssl_bump splice step3 allowed_https_sites ssl_bump terminate step2 all # And finally deny all other access to this proxy http_access deny all # Squid normally listens to port 3128 http_port 3128 # Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256 # Leave coredumps in the first cache dir coredump_dir /var/spool/squid # # Add any of your own refresh_pattern entries above these. # refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320

Ausführung von CodeBuild in einem transparentenProxy-ServerUm AWS CodeBuild in einem transparenten Proxy-Server auszuführen, müssen Sie den Proxy-Server mitZugriff auf die Websites und Domänen konfigurieren, mit denen er interagiert.

Konfigurieren von Squid als transparenter Proxy-ServerUm einen transparenten Proxy-Server zu konfigurieren, müssen Sie ihm Zugriff auf die Domänen undWebsites erteilen, auf die er zugreifen soll. Um AWS CodeBuild mit einem transparenten Proxy-Serverauszuführen, müssen Sie Zugriff auf amazonaws.com erteilen. Sie müssen auch Zugriff auf andereWebsites erteilen, die CodeBuild verwendet. Diese hängen davon ab, wie Sie Ihre CodeBuild-Projekteerstellen. Beispiele sind die Websites für Repositorys wie GitHub, Bitbucket, Yum und Maven. UmSquid Zugriff auf bestimmte Domains und Websites zu erteilen, aktualisieren Sie die Datei squid.confmit einem Befehl ähnlich dem folgenden: Dieser Beispielbefehl gewährt Zugriff auf amazonaws.com,github.com und bitbucket.com. Sie können dieses Beispiel bearbeiten, um Zugriff auf andereWebsites zu erteilen.

cat | sudo tee /etc/squid/squid.conf #EOFvisible_hostname squid

API-Version 2016-10-06203

Page 211: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführung eines Paket-Managers undanderer Tools in einem Proxy-Server

#Handling HTTP requestshttp_port 3129 interceptacl allowed_http_sites dstdomain .amazonaws.com#acl allowed_http_sites dstdomain domain_name [uncomment this line to add another domain]http_access allow allowed_http_sites#Handling HTTPS requestshttps_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump interceptacl SSL_port port 443http_access allow SSL_portacl allowed_https_sites ssl::server_name .amazonaws.comacl allowed_https_sites ssl::server_name .github.comacl allowed_https_sites ssl::server_name .bitbucket.com#acl allowed_https_sites ssl::server_name [uncomment this line to add another website]acl step1 at_step SslBump1acl step2 at_step SslBump2acl step3 at_step SslBump3ssl_bump peek step1 allssl_bump peek step2 allowed_https_sitesssl_bump splice step3 allowed_https_sitesssl_bump terminate step2 allhttp_access deny allEOF

Eingehende Anforderungen von Instances im privaten Subnetz muss zu den Squid-Ports umgeleitetwerden. Squid ist an Port 3129 für HTTP-Datenverkehr (anstelle von 80) und an Port 3130 für HTTPS-Datenverkehr (anstelle von 443) empfangsbereit. Verwenden Sie den Befehl iptables, um Datenverkehrweiterzuleiten:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3129sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3130sudo service iptables savesudo service squid start

Erstellen eines Projekts (CodeBuild)Nach der Konfiguration können Sie Ihren Proxy-Server ohne weitere Konfiguration mit AWS CodeBuildin einem privaten Subnetz verwenden. Jede HTTP- und HTTPS-Anforderung durchläuft den öffentlichenProxy-Server. Verwenden Sie den folgenden Befehl, um das Zugriffsprotokoll des Squid-Proxysanzuzeigen:

sudo tail -f /var/log/squid/access.log

Ausführung eines Paket-Managers und anderer Toolsin einem Proxy-ServerSo führen Sie ein Tool wie einen Paket-Manager in einem Proxy-Server aus

1. Fügen Sie das Tool der Genehmigungsliste auf Ihrem Proxyserver hinzu, indem Sie Ihrersquid.conf-Datei Anweisungen hinzufügen.

2. Fügen Sie eine Zeile zu Ihrer buildspec-Datei hinzu, die auf den privaten Endpunkt Ihres Proxyserversverweist.

Die folgenden Beispiele veranschaulichen dies für apt-get, curl und maven. Wenn Sie ein anderesTool verwenden, gelten die gleichen Prinzipien. Fügen Sie sie einer Genehmigungsliste in der Dateisquid.conf hinzu, und fügen Sie Ihrer Build-Spezifikationsdatei (buildspec) einen Befehl hinzu, umCodeBuild auf den Endpunkt Ihres Proxy-Servers zu hinzuweisen.

API-Version 2016-10-06204

Page 212: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführung eines Paket-Managers undanderer Tools in einem Proxy-Server

Ausführen von apt-get in einem Proxy-Server

1. Fügen Sie der Datei squid.conf die folgenden Anweisungen hinzu, um apt-get einerGenehmigungsliste in Ihrem Proxy-Server hinzuzufügen. Die ersten drei Zeilen ermöglichen dieAusführung von apt-get in der Build-Umgebung.

acl allowed_sites dstdomain ppa.launchpad.net # Required for apt-get to execute in the build environmentacl apt_get dstdom_regex .*\.launchpad.net # Required for CodeBuild to execute apt-get in the build environmentacl apt_get dstdom_regex .*\.ubuntu.com # Required for CodeBuild to execute apt-get in the build environmenthttp_access allow localnet allowed_siteshttp_access allow localnet apt_get

2. Nehmen Sie die folgende Anweisung in Ihre buildspec Datei auf, damit apt-get-Befehle in /etc/apt/apt.conf.d/00proxy nach der Proxy-Konfiguration suchen.

echo 'Acquire::http::Proxy "http://<private-ip-of-proxy-server>:3128"; Acquire::https::Proxy "http://<private-ip-of-proxy-server>:3128"; Acquire::ftp::Proxy "http://<private-ip-of-proxy-server>:3128";' > /etc/apt/apt.conf.d/00proxy

Ausführen von curl in einem Proxy-Server

1. Fügen Sie der Datei squid.conf Folgendes hinzu, um curl einer Genehmigungsliste in Ihrer Build-Umgebung hinzuzufügen.

acl allowed_sites dstdomain ppa.launchpad.net # Required to execute apt-get in the build environmentacl allowed_sites dstdomain google.com # Required for access to a webiste. This example uses www.google.com.http_access allow localnet allowed_siteshttp_access allow localnet apt_get

2. Nehmen Sie die folgende Anweisung in Ihre buildspec-Datei auf, damit curl den privaten Proxy-Server für den Zugriff auf die Website verwendet, die Sie squid.conf hinzugefügt haben. In diesemBeispiel ist die Website google.com.

curl -x <private-ip-of-proxy-server>:3128 https://www.google.com

Ausführen von maven in einem Proxy-Server

1. Fügen Sie der Datei squid.conf Folgendes hinzu, um maven einer Genehmigungsliste in Ihrer Build-Umgebung hinzuzufügen.

acl allowed_sites dstdomain ppa.launchpad.net # Required to execute apt-get in the build environmentacl maven dstdom_regex .*\.maven.org # Allows access to the maven repository in the build environmenthttp_access allow localnet allowed_siteshttp_access allow localnet maven

2. Fügen Sie ihrer buildspec-Datei die folgende Anweisung hinzu.

maven clean install -DproxySet=true -DproxyHost=<private-ip-of-proxy-server> -DproxyPort=3128

API-Version 2016-10-06205

Page 213: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeit mit Build-Projekten

Arbeiten mit Build-Projekten undBuilds in AWS CodeBuild

Führen Sie zum Beginnen die unter Erstellen eines Build-Projekts () (p. 206) beschriebenen Schritte ausund folgen Sie dann den Anweisungen unter Ausführen eines Build () (p. 279). Weitere Informationen zuBuild-Projekten und Builds finden Sie in den folgenden Themen.

Themen• Arbeit mit Build-Projekten (p. 206)• Arbeiten mit Builds in AWS CodeBuild (p. 278)

Arbeit mit Build-ProjektenEin Build-Projekt enthält Informationen zur Ausführung eines Builds: wo befindet sich der Quellcode,welche Build-Umgebung soll verwendet werden, welche Build-Befehle sollen ausgeführt werden und wosoll die Build-Ausgabe gespeichert werden.

Sie können diese Aufgaben bei der Arbeit mit Build-Projekten durchführen:

Themen• Erstellen eines Build-Projekts in AWS CodeBuild (p. 206)• Create a notification rule (p. 230)• Anzeigen einer Liste mit Build-Projektnamen in AWS CodeBuild (p. 232)• Anzeigen der Details eines Build-Projekts in AWS CodeBuild (p. 233)• Build-Caching in AWS CodeBuild (p. 235)• Erstellen von AWS CodeBuild-Auslösern (p. 239)• Bearbeiten von AWS CodeBuild-Auslösern (p. 241)• Bitbucket-Webhook-Ereignisse (p. 243)• GitHub-Webhook-Ereignisse (p. 251)• Ändern der Einstellungen eines Build-Projekts in AWS CodeBuild (p. 259)• Löschen eines Build-Projekts in AWS CodeBuild (p. 269)• Arbeiten mit freigegebenen Projekten (p. 270)• Markieren von Projekten in AWS CodeBuild (p. 274)• Batch erstellt sich in AWS CodeBuild (p. 278)

Erstellen eines Build-Projekts in AWS CodeBuildSie können zum Erstellen eines Build-Projekts die AWS CodeBuild-Konsole, AWS CLI oder AWS-SDKsverwenden.

PrerequisitesBevor Sie ein Build-Projekt erstellen, beantworten Sie die Fragen in Planen eines Builds (p. 149).

API-Version 2016-10-06206

Page 214: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Themen• Erstellen Sie ein Build-Projekt (Konsole) (p. 207)• Erstellen eines Build-Projekts (AWS CLI) (p. 217)• Erstellen eines Build-Projekts (AWS SDKs) (p. 230)• Erstellen eines Build-Projekts (AWS CloudFormation) (p. 230)

Erstellen Sie ein Build-Projekt (Konsole)Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekterstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects (Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

Wählen Sie Create build project (Build-Projekt erstellen) aus.

Füllen Sie die folgenden Abschnitte aus. Nach Abschluss der Erstellen eines Build-Projekts unten auf derSeite.

Abschnitte• Projektkonfiguration (p. 207)• Source (p. 208)• Environment (p. 211)• Buildspec (p. 214)• Batch-Konfiguration (p. 215)• Artifacts (p. 215)• Logs (p. 217)

Projektkonfiguration

Project name

Geben Sie einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allen AWS-Konten eindeutig sein.

Description (Beschreibung)

Geben Sie eine optionale Beschreibung des Build-Projekts ein, um anderen Benutzern zu helfen, zuverstehen, was dieses Projekt für verwendet wird.

Ausweis erstellen

Wählen Sie , um den Status des Projekts sichtbar und vernachlässigbar zu machen. WeitereInformationen finden Sie im Build Badges-Beispiel (p. 86).

Note

Build Badge hat keine Auswirkung, wenn der Quellanbieter Amazon S3 ist.Zusätzliche Informationen:

(Optional) Geben Sie unter Tags Namen und Werte für Tags ein, die in unterstützten AWS-Servicesverwendet werden sollen. Verwenden Sie Add row, um ein Tag hinzuzufügen. Sie können bis zu 50Tags hinzufügen.

API-Version 2016-10-06207

Page 215: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Source

Quellanbieter

Wählen Sie den Quellcode-Leistungserbringer-Typ aus. Verwenden Sie die folgenden Listen, um diefür Ihren Quellanbieter geeigneten Auswahl zu treffen:

Note

Bitbucket Server wird von CodeBuild nicht unterstützt.

Amazon S3

Bucket

Wählen Sie den Namen des Eingangs-Buckets aus, der den Quellcode enthält.S3-Objektschlüssel oder S3-Ordner

Geben Sie den Namen der ZIP-Datei oder den Pfad zum Ordner ein, der den Quellcodeenthält. Geben Sie einen Vorwärtsschrägstrich (/) ein, um den gesamten Inhalt im S3-Bucketherunterzuladen.

Quellversion

Geben Sie die Versions-ID des Objekts ein, das die Erstellung Ihrer Eingabedatei darstellt.Weitere Informationen finden Sie im Beispiel für eine Quellversion mit AWS CodeBuild (p. 140).

CodeCommit

Ablage

Wählen Sie das Repository, das Sie verwenden möchten.Referenztyp

Wählen Niederlassung, Git-Tag, oder ID des Bezugs um die Version Ihres Quellcodes anzugeben.Weitere Informationen finden Sie im Beispiel für eine Quellversion mit AWS CodeBuild (p. 140).

Git-Klontiefe

Wählen Sie, um einen flachen Klon mit einer Historie zu erstellen, die auf die angegebene Anzahlvon Commits abgeschnitten wurde. Wenn Sie einen vollständigen Klon erstellen möchten, wählenSie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

Bitbucket

Ablage

Wählen Mit OAuth verbinden oder Mit einem Bitbucket-App-Passwort verbinden und folgen Sieden Anweisungen, um die Verbindung zu Bitbucket herzustellen (oder wieder herzustellen).

Wählen Sie ein öffentliches Repository oder ein Repository in Ihrem Konto aus.Quellversion

Geben Sie eine Filiale ein, legen Sie ID, Tag oder Referenz fest und legen Sie eine Commit-ID fest. Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

API-Version 2016-10-06208

Page 216: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlauf zuerstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einen vollständigenKlon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an den Quellanbietergemeldet.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschoben wird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eine Codeänderungauf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenes Bitbucket-, GitHub- oderGitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die name Parameter im Bitbucket-Commit-Status.Weitere Informationen finden Sie unter bauen in der Bitbucket-API-Dokumentation.

für Ziel-URL, geben Sie den Wert ein, der für die url Parameter im Bitbucket-Commit-Status. WeitereInformationen finden Sie unter bauen in der Bitbucket-API-Dokumentation.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jeder Veröffentlichungeiner Codeänderung in diesem Repository neu erstellen) auswählen, müssen Sie in Event type(Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwenden reguläreAusdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alle Anforderungen fürdas Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisse einen Build aus. WeitereInformationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251) und Bitbucket-Webhook-Ereignisse (p. 243).

GitHub

Ablage

Wählen Mit OAuth verbinden oder Mit einem persönlichen Zugriffstoken für die Github verbinden und folgen Sie den Anweisungen, um die Verbindung zu Github zu verbinden (oder wiederherzustellen), und genehmigen Sie den Zugriff auf AWS CodeBuild.

Wählen Sie ein öffentliches Repository oder ein Repository in Ihrem Konto aus.Quellversion

Geben Sie eine Filiale ein, legen Sie ID, Tag oder Referenz fest und legen Sie eine Commit-ID fest. Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlauf zuerstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einen vollständigenKlon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

API-Version 2016-10-06209

Page 217: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an den Quellanbietergemeldet.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschoben wird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eine Codeänderungauf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenes Bitbucket-, GitHub- oderGitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die context Parameter im Github-Commit-Status.Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für die Github-Entwickler.

für Ziel-URL, geben Sie den Wert ein, der für die target_url Parameter im Github-Commit-Status.Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für die Github-Entwickler.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jeder Veröffentlichungeiner Codeänderung in diesem Repository neu erstellen) auswählen, müssen Sie in Event type(Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwenden reguläreAusdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alle Anforderungen fürdas Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisse einen Build aus. WeitereInformationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251) und Bitbucket-Webhook-Ereignisse (p. 243).

GitHub Enterprise Server

Github Enterprise persönliches Zugriffstoken

Siehe GitHub Enterprise Server-Beispiel (p. 121) Informationen zum Kopieren eines persönlichenZugriffstokens in Ihre Zwischenablage. Fügen Sie das Token in das Textfeld ein und wählen Sieanschließend Save Token (Token speichern) aus.

Note

Sie müssen das persönliche Zugriffs-Token nur einmal eingeben und speichern.CodeBuild verwendet dieses Token für alle zukünftigen Projekte.

Quellversion

Geben Sie eine Abrufanforderung, einen Zweig, eine ID, einen Tag oder eine Referenz für dieCommit-Kennung ein. Weitere Informationen finden Sie im Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlauf zuerstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einen vollständigenKlon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.Build-Status

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

API-Version 2016-10-06210

Page 218: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an denQuellanbieter gemeldet.

Unsicheres SSL

Wählen Sie, um SSL-Warnungen zu ignorieren, während Sie mit Ihrem Github Enterprise-Projekt-Repository verbunden sind.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschoben wird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eine Codeänderungauf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenes Bitbucket-, GitHub- oderGitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die context Parameter im Github-Commit-Status.Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für die Github-Entwickler.

für Ziel-URL, geben Sie den Wert ein, der für die target_url Parameter im Github-Commit-Status.Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für die Github-Entwickler.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jeder Veröffentlichungeiner Codeänderung in diesem Repository neu erstellen) auswählen, müssen Sie in Event type(Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwenden reguläreAusdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alle Anforderungen fürdas Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisse einen Build aus. WeitereInformationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251) und Bitbucket-Webhook-Ereignisse (p. 243).

Environment

Umgebungsbild

Führen Sie eine der folgenden Aufgaben aus:Privileged

(Optional) Wählen Sie Privileged (Privilegiert) nur aus, wenn Sie vorhaben, dieses Build-Projekt zumErstellen von Docker-Images zu verwenden und das von Ihnen ausgewählte Build-Umgebungs-Imagevon CodeBuild nicht mit Docker-Support bereitgestellt wird. Andernfalls schlagen alle zugehörigenBuilds fehl, die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen zudem den Docker-Daemon müssen, damit Ihre Builds interagieren können. Eine Möglichkeit, dies durchzuführen, bestehtdarin, den Docker-Daemon in der install-Phase Ihrer Build-Spezifikation zu initialisieren, indemSie die folgenden Build-Befehle ausführen. Führen Sie diese Befehle nicht aus, wenn Sie ein Build-Umgebungs-Image ausgewählt haben, das von CodeBuild mit Docker-Support bereitgestellt wird.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

API-Version 2016-10-06211

Page 219: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Service – -Rolle

Führen Sie eine der folgenden Aufgaben aus:• Wenn Sie über keinen CodeBuild Servicerolle, wählen Sie Neue Servicerolle. in Rollenname, geben

Sie einen Namen für die neue Rolle ein.• Wenn Sie über einen CodeBuild Servicerolle, wählen Sie Bestehende Servicerolle. in Rolle ARN,

wählen Sie die Servicerolle aus.

Note

Wenn Sie die Konsole verwenden, um ein Build-Projekt zu erstellen, können Sie eineCodeBuild Servicerolle gleichzeitig. In der Standardeinstellung funktioniert diese Rolleausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden, um die Servicerollemit einem anderen Build-Projekt zu verknüpfen, wird die Rolle so aktualisiert, dass sie mitdem anderen Build-Projekt funktioniert. Eine Servicerolle kann in bis zu zehn Build-Projektenverwendet werden.

Zusätzliche KonfigurationTimeout

Geben Sie einen Wert zwischen 5 Minuten und 480 Minuten (8 Stunden) ein, danach CodeBuildstoppt den Build, wenn er nicht abgeschlossen ist. Wenn Sie die Felder hours und minutes leerlassen, wird der Standardwert von 60 Minuten verwendet.

VPC .

Wenn Sie möchten, dass CodeBuild mit Ihrer VPC arbeitet, gehen Sie wie folgt vor:• Wählen Sie für VPC die VPC-ID, die CodeBuild verwendet.• Wählen Sie für VPC Subnets (VPC-Subnetze) die Subnetze aus, die von CodeBuild verwendete

Ressourcen enthalten.• Wählen Sie für VPC Security Groups (VPC-Sicherheitsgruppen) die Sicherheitsgruppen aus, die

CodeBuild verwendet, um den Zugriff auf Ressourcen in den VPCs zu erlauben.

Weitere Informationen finden Sie unter Verwenden von AWS CodeBuild mit Amazon VirtualPrivate Cloud (p. 188).

Datenverarbeitung

Wählen Sie eine der verfügbaren Optionen aus.Umgebungsvariablen.

Geben Sie den Namen und Wert ein und wählen Sie dann den Typ der einzelnenUmgebungsvariablen, die für die Verwendung verwendet werden sollen.

Note

CodeBuild legt die Umgebungsvariable für Ihre AWS-Region automatisch fest. Siemüssen die folgenden Umgebungsvariablen festlegen, wenn Sie sie nicht zu Ihrerbuildspec.yml hinzugefügt haben:• AWS_ACCOUNT_ID• IMAGE_REPO_NAME• IMAGE_TAG

Konsolen-und AWS CLI-Benutzer können Umgebungsvariablen sehen. Wenn Sie keine Bedenkenhinsichtlich der Sichtbarkeit Ihrer Umgebungsvariablen haben, stellen Sie die Felder Name undValue ein und legen Sie dann den Type auf Plaintext fest.

API-Version 2016-10-06212

Page 220: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Wir empfehlen Ihnen, eine Umgebungsvariable mit einem sensiblen Wert wie z. B. eine AWS-Zugriffsschlüssel-ID, einen AWS-geheimen Zugriffsschlüssel oder ein Passwort als Parameter inAmazon EC2 Systems Manager Parameter Store oder AWS Secrets Manager zu speichern.

Wenn Sie Amazon EC2 Systems Manager Parameter Store verwenden, wählen Sie unter Typdie Option Parameter aus. Geben Sie unter Name einen Bezeichner für CodeBuild als Referenzein. Geben Sie als Value (Wert) den Namen des Parameters ein, der in Amazon EC2 SystemsManager Parameter Store gespeichert ist. Verwenden Sie beispielsweise einen Parametermit der Bezeichnung /CodeBuild/dockerLoginPassword und wählen Sie für Type (Typ)Parameter Store aus. für Name, geben Sie LOGIN_PASSWORD. für Wert, geben Sie /CodeBuild/dockerLoginPassword.

Important

Wir empfehlen, Parameter in Amazon EC2 Systems Manager Parameter Store mitParameternamen zu speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Sie können die CodeBuild-Konsole verwenden, um einenParameter in Amazon EC2 Systems Manager zu erstellen. Wählen Sie Create aparameter (Parameter erstellen) aus und befolgen Sie dann die Anweisungen imDialogfeld. (In diesem Dialogfeld können Sie unter KMS key (KMS-Schlüssel) denARN eines AWS KMS-Schlüssels in Ihrem Konto angeben. Amazon EC2 SystemsManager verwendet diesen Schlüssel, um den Wert des Parameters beim Speichern zuverschlüsseln und beim Abrufen zu entschlüsseln.) Wenn Sie die CodeBuild-Konsoleverwenden, um einen Parameter zu erstellen, beginnt der Parametername in der Konsolebeim Speichern mit /CodeBuild/. Weitere Informationen finden Sie unter SystemsManager Parameter Store und in den Anleitungen zur Systems Manager ParameterStore-Konsole im Amazon EC2 Systems Manager Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf Parameter, die in Amazon EC2 Systems ManagerParameter Store gespeichert sind, muss die Servicerolle des Build-Projekts die Aktionssm:GetParameters zulassen. Wenn Sie zuvor New service role (Neue Servicerolle)ausgewählt haben, nimmt CodeBuild diese Aktion automatisch in die Standard-Servicerolle für Ihr Build-Projekt auf. Wenn Sie jedoch Existing service role (VorhandeneServicerolle) ausgewählt haben, müssen Sie diese Aktion separat in Ihre Servicerolleaufnehmen.Wenn Ihr Build-Projekt auf Parameter verweist, die in Amazon EC2 Systems ManagerParameter Store mit Parameternamen gespeichert sind, die nicht mit /CodeBuild/beginnen, und Sie New service role (Neue Servicerolle) ausgewählt haben, müssen Siediese Servicerolle aktualisieren, um den Zugriff auf Parameternamen zu erlauben, dienicht mit /CodeBuild/ beginnen. Dies liegt daran, dass diese Service-Rolle nur aufParameternamen zugreift, die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die Servicerolle dieBerechtigung, alle Parameter unter dem /CodeBuild/ Namespace in Amazon EC2Systems Manager Parameter Store zu entschlüsseln.Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen.Wenn das Docker-Image beispielsweise bereits eine Umgebungsvariable mit dem NamenMY_VAR und einem Wert von my_value enthält und Sie eine Umgebungsvariable mitdem Namen MY_VAR und einem Wert von other_value festlegen, wird my_valuedurch other_value ersetzt. Wenn das Docker-Image demgegenüber bereits eineUmgebungsvariable mit dem Namen PATH und einem Wert von /usr/local/sbin:/usr/local/bin enthält und Sie eine Umgebungsvariable mit dem Namen PATH undeinem Wert von $PATH:/usr/share/ant/bin festlegen, wird /usr/local/sbin:/usr/local/bin durch den Literalwert $PATH:/usr/share/ant/bin ersetzt.Legen Sie keine Umgebungsvariable mit einem Namen fest, der mit CODEBUILD_beginnt. Dieses Präfix ist zur internen Verwendung reserviert.Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist,wird der Wert folgendermaßen bestimmt:• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.

API-Version 2016-10-06213

Page 221: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

• Der Wert in der Build-Projektdefinition folgt darauf.• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.

Wenn Sie Secrets Manager verwenden, wählen Sie unter Type (Typ) die Option Secrets Manageraus. Geben Sie unter Name einen Bezeichner für CodeBuild als Referenz ein. für Wert, gebenSie eine reference-key verwenden des Musters secret-id:json-key:version-stage:version-id. Informationen finden Sie unter Secrets Manager reference-key in thebuildspec file.

Important

Bei der Verwendung von Secrets Manager empfehlen wir, dass Sie Geheimnisseunter Namen speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf in Secrets Manager gespeicherte Geheimnisse, mussdie Servicerolle des Build-Projekts die Aktion secretsmanager:GetSecretValuezulassen. Wenn Sie zuvor New service role (Neue Servicerolle) ausgewählt haben, nimmtCodeBuild diese Aktion automatisch in die Standard-Servicerolle für Ihr Build-Projektauf. Wenn Sie jedoch Existing service role (Vorhandene Servicerolle) ausgewählt haben,müssen Sie diese Aktion separat in Ihre Servicerolle aufnehmen.Wenn Ihr Build-Projekt auf Geheimnisse verweist, die in Secrets Manager mitGeheimnisnamen gespeichert sind, die nicht mit /CodeBuild/ beginnen, und SieNew service role (Neue Servicerolle) ausgewählt haben, müssen Sie diese Servicerolleaktualisieren, um den Zugriff auf Geheimnisnamen zu erlauben, die nicht mit /CodeBuild/ beginnen. Dies liegt daran, dass diese Servicerolle nur Zugriff aufGeheimnisnamen gewährt, die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die erstellteServicerolle die Berechtigung, alle Geheimnisse unter dem /CodeBuild/-Namespaceim Secrets Manager zu entschlüsseln.

Buildspec

Spezifikationen erstellen

Führen Sie eine der folgenden Aufgaben aus:• Wenn Ihr Quellcode eine buildspec-Datei enthält, wählen Sie Use a buildspec file (Eine buildspec-

Datei verwenden) aus. Standardmäßig sucht CodeBuild nach einer Datei namens buildspec.ymlim Quellcodestammverzeichnis. Wenn Ihre Buildspec-Datei einen anderen Namen oder Standortverwendet, geben Sie ihren Pfad vom Quellstamm in ein Name der Buildspec (zum Beispielbuildspec-two.yml oder configuration/buildspec.yml. Wenn die Buildspec-Datei ineinem S3-Bucket ist, muss sie sich in derselben Reihenfolge befinden AWS Region als Ihr Build-Projekt. Geben Sie die buildspec-Datei mit ihrem ARN an (z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml).

• Wenn der Quellcode keine Build-Spezifikationsdatei enthält oder Sie andere Build-Befehle ausführenmöchten, als für die build-Phase in der buildspec.yml-Datei im Stammverzeichnis desQuellcodes angegeben wurden, wählen Sie Insert build commands (Build-Befehle einfügen) aus.Geben Sie für Build commands (Build-Befehle) die Befehle ein, die in der build-Phase ausgeführtwerden sollen. Bei mehreren Befehlen unterteilen Sie die einzelnen Befehle mit &&, (wie z. B. mvntest && mvn package). Wenn Sie Befehle in anderen Phasen ausführen möchten oder einebesonders lange Befehlsliste für die build-Phase vorliegen haben, fügen Sie dem Quellcode-Stammverzeichnis eine Datei buildspec.yml und anschließend die entsprechenden Befehle zudieser Datei hinzu. Wählen Sie dann Use the buildspec.yml in the source code root directory (imQuellcode-Stammverzeichnis verwenden) aus.

Weitere Informationen finden Sie unter Build-Spezifikationsreferenz (p. 150).

API-Version 2016-10-06214

Page 222: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Batch-Konfiguration

Sie können eine Gruppe von Builds als eine einzelne Ausführung ausführen. Weitere Informationen findenSie im Batch erstellt sich in AWS CodeBuild (p. 278).

Batch-Konfiguration definieren

Wählen Sie , um die Erstellung von Batch-Builds in diesem Projekt zu ermöglichen.Batch-Servicerolle

Stellt die Servicerolle für Batch-Builds bereit.

Wählen Sie eine der folgenden Optionen aus:• Wenn Sie keine Batch-Servicerolle haben, wählen Sie Neue Servicerolle. in Servicerolle, geben Sie

einen Namen für die neue Rolle ein.• Wenn Sie eine Batch-Servicerolle haben, wählen Sie Bestehende Servicerolle. in Servicerolle,

wählen Sie die Servicerolle aus.Zulässige Berechnungsart(n) für Batch

Wählen Sie die für den Batch zulässigen Berechnungstypen aus. Wählen Sie alle zutreffenden aus.Maximale Anzahl an in Batch erlaubten Builds

Geben Sie die maximale Anzahl der Builds ein, die im Batch erlaubt sind. Wenn ein Batch dieseGrenze überschreitet, schlägt die Charge fehl.

Batch-Timeout

Geben Sie den maximalen Zeitraum für die Stapelerstellung ein, um abgeschlossen zu werden.Artefakte kombinieren

Auswählen Alle Artefakte aus dem Stapel in einen einzelnen Ort kombinieren um alle Artefakte ausdem Stapel zu einem einzelnen Ort zu haben.

Artifacts

Typ

Führen Sie eine der folgenden Aufgaben aus:• Wenn keine Build-Ausgabeartefakte erstellt werden sollen, klicken Sie auf die Option No artifacts.

Diese Vorgehensweise eignet sich, wenn Sie nur Build-Tests ausführen oder ein Docker-Image inein Amazon ECR-Repository verschieben möchten.

• Zum Speichern der Build-Ausgabe in einem S3-Bucket wählen Sie Amazon S3 aus und gehen dannwie folgt vor:• Lassen Sie Name leer, wenn Sie den Projektnamen für die ZIP-Datei mit der Build-Ausgabe

verwenden möchten. Geben Sie andernfalls den Namen ein. (Wenn eine ZIP-Datei mit einerDateierweiterung ausgegeben werden soll, vergewissern Sie sich, dass Sie die Dateierweiterungan den Namen der ZIP-Datei anfügen.)

• Wählen Sie Enable semantitic versioning (Semantisches Versioning aktivieren) aus, wenn Siemöchten, dass ein Name in der buildspec-Datei jeden beliebigen in der Konsole angegebenenNamen überschreibt. Der Name in einer buildspec-Datei wird zur Erstellungszeit berechnet undverwendet die Shell-Befehlssprache. Beispielsweise können Sie dem Namen Ihres Artefakts einDatum und eine Uhrzeit anhängen, damit dieser stets eindeutig ist. Eindeutige Artefakt-Namenverhindern, dass Artefakte überschrieben werden. Weitere Informationen finden Sie im Syntax derBuild-Spezifikation (p. 151).

API-Version 2016-10-06215

Page 223: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

• Wählen Sie für Bucket name den Namen des Ausgabe-Buckets aus.• Wenn Sie in diesem Vorgang zuvor die Option Insert build commands (Build-Befehle eingeben)

verwendet haben, geben Sie für Output files (Ausgabedateien) die Speicherorte der Build-Dateien ein, die in der ZIP-Datei oder dem Ordner für die Build-Ausgabe enthalten sein sollen.Bei mehreren Speicherorten trennen Sie die einzelnen Speicherorte durch ein Komma, (wie z. B.appspec.yml, target/my-app.jar). Weitere Informationen finden Sie in der Beschreibungvon files in Syntax der Build-Spezifikation (p. 151).

• Wenn Sie nicht wollen, dass Ihre Build-Artefakte verschlüsselt werden, wählen Sie Removeartifacts encryption (Verschlüsselung von Artefakten entfernen) aus.

Für jede Gruppe sekundärer Artefakte:

1. Geben Sie für Artifact identifier (Artefakt-ID) einen Wert mit weniger als 128 Zeichen ein, der nuralphanumerische Zeichen und Unterstriche enthält.

2. Wählen Sie Add artifact (Artefakt hinzufügen) aus.3. Führen Sie die vorherigen Schritte aus, um die sekundären Artefakte zu konfigurieren.4. Wählen Sie Save artifact (Artefakt speichern) aus.

Zusätzliche KonfigurationVerschlüsselungsschlüssel

(Optional) Führen Sie eine der folgenden Optionen aus:• Wenn Sie in Ihrem Konto den von AWS verwalteten Schlüssel (CMK) für Amazon S3

verwenden möchten, um die Build-Ausgabeartefakte zu verschlüsseln, lassen Sie die OptionVerschlüsselungsschlüssel leer. Dies ist die Standardeinstellung.

• Wenn Sie einen vom Kunden verwalteten CMK zur Verschlüsselung der Build-Ausgabeartefakteverwenden möchten, geben Sie unter Encryption key (Verschlüsselungsschlüssel) den ARNdes CMKs ein. Verwenden Sie dabei das Format arn:aws:kms:region-ID:account-ID:key/key-ID.

Cache-Typ

Wählen Sie für Cache type (Cache-Typ) eine der folgenden Optionen aus:• Wenn Sie keinen Cache verwenden möchten, wählen Sie No cache.• Wenn Sie einen Amazon S3-Cache verwenden möchten, wählen Sie Amazon S3 aus und

gehen Sie dann wie folgt vor:• Wählen Sie für Bucket den Namen des S3-Buckets, in dem der Cache gespeichert wird.• (Optional) Geben Sie für Cache path prefix (Cache-Pfadpräfix) ein Amazon S3-Pfadpräfix

ein. Der Wert für Cache path prefix (Cache-Pfadpräfix) ist mit einem Verzeichnisnamenvergleichbar. Er ermöglicht Ihnen das Speichern des Cache in demselben Verzeichnis einesBuckets.

Important

Fügen Sie am Ende des Pfadpräfix keinen abschließenden Schrägstrich (/) an.• Wenn Sie einen lokalen Cache verwenden möchten, wählen Sie Local (Lokal) und dann

mindestens einen lokalen Cache-Modus aus.

Note

Der Modus Docker layer cache (Docker-Ebenen-Cache) ist nur fürLinux verfügbar. Wenn Sie diesen Modus auswählen, muss Ihr Projektim privilegierten Modus ausgeführt werden. Die UmgebungstypenARM_CONTAINER und LINUX_GPU_CONTAINER und der DatenverarbeitungstypBUILD_GENERAL1_2XLARGE unterstützen nicht die Verwendung eines lokalen Cache.

API-Version 2016-10-06216

Page 224: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Durch die Verwendung eines Caches wird eine erhebliche Ersparnis bei der Erstellungszeiterzielt, da wiederverwendbare Teile der Build-Umgebung im Cache gespeichert und über Buildshinweg verwendet werden. Weitere Informationen über die Angabe eines Cache in der Build-Spezifikationsdatei finden Sie unter Syntax der Build-Spezifikation (p. 151). Weitere Informationenzum Caching finden Sie unter Build-Caching in AWS CodeBuild (p. 235).

LogsWählen Sie die Protokolle aus, die Sie erstellen möchten. Sie können Amazon CloudWatch Logs oderAmazon S3- Protokolle oder beides erstellen.

CloudWatch

Wenn Sie Amazon CloudWatch Logs-Protokolle benötigen:CloudWatch-Protokolle

Wählen Sie CloudWatch logs (CW-Protokolle).Group name (Gruppenname)

Geben Sie den Namen Ihres Amazon CloudWatch Logs Protokollgruppe.Stream-Name

Geben Sie Ihre Amazon CloudWatch Logs Protokollstream-Name.S3

Wenn Sie Amazon S3-Protokolle benötigen:S3-Protokolle

Wählen Sie S3 logs (S3-Protokolle).Bucket

Wählen Sie den Namen des S3-Buckets für Ihre Protokolle aus.Pfad-Präfix

Geben Sie das Präfix für Ihre Protokolle ein.S3-Protokollverschlüsselung deaktivieren

Wählen Sie, wenn Ihre S3-Protokolle verschlüsselt sind.

Erstellen eines Build-Projekts (AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

So erstellen Sie eine CodeBuild Projekt mit dem AWS CLI, Sie erstellen ein JSON-Format Projekt Struktur,füllen Sie die Struktur aus und rufen Sie die create-project Befehl zum Erstellen des Projekts.

JSON-Datei erstellenErstellen Sie eine Skelett-JSON-Datei mit create-project Befehl, indem Sie den Befehl --generate-cli-skeleton Option:

aws codebuild create-project --generate-cli-skeleton > <json-file>

Dies erstellt eine JSON-Datei mit dem Pfad und der Datei, die von <json-file>.

API-Version 2016-10-06217

Page 225: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Die JSON-Datei ausfüllenÄndern Sie die JSON-Daten wie folgt und speichern Sie Ihre Ergebnisse.

{ "name (p. 220)": "<project-name>", "description (p. 220)": "<description>", "source (p. 220)": { "type (p. 220)": , "location (p. 220)": "<source-location>", "gitCloneDepth (p. 221)": "<git-clone-depth>", "buildspec (p. 221)": "<buildspec>", "InsecureSsl (p. 222)": "<insecure-ssl>", "reportBuildStatus (p. 222)": "<report-build-status>", "buildStatusConfig": { "context (p. 222)": "<context>", "targetUrl (p. 222)": "<target-url>" }, "gitSubmodulesConfig": { "fetchSubmodules (p. 222)": "<fetch-submodules>" }, "auth": { "type (p. 222)": "<auth-type>", "resource (p. 222)": "<auth-resource>" }, "sourceIdentifier (p. 223)": "<source-identifier>" }, "secondarySources (p. 223)": [ { "type": , "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" } ], "secondarySourceVersions (p. 223)": [ { "sourceIdentifier": "<secondary-source-identifier>", "sourceVersion": "<secondary-source-version>" } ], "sourceVersion (p. 223)": "<source-version>", "artifacts (p. 223)": { "type (p. 223)": , "location (p. 223)": "<artifacts-location>", "path (p. 224)": "<artifacts-path>", "namespaceType (p. 224)": "<artifacts-namespacetype>", "name (p. 224)": "<artifacts-name>", "overrideArtifactName (p. 224)": "<override-artifact-name>", "packaging (p. 224)": "<artifacts-packaging>" }, "secondaryArtifacts (p. 224)": [ { "type": , "location": "<secondary-artifact-location>", "path": "<secondary-artifact-path>", "namespaceType": "<secondary-artifact-namespaceType>", "name": "<secondary-artifact-name>",

API-Version 2016-10-06218

Page 226: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

"packaging": "<secondary-artifact-packaging>", "artifactIdentifier": "<secondary-artifact-identifier>" } ], "cache (p. 224)": { "type": "<cache-type>", "location": "<cache-location>", "mode": [ "<cache-mode>" ] }, "environment (p. 225)": { "type (p. 225)": , "image (p. 225)": "<image>", "computeType (p. 225)": , "certificate (p. 225)": "<certificate>", "environmentVariables (p. 225)": [ { "name": "<environmentVariable-name>", "value": "<environmentVariable-value>", "type": "<environmentVariable-type>" } ], "registryCredential (p. 227)": [ { "credential": "<credential-arn-or-name>", "credentialProvider": "<credential-provider>" } ], "imagePullCredentialsType (p. 227)": , "privilegedMode (p. 227)": "<privileged-mode>" }, "serviceRole (p. 228)": "<service-role>", "timeoutInMinutes (p. 228)": <timeout>, "queuedTimeoutInMinutes (p. 228)": <queued-timeout>, "encryptionKey (p. 228)": "<encryption-key>", "tags (p. 228)": [ { "key": "<tag-key>", "value": "<tag-value>" } ], "vpcConfig (p. 228)": { "securityGroupIds": [ "<security-group-id>" ], "subnets": [ "<subnet-id>" ], "vpcId": "<vpc-id>" }, "badgeEnabled (p. 229)": "<badge-enabled>", "logsConfig (p. 229)": { "cloudWatchLogs (p. 229)": { "status": "<cloudwatch-logs-status>", "groupName": "<group-name>", "streamName": "<stream-name>" }, "s3Logs (p. 229)": { "status": "<s3-logs-status>", "location": "<s3-logs-location>", "encryptionDisabled": "<s3-logs-encryption-disabled>" } }, "fileSystemLocations (p. 229)": [ {

API-Version 2016-10-06219

Page 227: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

"type": "EFS", "location": "<EFS-DNS-name-1>:/<directory-path>", "mountPoint": "<mount-point>", "identifier": "<efs-identifier>", "mountOptions": "<efs-mount-options>" } ], "buildBatchConfig (p. 229)": { "serviceRole": "<batch-service-role>", "combineArtifacts": <combine-artifacts>, "restrictions": { "maximumBuildsAllowed": <max-builds>, "computeTypesAllowed": [ "<compute-type>" ] }, "timeoutInMins": <batch-timeout> }}

Ersetzen Sie Folgendes:

name

Erforderlich Name dieses Build-Projekts. Dieser Name muss in allen Build-Projekten im AWS-Kontoeindeutig sein.

description

(Optional) Beschreibung dieses Build-Projekts.

source

Erforderlich A Projektquelle Objekt, das Informationen zu den Quellcodeeinstellungen diesesErstellungsprojekts enthält. Nachdem Sie ein source-Objekt hinzugefügt haben, können Sie mit thesection called “secondarySources” bis zu zwölf weitere Quellen hinzufügen. Diese Einstellungen umfassenu. a. folgende.

Quelle/Typ

Erforderlich Der Typ des Repositorys, das den zu erstellenden Quellcode enthält. Zulässige Wertesind:• CODECOMMIT

• CODEPIPELINE

• GITHUB

• GITHUB_ENTERPRISE

• BITBUCKET

• S3

• NO_SOURCE

Wenn Sie NO_SOURCE verwenden, kann die Build-Spezifikation keine Datei sein, da das Projektnicht über eine Quelle verfügt. Stattdessen müssen Sie das buildspec-Attribut verwenden, um eineYAML-formatierte Zeichenfolge für Ihre Build-Spezifikation zu verwenden. Weitere Informationenfinden Sie im Beispiel für ein Projekt ohne Quelle (p. 146).

Quelle/Standort

Erforderlich, sofern Sie eingestellt haben <source-type> bis CODEPIPELINE. Der Speicherort desQuellcodes für den angegebenen Repository-Typ.

API-Version 2016-10-06220

Page 228: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

• Bei CodeCommit ist dies die HTTPS-Klon-URL des Repositorys, das den Quellcode und diebuildspec-Datei enthält (z. B. https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>).

• für Amazon S3, der Name der Erstellung des Eingangseingangs, gefolgt von dem Pfad und demNamen der ZIP-Datei, die den Quellcode und die Buildspec enthält. Beispiel, .• Für eine ZIP-Datei, die sich an der Wurzel des Eingangs-Buckets befindet: <bucket-name>/<object-name>.zip.

• Für eine ZIP-Datei in einem Unterordner im Eingangsbucket: <bucket-name>/<subfoler-path>/<object-name>.zip.

• Für GitHub handelt es sich um die HTTPS-Klon-URL des Repositorys, das den Quellcode und diebuildspec-Datei enthält. Die URL muss „github.com“ enthalten. Sie müssen Ihr AWS-Konto mit IhremGitHub-Konto verbinden. Verwenden Sie dazu die CodeBuild-Konsole, um ein Build-Projekt zuerstellen.1. Auf dem Github Anwendung autorisieren Seite, im Zugriff auf Organisation Abschnitt, wählen

Sie Zugriff anfordern neben jedem Repository, das Sie möchten CodeBuild um auf den Zugriff inzuzugreifen.

2. Wählen Sie Authorize application. (Nachdem Sie mit Ihrem Konto verbunden sind, müssen Sienicht das Erstellen des Build-Projekts abschließen. Sie können die CodeBuild Konsole.)

• Für GitHub Enterprise Server handelt es sich um die HTTP- oder HTTPS-Klon-URL des Repositorys,das den Quellcode und die buildspec-Datei enthält. Sie müssen außerdem Ihr AWS-Konto mit IhremGitHub Enterprise Server-Konto verbinden. Verwenden Sie dazu die CodeBuild-Konsole, um einBuild-Projekt zu erstellen.1. Erstellen Sie ein privates Zugriffstoken in GitHub Enterprise Server.2. Kopieren Sie dieses Token in Ihre Zwischenablage, sodass es verwendet werden kann, wenn

Sie Ihr CodeBuild-Projekt erstellen. Weitere Informationen finden Sie unter Creating a personalaccess token for the command line auf der GitHub Help-Website.

3. Wenn Sie die Konsole zum Erstellen Ihres CodeBuild-Projekts verwenden, wählen Sie unterSource (Quelle) für Source provider (Quellanbieter) die Option GitHub Enterprise aus.

4. Für Personal Access Token fügen Sie das Token ein, das in Ihre Zwischenablage kopiert wurde.Wählen Sie Save Token. Ihr CodeBuild-Konto ist jetzt mit Ihrem GitHub Enterprise Server-Kontoverbunden.

• Für Bitbucket handelt es sich um die HTTPS-Klon-URL des Repositorys, das den Quellcode und diebuildspec-Datei enthält. Die URL muss „bitbucket.org“ enthalten. Sie müssen außerdem Ihr AWS-Konto mit Ihrem Bitbucket-Konto verbinden. Verwenden Sie dazu die CodeBuild-Konsole, um einBuild-Projekt zu erstellen.1. Wenn Sie die Konsole zum Verbinden (oder Wiederverbinden) mit Bitbucket verwenden, wählen

Sie auf der Seite Confirm access to your account die Option Grant access. (Nachdem Sie mitIhrem Bitbucket-Konto verbunden sind, müssen Sie nicht das Erstellen des Build-Projektsabschließen. Sie können die CodeBuild Konsole.)

• Geben Sie für AWS CodePipeline nicht den Wert für location für source an. CodePipelineignoriert diesen Wert, da Sie beim Erstellen einer Pipeline in CodePipeline den Speicherort desQuellcodes in der Quellphase der Pipeline angeben.

Quelle/Gitclonedepth

(Optional) Die Tiefe des herunterzuladenden Verlaufs. Der Mindestwert ist 0. Ist dieser Wert 0, größerals 25 oder nicht angegeben, wird für jedes Build-Projekt der vollständige Verlauf heruntergeladen.Wenn Ihr Quelltyp Amazon S3 ist, wird dieser Wert nicht unterstützt.

Quelle/buildspec

(Optional) Die zu verwendende Build-Spezifikationsdefinition oder -datei. Wenn der Wert nichtangegeben oder eine leere Zeichenfolge ist, muss der Quellcode eine buildspec.yml-Dateiim Stammverzeichnis enthalten. Wenn dieser Wert eingestellt ist, kann er entweder eine Inline-Gebäudespezifikation, den Pfad zu einer alternativen Buildspec-Datei, relativ zum Stammverzeichnis

API-Version 2016-10-06221

Page 229: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Ihrer primären Quelle oder den Pfad zu einem S3-Bucket sein. Der AWS-Bucket muss sich inderselben Region wie das Build-Projekt befinden. Geben Sie die buildspec-Datei mit ihrem ARN an(z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml). Weitere Informationen findenSie im Dateiname der Build-Spezifikation und Speicherort (p. 151).

Quelle/Auth

Nicht verwenden: Dieses Objekt wird von der CodeBuild Konsole nur.Quelle/Berichtbuildstatus

Gibt an, ob Ihr Quell-Anbieter den Status eines Build-Starts und -Abschlusses sendet. Wenn Sie diesbei einem anderen Quellanbieter als GitHub, GitHub Enterprise Server oder Bitbucket festlegen, wirdeine invalidInputException ausgegeben.

Quelle/buildstatusconfig

Enthält Informationen, die definiert, wie die CodeBuild Build-Projekt erstellt den Build-Status an denQuellanbieter. Diese Option wird nur verwendet, wenn der Quelltyp GITHUB, GITHUB_ENTERPRISE,oder BITBUCKET.source/buildstatusconfig/Kontext

Für Bitbucket-Quellen wird dieser Parameter für die name Parameter im Bitbucket-Commit-Status.Für die gesamten Quellen wird dieser Parameter für die context Parameter im Github-Commit-Status.

Sie können beispielsweise über die context die Baunummer und den Webhook-Auslöser mitdem CodeBuild Umgebungsvariablen:

AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER

Dies führt dazu, dass der Kontext wie dies für Build Nr. 24 ausgelöst wird, der durch ein Webhook-Pull-Request-Ereignis ausgelöst wird:

AWS CodeBuild sample-project Build #24 - pr/8

source/buildstatusconfig/Zielmarke

Für Bitbucket-Quellen wird dieser Parameter für die url Parameter im Bitbucket-Commit-Status.Für die gesamten Quellen wird dieser Parameter für die target_url Parameter im Github-Commit-Status.

Sie können beispielsweise die targetUrl bis https://aws.amazon.com/codebuild/ undder Commit-Status wird mit dieser URL verknüpft.

Quelle/Gitsubmoduesconfig

(Optional) Informationen zur Konfiguration der Git-Submodule. Wird nur mit CodeCommit, GitHub,GitHub Enterprise Server und Bitbucket verwendet.source/gitsubmoduesconfig/Fetchsubmodule

Legen Sie für fetchSubmodules true fest, wenn die Git-Submodule in Ihr Repositoryaufgenommen werden sollen. Die einbezogenen Git-Submodule müssen als HTTPS konfiguriertwerden.

Quelle/Insecuressl

(Optional) Wird nur für GitHub Enterprise Server verwendet. Setzen Sie diesen Wert auf true, umTLS-Warnungen zu ignorieren, während Sie eine Verbindung zu Ihrem GitHub Enterprise Server-

API-Version 2016-10-06222

Page 230: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Projekt-Repository einrichten. Der Standardwert ist false. InsecureSsl sollte nur für Testzweckeverwendet werden. Es sollte nicht in einer Produktionsumgebung verwendet werden.

Quelle/Quellidentifidentifizierung

Eine benutzerdefinierte Kennung für die Projektquelle. Optional für die primäre Quelle. Erforderlich fürsekundäre Quellen.

secondarySources

(Optional) Eine Reihe von Projektquelle Objekte, die Informationen zu den sekundären Quellen für einBuild-Projekt enthalten. Sie können bis zu 12 sekundäre Quellen hinzufügen. Die secondarySourcesObjekte verwenden dieselben Eigenschaften, die von den the section called “source” Objekt. In einemsekundären Quellobjekt sourceIdentifier ist erforderlich.

secondarySourceVersions

(Optional) Eine Reihe von ProjektquelleVersion Objekte. Wenn secondarySourceVersions auf Build-Ebene angegeben ist, haben sie Vorrang vor dieser Angabe.

sourceVersion

(Optional) Die Version der Build-Eingabe, die für dieses Projekt erstellt werden soll. Ist dieser Parameternicht angegeben, wird die neueste Version verwendet. Ist er festgelegt, muss er Folgendes sein:

• für CodeCommit, die ID des Commit-Ids, der Filiale oder der Git-Kennzeichnung.• Für GitHub, Commit-ID, Pull-Anforderungs-ID, Branch-Name oder Tag-Name, die/der der Version des

Quellcodes entspricht, die Sie erstellen möchten. Wenn eine Pull-Anforderungs-ID angegeben ist,muss diese das Format pr/pull-request-ID aufweisen (Beispiel: pr/25). Wenn ein Branch-Nameangegeben wird, wird die Commit-ID von HEAD verwendet. Wenn sie nicht angegeben ist, wird dieCommit-ID von HEAD für den Standard-Branch verwendet.

• Für Bitbucket, Commit-ID, Branch-Name oder Tag-Name, die/der der Version des Quellcodes entspricht,die Sie erstellen möchten. Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEADverwendet. Wenn sie nicht angegeben ist, wird die Commit-ID von HEAD für den Standard-Branchverwendet.

• Für Amazon S3 die Versions-ID des Objekts, das die zu verwendende Build-Eingabe-ZIP-Datei darstellt.

Wenn sourceVersion auf Build-Ebene angegeben ist, hat jene Version Vorrang vor dieser VersionsourceVersion (auf Projektebene). Weitere Informationen finden Sie im Beispiel für eine Quellversion mitAWS CodeBuild (p. 140).

artifacts

Erforderlich A Projektanlagen Objekt, das Informationen zu den Ausgabeartefakten der Ausgabeerstellungenthält. Nachdem Sie ein artifacts-Objekt hinzugefügt haben, können Sie mit the section called“secondaryArtifacts” bis zu zwölf weitere Artefakte hinzufügen. Diese Einstellungen umfassen u. a.folgende.

Artefakte/Typ

Erforderlich Der Typ des Build-Ausgabeartefakts. Gültige Werte sind , .• CODEPIPELINE

• NO_ARTIFACTS

• S3

Artefakte/Standort

Nur verwendet mit S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

API-Version 2016-10-06223

Page 231: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

Der Name des Ausgabebuckets, der Sie in den Voraussetzungen erstellt oder identifiziert haben.Artefakte/Path

Nur verwendet mit S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

Der Pfad des Ausgabebuckets, um ZIP-Datei oder Ordner zu platzieren. Wenn Sie keinen Wert fürpath, CodeBuild verwendet namespaceType (falls angegeben) und name um den Pfad und denNamen der Build-Ausgabe-ZIP-Datei oder des Ordners zu bestimmen. Wenn Sie beispielsweiseangeben, MyPath für path und MyArtifact.zip für name, der Pfad und Name wäre MyPath/MyArtifact.zip.

Artefakte/Namespacetype

Nur verwendet mit S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

Die Namensgebung der ZIP-Datei oder des Ordners für die Ausgabeausgabe. Gültige Werte sindBUILD_ID und NONE. Verwenden BUILD_ID um die Erstellungs-ID in den Pfad der Build-Ausgabe-ZIP-Datei oder -Ordner einzufügen. Ansonsten verwenden Sie NONE. Wenn Sie keinen Wert fürnamespaceType, CodeBuild verwendet path (falls angegeben) und name um den Pfad und denNamen der Build-Ausgabe-ZIP-Datei oder des Ordners zu bestimmen. Wenn Sie beispielsweiseangeben, MyPath für path, BUILD_ID für namespaceType, und MyArtifact.zip für name, derPfad und Name wäre MyPath/build-ID/MyArtifact.zip.

artifacts/name

Nur verwendet mit S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

Der Name der Build-Ausgabe-ZIP-Datei oder des Ordners im location. Wenn Sie beispielsweiseangeben, MyPath für path und MyArtifact.zip für name, der Pfad und Name wäre MyPath/MyArtifact.zip.

Artefakte/ÜberschreibungName

Nur verwendet mit dem S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

(Optional) Wenn festgelegt auf true, der Name, der im artifacts Block der Dateiüberschreibungfür Buildspec name. Weitere Informationen finden Sie unter Build-Spezifikationsreferenz fürCodeBuild (p. 150).

Artefakte/Verpackung

Nur verwendet mit S3 Artefakttyp. Nicht für andere Artefakttypen verwendet.

(Optional) Legt fest, wie die Artefakte verpackt werden. Die zulässigen Werte lauten: , , , .NONE

Erstellen Sie einen Ordner, der die Build-Artefakte enthält. : Dies ist der Standardwert.ZIP

Erstellen Sie eine ZIP-Datei, die Build-Artefakte enthält.

secondaryArtifacts

(Optional) Eine Reihe von Projektanlagen Objekte, die Informationen zu den sekundären Artefakten für einBuild-Projekt enthalten. Sie können bis zu zwölf sekundäre Attribute hinzufügen. secondaryArtifactsverwendet viele der Einstellungen, die vom the section called “artifacts”-Objekt verwendet werden.

cache

Erforderlich A ProjectCache Objekt, das Informationen zu den Cache-Einstellungen diesesErstellungsprojekts enthält. Weitere Informationen finden Sie im Build-Caching (p. 235).

API-Version 2016-10-06224

Page 232: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

environment

Erforderlich A Projectenvironment Objekt, das Informationen zu den Einstellungen der Gebäudeumgebungdieses Projekts enthält. Diese Einstellungen umfassen Folgendes:

Umgebung/Typ

Erforderlich Der Typ der Build-Umgebung. Weitere Informationen finden Sie unter Typ im CodeBuildAPI-Referenz.

Umgebung/Bild

Erforderlich Der Bezeichner des Docker-Images, den diese Build-Umgebung nutzt. Diese Kennungwird typischerweise als image-name:tag. Zum Beispiel im Docker-Repository, CodeBuildverwendet, um ihre Docker-Bilder zu verwalten, dies könnte aws/codebuild/standard:4.0.Ín Díìcker Nïìnêèr, maven:3.3.9-jdk-8. in Amazon ECR, account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag. Weitere Informationen finden Sie unterVon CodeBuild bereitgestellte Docker-Images (p. 175).

Umgebung/Computetype

Erforderlich Gibt die Ressourcen an, die von dieser Bauumgebung verwendet werden. WeitereInformationen finden Sie unter Computetype im CodeBuild API-Referenz.

Umgebung/Zertifikat

(Optional) Das ARN der Amazon S3 Bucket, Pfad-Präfix und Objektschlüssel, die das PEM-codierteZertifikat enthält. Der Objektschlüssel kann entweder nur die .pem-Datei oder eine .zip-Datei mit demPEM-codierten Zertifikat sein. Wenn ihr Beispiel Amazon S3 Bucket Name lautet my-bucket, Ihr Pfad-Präfix ist cert, und Ihr Objektschlüsselname lautet certificate.pem, dann akzeptable Formatefür certificate sind my-bucket/cert/certificate.pem oder arn:aws:s3:::my-bucket/cert/certificate.pem.

Umgebung/Umgebungsvariablen

(Optional) Eine Reihe von Umgebungsvariable Objekte, die Umgebungsvariablen enthalten, die Sie fürdiese Build-Umgebung angeben möchten. Jede Umgebungsvariable wird als ein Objekt ausgedrückt,das eine name, value, und type von name, value, und type.

Konsole und AWS CLI Benutzer können alle Umgebungsvariablen sehen. Wenn Sie keine Bedenkenhinsichtlich der Sichtbarkeit Ihrer Umgebungsvariable haben, setzen Sie name und value, und setzentype bis PLAINTEXT.

Wir empfehlen Ihnen, Umgebungsvariablen mit sensiblen Werten zu speichern, wie z. B. AWS CCëêsskêèy DÊD, åà AWS geheime Zugriffsschlüssel oder ein Passwort als Parameter in Amazon EC2Systems Manager Parametergeschäft oder AWS Secrets Manager. für name, für diesen gespeichertenParameter eine Kennung für CodeBuild um zu verweisen.

Wenn Sie Amazon EC2 Systems Manager Parametergeschäft, für value, legen Sie den Namendes Parameters fest, der im Parameterspeicher gespeichert ist. Set type bis PARAMETER_STORE.Verwenden eines Parameters /CodeBuild/dockerLoginPassword als Beispiel, name bisLOGIN_PASSWORD. Set value bis /CodeBuild/dockerLoginPassword. Set type bisPARAMETER_STORE.

Important

Wir empfehlen, Parameter in Amazon EC2 Systems Manager Parameter Store mitParameternamen zu speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Sie können die CodeBuild-Konsole verwenden, um einenParameter in Amazon EC2 Systems Manager zu erstellen. Wählen Sie Create a parameter(Parameter erstellen) aus und befolgen Sie dann die Anweisungen im Dialogfeld. (Indiesem Dialogfeld können Sie unter KMS key (KMS-Schlüssel) den ARN eines AWS KMS-Schlüssels in Ihrem Konto angeben. Amazon EC2 Systems Manager verwendet diesenSchlüssel, um den Wert des Parameters beim Speichern zu verschlüsseln und beim Abrufen

API-Version 2016-10-06225

Page 233: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

zu entschlüsseln.) Wenn Sie die CodeBuild-Konsole verwenden, um einen Parameter zuerstellen, beginnt der Parametername in der Konsole beim Speichern mit /CodeBuild/.Weitere Informationen finden Sie unter Systems Manager Parameter Store und in denAnleitungen zur Systems Manager Parameter Store-Konsole im Amazon EC2 SystemsManager Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf Parameter, die in Amazon EC2 Systems ManagerParameter Store gespeichert sind, muss die Servicerolle des Build-Projekts die Aktionssm:GetParameters zulassen. Wenn Sie zuvor New service role (Neue Servicerolle)ausgewählt haben, nimmt CodeBuild diese Aktion automatisch in die Standard-Servicerollefür Ihr Build-Projekt auf. Wenn Sie jedoch Existing service role (Vorhandene Servicerolle)ausgewählt haben, müssen Sie diese Aktion separat in Ihre Servicerolle aufnehmen.Wenn Ihr Build-Projekt auf Parameter verweist, die in Amazon EC2 Systems ManagerParameter Store mit Parameternamen gespeichert sind, die nicht mit /CodeBuild/beginnen, und Sie New service role (Neue Servicerolle) ausgewählt haben, müssen Sie dieseServicerolle aktualisieren, um den Zugriff auf Parameternamen zu erlauben, die nicht mit /CodeBuild/ beginnen. Dies liegt daran, dass diese Service-Rolle nur auf Parameternamenzugreift, die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die Servicerolle dieBerechtigung, alle Parameter unter dem /CodeBuild/ Namespace in Amazon EC2 SystemsManager Parameter Store zu entschlüsseln.Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen. Wenndas Docker-Image beispielsweise bereits eine Umgebungsvariable mit dem Namen MY_VARund einem Wert von my_value enthält und Sie eine Umgebungsvariable mit dem NamenMY_VAR und einem Wert von other_value festlegen, wird my_value durch other_valueersetzt. Wenn das Docker-Image demgegenüber bereits eine Umgebungsvariable mit demNamen PATH und einem Wert von /usr/local/sbin:/usr/local/bin enthält und Sieeine Umgebungsvariable mit dem Namen PATH und einem Wert von $PATH:/usr/share/ant/bin festlegen, wird /usr/local/sbin:/usr/local/bin durch den Literalwert$PATH:/usr/share/ant/bin ersetzt.Legen Sie keine Umgebungsvariable mit einem Namen fest, der mit CODEBUILD_ beginnt.Dieses Präfix ist zur internen Verwendung reserviert.Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wirdder Wert folgendermaßen bestimmt:• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.• Der Wert in der Build-Projektdefinition folgt darauf.• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.

Wenn Sie Secrets Manager, für value, den Namen des Parameters wie in gespeichert SecretsManager. Set type bis SECRETS_MANAGER. Verwenden eines Geheimnisses /CodeBuild/dockerLoginPassword als Beispiel, name bis LOGIN_PASSWORD. Set value bis /CodeBuild/dockerLoginPassword. Set type bis SECRETS_MANAGER.

Important

Bei der Verwendung von Secrets Manager empfehlen wir, dass Sie Geheimnisseunter Namen speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf in Secrets Manager gespeicherte Geheimnisse, muss dieServicerolle des Build-Projekts die Aktion secretsmanager:GetSecretValue zulassen.Wenn Sie zuvor New service role (Neue Servicerolle) ausgewählt haben, nimmt CodeBuilddiese Aktion automatisch in die Standard-Servicerolle für Ihr Build-Projekt auf. Wenn Siejedoch Existing service role (Vorhandene Servicerolle) ausgewählt haben, müssen Sie dieseAktion separat in Ihre Servicerolle aufnehmen.Wenn Ihr Build-Projekt auf Geheimnisse verweist, die in Secrets Manager mitGeheimnisnamen gespeichert sind, die nicht mit /CodeBuild/ beginnen, und SieNew service role (Neue Servicerolle) ausgewählt haben, müssen Sie diese Servicerolle

API-Version 2016-10-06226

Page 234: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

aktualisieren, um den Zugriff auf Geheimnisnamen zu erlauben, die nicht mit /CodeBuild/beginnen. Dies liegt daran, dass diese Servicerolle nur Zugriff auf Geheimnisnamen gewährt,die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die erstellte Servicerolledie Berechtigung, alle Geheimnisse unter dem /CodeBuild/-Namespace im SecretsManager zu entschlüsseln.

Umgebung/RegierungAnmeldeinformationen

(Optional) A RegierungAnmeldeinformationen Objekt, das die Anmeldeinformationen angibt, die Zugriffauf ein privates Docker-Register bereitstellen.Umwelt/RegierungAnmeldeinformationen/Anmeldeinformationen

Legt den ARN oder den Namen der mit der Erstellung erstellten Anmeldeinformationen fest AWSManaged Services . Sie können den Namen der Anmeldeinformationen nur verwenden, wenndiese in Ihrer aktuellen Region vorhanden sind.

Umwelt/RegierungAnmeldeinformationen/Leistungserbringer

Der einzige gültige Wert ist SECRETS_MANAGER.

Wenn diese Eigenschaft festgelegt ist:• imagePullCredentials muss auf SERVICE_ROLE eingestellt sein.• Das Bild kann kein angekurstes Bild oder ein Amazon ECR Bild.

Umgebung/ImagePullcredentialstype

(Optional) Dies ist der Anmeldeinformationstyp, den CodeBuild verwendet, um Images per Pull in IhrenBuild zu übertragen. Es gibt zwei gültige Werte:CODEBUILD

CODEBUILD gibt an, dass CodeBuild eigene Anmeldeinformationen verwendet. Sie müssen IhreAmazon ECR Repository-Richtlinie bearbeiten, um dem CodeBuild-Service-Prinzipal zu vertrauen.

SERVICE_ROLLE

Gibt an, dass CodeBuild verwendet die Servicerolle Ihres Erstellungsprojekts.

Wenn Sie ein kontoübergreifendes oder privates Registrierungs-Image verwenden, müssen SieSERVICE_ROLE-Anmeldeinformationen verwenden. Wenn Sie ein kuratiertes CodeBuild-Imageverwenden, müssen Sie CODEBUILD-Anmeldeinformationen verwenden.

Umgebung/privilegierenModus

Auf einstellen true nur wenn Sie planen, dieses Build-Projekt zu verwenden, um Docker-Bilderaufzubauen, und das von Ihnen angegebene Bild für die Erstellung von Gebäudeumgebungennicht von CodeBuild mit Docker-Unterstützung. Andernfalls schlagen alle zugehörigen Builds fehl,die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen zudem den Docker-Daemonmüssen, damit Ihre Builds interagieren können. Eine Möglichkeit besteht darin, den Docker-Daemonin der install-Phase der buildspec-Datei zu initialisieren, indem Sie die folgenden Build-Befehleausführen. Führen Sie diese Befehle nicht aus, wenn Sie ein Build-Umgebungs-Image angegebenhaben, das von CodeBuild mit Docker-Support bereitgestellt wird.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

API-Version 2016-10-06227

Page 235: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

serviceRole

Erforderlich Der ARN der Servicerolle, den CodeBuild zur Interaktion mit Services im Namen des IAM-Benutzers verwendet (z. B. arn:aws:iam::account-id:role/role-name).

timeoutInMinutes

(Optional) Die Anzahl an Minuten, zwischen 5 und 480 (8 Stunden), nach denen CodeBuild den Build-Vorgang beendet, wenn dieser noch nicht abgeschlossen wurde. Wenn Sie keinen anderen Wert angeben,wird der Standardwert von 60 verwendet. Um festzustellen, ob und wann CodeBuild einen Build-Vorgangaufgrund des Überschreitens einer Zeitbeschränkung angehalten hat, führen Sie den Befehl batch-get-builds aus. Um zu ermitteln, ob die Erstellung gestoppt wurde, schauen Sie in den Ausgang nachbuildStatus Wert von FAILED. Um zu bestimmen, wann die Build-Zeitüberschreitung abgelaufenist, schauen Sie in den Ausgang für die endTime Wert zugeordnet mit einem phaseStatus Wert vonTIMED_OUT.

queuedTimeoutInMinutes

(Optional) Die Anzahl der Minuten zwischen 5 und 480 (8 Stunden), danach CodeBuild stoppt den Build,wenn er noch in der Warteschlange ist. Wenn Sie keinen anderen Wert angeben, wird der Standardwertvon 60 verwendet.

encryptionKey

(Optional) Der Alias oder ARN des vom Kunden verwalteten AWS KMS-Schlüssels (CMK), den CodeBuildzur Verschlüsselung der Ausgabe verwendet. Wenn Sie ein Alias angeben, verwenden Sie das Formatarn:aws:kms:region-ID:account-ID:key/key-ID oder wenn ein Alias existiert, verwenden Sie dasFormat alias/key-alias. Wenn nicht angegeben, die AWS-CMK còöndêèctêèd fõô Amazon S3 wirdverwendet.

tags

(Optional) Eine Reihe von Tag Objekte, die Tags bereitstellen, die Sie mit diesem Build-Projekt verknüpfenmöchten. Sie können bis zu 50 Tags angeben. Diese Tags können von jedem AWS-Service verwendetwerden, der CodeBuild-Build-Projekt-Tags unterstützt. Jedes Tag wird als Objekt mit einem key und avalue.

vpcConfig

(Optional) A vpcconfig Objekt, das Informationen über die VPC-Konfiguration für Sie enthält. DieseEigenschaften umfassen:

vpcId

Erforderlich Die von CodeBuild verwendete VPC-ID. Führen Sie diesen Befehl aus, um eine Liste allerVPC-IDs in Ihrer Region zu erhalten:

aws ec2 describe-vpcs --region <region-ID>

Subnetze

Erforderlich Eine Reihe von Subnetzen, die Ressourcen beinhalten, die von CodeBuild. Führen Siediesen Befehl aus, um diese IDs zu erhalten:

aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>

securityGroupIds

Erforderlich Eine Reihe von Sicherheitsgruppen-Ids, die von CodeBuild um den Zugriff auf Ressourcenim VPC zu ermöglichen. Führen Sie diesen Befehl aus, um diese IDs zu erhalten:

API-Version 2016-10-06228

Page 236: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Build-Projekts ()

aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>

badgeEnabled

(Optional) Gibt whener an, um die Erstellung von Ausweiskarten mit Ihrem CodeBuild Projekt. Aufeinstellen true um die Erstellung von Ausweiskartenerstellung zu aktivieren oder false otehrwise.Weitere Informationen finden Sie im Build Badges-Beispiel mit CodeBuild (p. 86).

logsConfig

A logsconfig Objekt, das Informationen enthält, wo sich die Protokolle dieses Erstellers befinden.

logsconfig/CloudWatchlogs

A Cloudwatchlogsconfig Objekt, das Informationen zum Drücken von Protokollen enthält, umCloudWatch Logs.

logsconfig/s3Protokolle

Ein S3 logsconfig Objekt, das Informationen zum Drücken von Protokollen enthält, um Amazon S3.

fileSystemLocations

(Optional) Eine Reihe von projectfilesystemsstandort Objekte, die Informationen zu Ihren Amazon EFSKonfiguration.

buildBatchConfig

(Optional) Die buildBatchConfig Objekt ist ein projectbuildbatchconfig Struktur, die Informationen zurStapelerstellung für das Projekt enthält.

buildbatchconfig/Servicerole

Die Servicerolle ARN für das Batch Build Projekt.buildbatchconfig/Kombinierbare Fakten

Ein Boolescher Wert, der spezifiziert, ob die Build-Artefakte für die Stapelerstellung in einen einzelnenArtefaktspeicherort kombiniert werden sollen.

buildbatchconfig/einschränkungen/maximumbuildgesalg

Die maximale Anzahl an Builds erlaubt.buildbatchconfig/einschränkungen/Computetypeszulässig

Eine Reihe von Strings, die Berechnungstypen angeben, die für die Stapelerstellung zulässig sind.Siehe Erstellen von Umgebungen mit Umgebungsberechnung für diese Werte.

buildbatchconfig/UhrzeitMinuten

Die maximale Zeit in Minuten, in der die Batch-Erstellung abgeschlossen sein muss.

Erstellen des ProjektsUm das Projekt zu erstellen, führen Sie die create-project erneut aufrufen, die JSON-Datei wirdweitergeleitet:

aws codebuild create-project --cli-input-json file://<json-file>

Wenn sie erfolgreich sind, wird die JSON-Darstellung eines Projekt Objekt erscheint im Konsolenausgang.Siehe createProject Response Syntax für ein Beispiel dieser Daten.

API-Version 2016-10-06229

Page 237: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCreate a notification rule

Abgesehen vom Namen des Build-Projekts können Sie alle Einstellungen des Build-Projekts zu einemspäteren Zeitpunkt ändern. Weitere Informationen finden Sie im Ändern der Einstellungen eines Build-Projekts (AWS CLI) (p. 268).

Weitere Informationen zum Starten der Build-Ausführung finden Sie in Ausführen eines Build (AWSCLI) (p. 284).

Informationen dazu, wie Sie vorgehen, wenn Ihr Quellcode in einem GitHub-Repository gespeichert istund Sie möchten, dass CodeBuild den Quellcode jedes Mal neu erstellt, wenn eine Code-Änderungan das Repository übergeben wird, finden Sie unter Ausführung von Builds automatisch starten (AWSCLI) (p. 289).

Erstellen eines Build-Projekts (AWS SDKs)Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWS SDKs- undTools-Referenz (p. 404).

Erstellen eines Build-Projekts (AWS CloudFormation)Weitere Informationen zur Verwendung von AWS CodeBuild mit AWS CloudFormation finden Sie in derAWS CloudFormation-Vorlage für CodeBuild im AWS CloudFormation-Benutzerhandbuch.

Create a notification ruleYou can use notification rules to notify users when important changes, such as build successes andfailures, occur. Notification rules specify both the events and the Amazon SNS topic that is used to sendnotifications. For more information, see What are notifications?

You can use the console or the AWS CLI to create notification rules for AWS CodeBuild.

To create a notification rule (console)

1. Sign in to the AWS Management Console and open the CodeBuild console at https://console.aws.amazon.com/codebuild/.

2. Choose Build, choose Build projects, and then choose a build project where you want to addnotifications.

3. On the build project page, choose Notify, and then choose Create notification rule. You can also go tothe Settings page for the build project and choose Create notification rule.

4. In Notification name, enter a name for the rule.5. In Detail type, choose Basic if you want only the information provided to Amazon EventBridge included

in the notification. Choose Full if you want to include information provided to Amazon EventBridge andinformation that might be supplied by the CodeBuild or the notification manager.

For more information, see Understanding Notification Contents and Security.6. In Events that trigger notifications, select the events for which you want to send notifications. For more

information, see Events for Notification Rules on Build Projects.7. In Targets, do one of the following:

• If you have already configured a resource to use with notifications, in Choose target type, chooseeither AWS Chatbot (Slack) or SNS topic. In Choose target, choose the name of the client (for aSlack client configured in AWS Chatbot) or the Amazon Resource Name (ARN) of the Amazon SNStopic (for Amazon SNS topics already configured with the policy required for notifications).

• If you have not configured a resource to use with notifications, choose Create target, and thenchoose SNS topic. Provide a name for the topic after codestar-notifications-, and then chooseCreate.

API-Version 2016-10-06230

Page 238: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCreate a notification rule

Note

• If you create the Amazon SNS topic as part of creating the notification rule, the policy thatallows the notifications feature to publish events to the topic is applied for you. Using a topiccreated for notification rules helps ensure that you subscribe only those users that you wantto receive notifications about this resource.

• You cannot create an AWS Chatbot client as part of creating a notification rule. If youchoose AWS Chatbot (Slack), you will see a button directing you to configure a client inAWS Chatbot. Choosing that option opens the AWS Chatbot console. For more information,see Configure Integrations Between Notifications and AWS Chatbot.

• If you want to use an existing Amazon SNS topic as a target, you must add the requiredpolicy for AWS CodeStar Notifications in addition to any other policies that might exist forthat topic. For more information, see Configure Amazon SNS Topics for Notifications andUnderstanding Notification Contents and Security.

8. To finish creating the rule, choose Submit.9. You must subscribe users to the Amazon SNS topic for the rule before they can receive notifications.

For more information, see Subscribe Users to Amazon SNS Topics That Are Targets. You can alsoset up integration between notifications and AWS Chatbot to send notifications to Amazon Chimechatrooms. For more information, see Configure Integration Between Notifications and AWS Chatbot.

To create a notification rule (AWS CLI)

1. At a terminal or command prompt, run the create-notification rule command to generate the JSONskeleton:

aws codestarnotifications create-notification-rule --generate-cli-skeleton > rule.json

You can name the file anything you want. In this example, the file is named rule.json.2. Open the JSON file in a plain-text editor and edit it to include the resource, event types, and target you

want for the rule. The following example shows a notification rule named MyNotificationRule for abuild project named MyBuildProject in an AWS acccount with the ID 123456789012. Notificationsare sent with the full detail type to an Amazon SNS topic named codestar-notifications-MyNotificationTopic when builds are successful:

{ "Name": "MyNotificationRule", "EventTypeIds": [ "codebuild-project-build-state-succeeded" ], "Resource": "arn:aws:codebuild:us-east-2:123456789012:MyBuildProject", "Targets": [ { "TargetType": "SNS", "TargetAddress": "arn:aws:sns:us-east-2:123456789012:codestar-notifications-MyNotificationTopic" } ], "Status": "ENABLED", "DetailType": "FULL"}

Save the file.3. Using the file you just edited, at the terminal or command line, run the create-notification-rule command

again to create the notification rule:

API-Version 2016-10-06231

Page 239: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-Projektnamen ()

aws codestarnotifications create-notification-rule --cli-input-json file://rule.json

4. If successful, the command returns the ARN of the notification rule, similar to the following:

{ "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE"}

Anzeigen einer Liste mit Build-Projektnamen in AWSCodeBuildSie können über die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs eine Liste von Build-Projekten in CodeBuild anzeigen.

Themen• Anzeigen einer Liste mit Build-Projektnamen (Konsole) (p. 232)• Anzeigen einer Liste mit Build-Projektnamen (AWS CLI) (p. 232)• Anzeigen einer Liste mit Build-Projektnamen (AWS SDKs) (p. 233)

Anzeigen einer Liste mit Build-Projektnamen (Konsole)Sie können eine Liste der Build-Projekte in einer AWS-Region in der Konsole anzeigen. Zu denInformationen gehören der Name, der Quellanbieter, das Repository, der aktuelle Build-Status undgegebenenfalls eine Beschreibung.

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.

Note

Standardmäßig werden nur die letzten 10 Build-Projekte angezeigt. Zur Anzeige von weiterenBuild-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für Projects per page(Projekte je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

Anzeigen einer Liste mit Build-Projektnamen (AWS CLI)Führen Sie den Befehl list-projects aus.

aws codebuild list-projects --sort-by sort-by --sort-order sort-order --next-token next-token

Ersetzen Sie im Befehl oben die folgenden Platzhalter:

• sort-by: Optionale Zeichenfolge zum Angeben des Kriteriums, das verwendet werden soll, um dieNamen der Build-Projekte zu erstellen. Zulässige Werte sind:• CREATED_TIME: : Listet die Build-Projektnamen basierend auf dem Zeitpunkt der Erstellung der

einzelnen Build-Projekte auf.• LAST_MODIFIED_TIME: : Listet die Build-Projektnamen basierend auf dem Zeitpunkt der letzten

Änderung der Informationen über die einzelnen Build-Projekte auf.

API-Version 2016-10-06232

Page 240: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen der Details eines Build-Projekts

• NAME: : Listet die Build-Projekte basierend auf den Namen der einzelnen Build-Projekte auf.• sort-order: Optionale Zeichenfolge, die verwendet wird, um die Reihenfolge anzuzeigen, in der

Build-Projekte erstellt werden sollen, basierend auf sort-byGültige Werte sind ASCENDING undDESCENDING.

• next-token: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben,zusammen mit einer eindeutigen Zeichenfolge namens next token. Führen Sie diesen Befehl erneut aus,um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alleElemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgenden "next token" aus, biskeine weiteren nächsten Token zurückgegeben werden.

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild list-projects --sort-by NAME --sort-order ASCENDING

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "nextToken": "Ci33ACF6...The full token has been omitted for brevity...U+AkMx8=", "projects": [ "codebuild-demo-project", "codebuild-demo-project2", ... The full list of build project names has been omitted for brevity ... "codebuild-demo-project99" ]}

Wenn Sie diesen Befehl erneut ausführen:

aws codebuild list-projects --sort-by NAME --sort-order ASCENDING --next-token Ci33ACF6...The full token has been omitted for brevity...U+AkMx8=

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "projects": [ "codebuild-demo-project100", "codebuild-demo-project101", ... The full list of build project names has been omitted for brevity ... "codebuild-demo-project122" ]}

Anzeigen einer Liste mit Build-Projektnamen (AWS SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Anzeigen der Details eines Build-Projekts in AWSCodeBuildSie können über die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs Details zu einem Build-Projekt in CodeBuild anzeigen.

Themen

API-Version 2016-10-06233

Page 241: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen der Details eines Build-Projekts

• Anzeigen der Details eines Build-Projekts (Konsole) (p. 234)• Anzeigen der Details eines Build-Projekts (AWS CLI) (p. 234)• Anzeigen der Details eines Build-Projekts (AWS SDKs) (p. 235)

Anzeigen der Details eines Build-Projekts (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.

Note

Standardmäßig werden nur die letzten 10 Build-Projekte angezeigt. Zur Anzeige von weiterenBuild-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für Projects per page(Projekte je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

3. Wählen Sie in der Liste der Build-Projekte in der Spalte Name den Link für das Build-Projekt aus.4. Wählen Sie auf der Seite Build project (Build-Projekt): project-name den Eintrag Build details (Build-

Details) aus.

Anzeigen der Details eines Build-Projekts (AWS CLI)Führen Sie den Befehl batch-get-projects aus:

aws codebuild batch-get-projects --names names

Ersetzen Sie im Befehl oben den folgenden Platzhalter:

• names: Erforderliche Zeichenfolge, die verwendet wird, um einen oder mehrere Build-Projektnamenanzugeben, zu denen Details angezeigt werden sollen. Um mehr als ein Build-Projekt anzugeben, fügenSie zwischen den einzelnen Build-Projektnamen ein Leerzeichen ein. Sie können bis zu 100 Build-Projektnamen angeben. Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unterAnzeigen einer Liste mit Build-Projektnamen (AWS CLI) (p. 232).

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild batch-get-projects --names codebuild-demo-project codebuild-demo-project2 my-other-demo-project

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen. Auslassungspunkte (...) stehen für Daten,die zur Abkürzung ausgelassen wurden.

{ "projectsNotFound": [ "my-other-demo-project" ], "projects": [ { ... "name": codebuild-demo-project, ... }, { ... "name": codebuild-demo-project2", ... }

API-Version 2016-10-06234

Page 242: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Caching

]}

In der obigen Ausgabe listet das Array projectsNotFound alle Build-Projektnamen auf, die angegeben,aber nicht gefunden wurden. Das Array projects listet Details für jedes Build-Projekt auf, für dasInformationen gefunden wurden. In der obigen Ausgabe wurden aus Gründen der Übersichtlichkeit Build-Projektdetails ausgelassen. Weitere Informationen finden Sie in der Ausgabe von Erstellen eines Build-Projekts (AWS CLI) (p. 217).

Weitere Informationen zur Verwendung der AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Anzeigen der Details eines Build-Projekts (AWS SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Build-Caching in AWS CodeBuildSie können Zeit sparen, wenn beim Erstellen Ihres Projekts ein Cache verwendet wird. In einem Cachekönnen wiederverwendbare Teile Ihrer Build-Umgebung gespeichert werden, die dann für mehrere Buildsverwendet werden können. Ihr Build-Projekt kann zwei Arten von Caching verwenden: Amazon S3 oderlokal. Wenn Sie einen lokalen Cache verwenden, müssen Sie mindestens einen von drei Cache-Modiauswählen: Quellcache, Docker-Ebenen-Cache und benutzerdefinierter Cache.

Note

Der Docker-Ebenen-Cache-Modus ist nur für die Linux-Umgebung verfügbar. Wenn Sie diesenModus wählen, müssen Sie Ihren Build im privilegierten Modus ausführen. CodeBuild-Projektegewähren dem privilegierten Modus den Containerzugriff auf alle Geräte. Weitere Informationenfinden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

Themen• Amazon S3-Caching (p. 235)• Lokales Caching (p. 235)

Amazon S3-CachingBeim Amazon S3-Caching wird der Cache in einem Amazon S3-Bucket gespeichert, der für mehrereBuild-Hosts verfügbar ist. Diese Option ist gut für kleine zwischenzeitliche Build-Artefakte geeignet, derenErstellung teurer als ein Download ist. Für große Build-Artefakte ist diese Option nicht optimal, da ihreÜbertragung über das Netzwerk unter Umständen viel Zeit in Anspruch nimmt, was sich auf die Build-Leistung auswirken kann. Es ist auch nicht die beste Option, wenn Sie Docker-Layer verwenden.

Lokales CachingBeim lokalen Caching wird der Cache lokal auf einem Build-Host gespeichert und ist nur für diesen Build-Host verfügbar. Diese Option ist gut für große zwischenzeitliche Build-Artefakte geeignet, da der Cachesofort auf dem Build-Host verfügbar ist. Dies ist nicht die beste Option, wenn Ihre Builds selten sind. DieBuild-Leistung ist somit nicht durch die Netzwerk-Übertragungsdauer beeinträchtigt. Wenn Sie sich fürlokales Caching entscheiden, müssen Sie mindestens einen der folgenden Cache-Modi auswählen:

• Beim Quellcache-Modus werden Git-Metadaten für primäre und sekundäre Quellen zwischengespeichert.Nachdem der Cache erstellt wurde, wird bei nachfolgenden Builds nur die Änderung zwischen denCommits abgerufen. Dieser Modus ist gut geeignet für Projekte mit einem sauberen Arbeitsverzeichnisund einem großen Git-Repository als Quelle. Wenn Sie diese Option auswählen und Ihr Projekt kein Git-Repository (GitHub, GitHub Enterprise Server oder Bitbucket) verwendet, wird die Option ignoriert.

API-Version 2016-10-06235

Page 243: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Caching

• Beim Docker-Ebenen-Cache-Modus werden vorhandene Docker-Ebenen zwischengespeichert. DieserModus eignet sich für Projekte, bei denen große Docker-Images erstellt oder abgerufen werden. Mitdiesem Modus können Leistungsprobleme vermieden werden, die beim Abruf großer Docker-Images ausdem Netzwerk entstehen.

Note

• Ein Docker-Ebenen-Cache kann nur in einer Linux-Umgebung verwendet werden.• Das privileged-Flag muss so festgelegt sein, dass Ihr Projekt über die erforderlichen

Docker-Berechtigungen verfügt.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Derprivilegierte Modus gewährt dem Docker-Container eines Build-Projekts Zugriff aufalle Geräte. Weitere Informationen finden Sie unter Laufzeitberechtigungen undLinux-Funktionen auf der Docker-Docs-Website.

• Vor der Verwendung eines Docker-Ebenen-Cache sollten Sie die Auswirkungen auf dieSicherheit berücksichtigen.

• Beim benutzerdefinierten Cache-Modus werden Verzeichnisse zwischengespeichert, die Sie in derbuildspec-Datei angeben. Dieser Modus ist gut geeignet, wenn Ihr Build-Szenario nicht für einen derbeiden anderen lokalen Cache-Modi in Frage kommt. Bei Verwendung eines benutzerdefinierte Cachegilt Folgendes:• Für das Caching können nur Verzeichnisse angegeben werden. Sie können keine einzelnen Dateien

angeben.• Es werden Symlinks verwendet, um auf zwischengespeicherte Verzeichnisse zu verweisen.• Zwischengespeicherte Verzeichnisse werden mit Ihrem Build verknüpft, bevor die Projektquellen

heruntergeladen werden. Im Cache gespeicherte Elemente überschreiben Quellelemente,wenn sie denselben Namen haben. Verzeichnisse werden unter Verwendung von Cache-Pfaden in der buildspec-Datei angegeben. Weitere Informationen finden Sie im Syntax der Build-Spezifikation (p. 151).

• Vermeiden Sie Verzeichnisnamen, die in der Quelle und im Cache identisch sind. Lokalzwischengespeicherte Verzeichnisse können die Inhalte von Verzeichnissen in einem Quell-Repositoryüberschreiben oder löschen, das denselben Namen hat.

Note

Die Umgebungstypen ARM_CONTAINER und LINUX_GPU_CONTAINER und derDatenverarbeitungstyp BUILD_GENERAL1_2XLARGE unterstützen nicht die Verwendung eineslokalen Cache. – Weitere Informationen finden Sie unter Arten der Datenverarbeitung bei derBuild-Umgebung (p. 180).

Themen• Angabe von lokalem Caching (CLI) (p. 236)• Angabe von lokalem Caching (Konsole) (p. 237)• Angabe von lokalem Caching (AWS CloudFormation) (p. 239)

Einen lokalen Cache können Sie über die AWS CLI, die Konsole, das SDK oder AWS CloudFormationangeben.

Angabe von lokalem Caching (CLI)

Über den --cache-Parameter in der AWS CLI können Sie die drei lokalen Cache-Typen angeben.API-Version 2016-10-06

236

Page 244: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Caching

• So geben Sie einen Quellcache an:

--cache type=LOCAL,mode=[LOCAL_SOURCE_CACHE]

• So geben Sie eine Docker-Ebenen-Cache an:

--cache type=LOCAL,mode=[LOCAL_DOCKER_LAYER_CACHE]

• So geben Sie einen benutzerdefinierten Cache an:

--cache type=LOCAL,mode=[LOCAL_CUSTOM_CACHE]

Weitere Informationen finden Sie im Erstellen eines Build-Projekts (AWS CLI) (p. 217).

Angabe von lokalem Caching (Konsole)

Geben Sie den Cache im Abschnitt Artifacts (Artefakte) der Konsole an. Wählen Sie für Cache type(Cache-Typ) Amazon S3 oder Local (Lokal) aus. Wenn Sie Local (Lokal) auswählen, wählen Siemindestens eine der drei lokalen Cache-Optionen aus.

API-Version 2016-10-06237

Page 245: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Caching

API-Version 2016-10-06238

Page 246: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen von Build-Auslösern

Weitere Informationen finden Sie im Erstellen Sie ein Build-Projekt (Konsole) (p. 207).

Angabe von lokalem Caching (AWS CloudFormation)

Wenn Sie AWS CloudFormation um einen lokalen Cache zu spezifizieren, auf der Cache Eigenschaft,für Type, angeben LOCAL. Die folgende Probe YAML-formatiert AWS CloudFormation Code gibt alle dreilokalen Cache-Typen an. Sie können eine beliebige Kombination der Typen angeben. Wenn Sie einenDocker-Ebenen-Cache verwenden, müssen Sie unter Environment (Umgebung) für PrivilegedModedie Option true und für Type (Typ) die Option LINUX_CONTAINER festlegen.

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: <service-role> Artifacts: Type: S3 Location: myBucket Name: myArtifact EncryptionDisabled: true OverrideArtifactName: true Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:4.0 Certificate: bucket/cert.zip # PrivilegedMode must be true if you specify LOCAL_DOCKER_LAYER_CACHE PrivilegedMode: true Source: Type: GITHUB Location: <github-location> InsecureSsl: true GitCloneDepth: 1 ReportBuildStatus: false TimeoutInMinutes: 10 Cache: Type: LOCAL Modes: # You can specify one or more cache mode, - LOCAL_CUSTOM_CACHE - LOCAL_DOCKER_LAYER_CACHE - LOCAL_SOURCE_CACHE

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierte Modusgewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. Weitere Informationenfinden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

Weitere Informationen finden Sie im Erstellen eines Build-Projekts (AWS CloudFormation) (p. 230).

Erstellen von AWS CodeBuild-AuslösernSie können einen Auslöser für ein Projekt erstellen, um eine Erstellung pro Stunde, Tag oder Woche zuplanen. Sie können einen Auslöser auch unter Verwendung einer benutzerdefinierten Regel mit demAmazon CloudWatch-Ausdruck cron erstellen. Mit einem cron-Ausdruck können Sie beispielsweise eineErstellung für eine bestimmte Zeit an jedem Wochentag planen.

Sie erstellen einen Auslöser, nachdem Sie ein Projekt erstellt haben.

So erstellen Sie einen Auslöser

API-Version 2016-10-06239

Page 247: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen von Build-Auslösern

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Klicken Sie auf den Link des Build-Projekts, dem Sie einen Auslöser hinzufügen möchten, und wählen

Sie dann die Registerkarte Build triggers (Auslöser erstellen).

Note

Standardmäßig werden die letzten hundert Build-Projekte angezeigt. Zur Anzeige vonweiteren Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für Projectsper page (Projekte je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

4. Wählen Sie Create trigger.5. Geben Sie unter Trigger name (Auslösername) einen Namen ein.6. Wählen Sie in der Dropdown-Liste Frequency (Frequenz) die Frequenz für den Auslöser aus. Wenn

Sie mit einem Cron-Ausdruck eine Frequenz erstellen möchten, wählen Sie Custom (Benutzerdefiniert)aus.

7. Legen Sie die Parameter für die Häufigkeit Ihres Auslösers fest. Sie können die ersten paar ZeichenIhrer Auswahl in das Textfeld eingeben, um die Elemente des Dropdown-Menüs zu filtern.

Note

Startstunden und -minuten sind nullbasiert. Die Startminute ist eine Zahl zwischen null und 59.Die Startstunde ist eine Zahl zwischen null und 23. Beispielsweise hat ein täglicher Auslöser,der jeden Tag um 12:15 Uhr startet, die Startstunde 12 und die Startminute 15. Ein täglicherAuslöser, der jeden Tag um Mitternacht startet, hat die Startstunde null und die Startminutenull. Ein täglicher Auslöser, der jeden Tag um 23:59 Uhr startet, hat die Startstunde 23 unddie Startminute 59.

Häufigkeit Erforderliche Parameter Details

Stundensatz Startminute Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Täglich Startminute

Startstunde

Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Verwenden Sie das Dropdown-Menü Start hour (Startstunde).

Wöchentlich Startminute

Startstunde

Starttag

Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Verwenden Sie das Dropdown-Menü Start hour (Startstunde).

Verwenden Sie das Dropdown-Menü Start day (Starttag).

Benutzerdefiniert Cron-Ausdruck Geben Sie unter Cronexpression (Cron-Ausdruck)einen Cron-Ausdruck ein. EinCron-Ausdruck besitzt sechsdurch Leerzeichen voneinandergetrennte Pflichtfelder. DieFelder geben einen Startwert

API-Version 2016-10-06240

Page 248: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBearbeiten von Build-Auslösern

Häufigkeit Erforderliche Parameter Detailsfür Minute, Stunde, Tag, Tagdes Monats, Monat, Tag derWoche und Jahr an. Sie könnenPlatzhalterzeichen verwenden,um einen Bereich, zusätzlicheWerte und mehr anzugeben.Beispielsweise wird mit demCron Ausdruck 0 9 ? *MON-FRI * ein Build geplant,der jeden Tag der Wocheum 9:00 Uhr erstellt wird.Weitere Informationen findenSie unter Cron-Ausdrücke imAmazon CloudWatch EventsBenutzerhandbuch.

8. Wählen Sie Enable this trigger (Diesen Trigger aktivieren) aus.9. (Optional) Erweitern Sie den Abschnitt Advanced (Erweitert). Geben Sie in das Feld Source version

(Quellversion) eine Version der Quelle ein.

• Geben Sie für Amazon S3 die Versions-ID ein, die der Version des Eingabeartefakts entspricht,das Sie erstellen möchten. Wenn Sie das Feld Source version (Quellversion) leer lassen, wird dieneueste Version verwendet.

• Geben Sie für AWS CodeCommit eine Commit-ID ein. Wenn das Feld Source version (Quellversion)leer bleibt, wird die HEAD-Commit-ID der Standard-Branch verwendet.

• Geben Sie für GitHub oder GitHub Enterprise eine Commit-ID, eine Pull-Anforderungs-ID, einenVerzweigungsnamen oder einen Tag-Namen ein, der der Version des Quellcodes entspricht, denSie erstellen möchten. Wenn Sie eine Pull-Anforderungs-ID angeben, muss diese das Formatpr/pull-request-ID verwenden (Beispiel: pr/25). Wenn Sie einen Branch-Namen angebenwird, wird die Commit-ID von HEAD verwendet. Wenn das Feld Source version (Quellversion) leerist, wird die HEAD-Commit-ID für die Standard-Branch verwendet.

• Für Bitbucket geben Sie eine Commit-ID, einen Verzweigungsnamen oder einen Tag-Namen, die/der der Version des Quellcodes entspricht, den Sie erstellen möchten. Wenn Sie einen Branch-Namen angeben wird, wird die Commit-ID von HEAD verwendet. Wenn das Feld Source version(Quellversion) leer ist, wird die HEAD-Commit-ID für die Standard-Branch verwendet.

10. (Optional) Geben Sie einen Timeout-Wert zwischen 5 und 480 Minuten (8 Stunden) ein. Dieser Wertgibt an, wie lange AWS CodeBuild versucht, einen Build zu erstellen, bevor der Vorgang gestoppt wird.Wenn die Felder Hours (Stunden) und Minutes (Minuten) leer bleiben, wird der Timeout-Standardwertim Projekt verwendet.

11. Wählen Sie Create trigger.

Bearbeiten von AWS CodeBuild-AuslösernSie können einen Auslöser für ein Projekt bearbeiten, um eine Erstellung pro Stunde, Tag oder Woche zuplanen. Sie können einen Auslöser auch bearbeiten, damit eine benutzerdefinierte Regel mit dem AmazonCloudWatch-Ausdruck cron verwendet wird. Mit einem cron-Ausdruck können Sie beispielsweise eineErstellung für eine bestimmte Zeit an jedem Wochentag planen. Weitere Informationen zum Erstellen einesAuslösers finden Sie unter Erstellen von AWS CodeBuild-Auslösern (p. 239).

So bearbeiten Sie einen Auslöser

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.

API-Version 2016-10-06241

Page 249: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBearbeiten von Build-Auslösern

3. Wählen Sie den Link des Build-Projekts aus, das Sie bearbeiten möchten, und anschließend dieRegisterkarte Build triggers (Build-Auslöser).

Note

Standardmäßig werden die letzten hundert Build-Projekte angezeigt. Zur Anzeige vonweiteren Build-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für Projectsper page (Projekte je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

4. Aktivieren Sie das Optionsfeld neben dem Auslöser, den Sie ändern möchten, und klicken Sie dannauf Edit (Bearbeiten).

5. Wählen Sie in der Dropdown-Liste Frequency (Frequenz) die Frequenz für den Auslöser aus. WennSie mit einem Cron-Ausdruck eine Frequenz erstellen möchten, wählen Sie Custom (Benutzerdefiniert)aus.

6. Legen Sie die Parameter für die Häufigkeit Ihres Auslösers fest. Sie können die ersten paar ZeichenIhrer Auswahl in das Textfeld eingeben, um die Elemente des Dropdown-Menüs zu filtern.

Note

Startstunden und -minuten sind nullbasiert. Die Startminute ist eine Zahl zwischen null und 59.Die Startstunde ist eine Zahl zwischen null und 23. Beispielsweise hat ein täglicher Auslöser,der jeden Tag um 12:15 Uhr startet, die Startstunde 12 und die Startminute 15. Ein täglicherAuslöser, der jeden Tag um Mitternacht startet, hat die Startstunde null und die Startminutenull. Ein täglicher Auslöser, der jeden Tag um 23:59 Uhr startet, hat die Startstunde 23 unddie Startminute 59.

Häufigkeit Erforderliche Parameter Details

Stundensatz Startminute Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Täglich Startminute

Startstunde

Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Verwenden Sie das Dropdown-Menü Start hour (Startstunde).

Wöchentlich Startminute

Startstunde

Starttag

Verwenden Sie dasDropdown-Menü Start minute(Startminute).

Verwenden Sie das Dropdown-Menü Start hour (Startstunde).

Verwenden Sie das Dropdown-Menü Start day (Starttag).

Benutzerdefiniert Cron-Ausdruck Geben Sie unter Cronexpression (Cron-Ausdruck)einen Cron-Ausdruck ein. EinCron-Ausdruck besitzt sechsdurch Leerzeichen voneinandergetrennte Pflichtfelder. DieFelder geben einen Startwertfür Minute, Stunde, Tag, Tagdes Monats, Monat, Tag derWoche und Jahr an. Sie können

API-Version 2016-10-06242

Page 250: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

Häufigkeit Erforderliche Parameter DetailsPlatzhalterzeichen verwenden,um einen Bereich, zusätzlicheWerte und mehr anzugeben.Beispielsweise wird mit demCron Ausdruck 0 9 ? *MON-FRI * ein Build geplant,der jeden Tag der Wocheum 9:00 Uhr erstellt wird.Weitere Informationen findenSie unter Cron-Ausdrücke imAmazon CloudWatch EventsBenutzerhandbuch.

7. Wählen Sie Enable this trigger (Diesen Trigger aktivieren) aus.

Note

Sie können die Amazon CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/zum Bearbeiten von Quellversion, Timeout und anderen Optionen verwenden, die in AWSCodeBuild nicht verfügbar sind.

Bitbucket-Webhook-EreignisseSie können Webhook-Filtergruppen verwenden, um anzugeben, welche Bitbucket-Webhook-Ereignisse einen Build auslösen. Beispielsweise können Sie angeben, dass ein Build nur für bestimmteVerzweigungen ausgelöst werden soll.

Sie können mehrere Webhook-Filtergruppen angeben. Ein Build wird ausgelöst, wenn die Filter eineroder mehrerer Filtergruppen als wahr ausgewertet werden. Beim Erstellen einer Filtergruppe geben SieFolgendes an:

Ein Ereignis.

Für Bitbucket können Sie eine oder mehrere der folgenden Ereignisse auswählen: PUSH,PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, und PULL_REQUEST_MERGED. DerEreignistyp des Webhook befindet sich in der Kopfzeile im X-Event-Key Feld. Aus der folgendeTabelle geht die Zuordnung der X-Event-Key-Header-Werte zu Ereignistypen hervor.

Note

Sie müssen das merged-Ereignis in Ihren Bitbucket-Webhook-Einstellungen aktivieren,wenn Sie eine Webhook-Filtergruppe erstellen, die den PULL_REQUEST_MERGED-Ereignistypverwendet.

X-Event-Key-Header-Wert Ereignistyp

repo:push PUSH

pullrequest:created PULL_REQUEST_CREATED

pullrequest:updated PULL_REQUEST_UPDATED

pullrequest:fulfilled PULL_REQUEST_MERGED

API-Version 2016-10-06243

Page 251: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

Einen oder mehrere optionale Filter.

Verwenden Sie einen regulären Ausdruck, um einen Filter anzugeben. Ein Ereignis löst nur einen Buildaus, wenn alle ihm zugeordneten Filter als wahr ausgewertet werden.ACTOR_ACCOUNT_ID ( ( (ACTOR_ID in der Konsole)

Ein Webhook-Ereignis löst ein Build aus, wenn eine Bitbucket-Konto-ID dem regulärenAusdrucksmuster entspricht. Dieser Wert wird in der Eigenschaft account_id des Objekts actorin der Webhook-Filternutzlast angezeigt.

HEAD_REF

Ein Webhook-Ereignis löst eine Build aus, wenn die Kopfreferenz mit dem regulärenAusdrucksmuster übereinstimmt (z. B. refs/heads/branch-name und refs/tags/tag-name). Ein HEAD_REF-Filter wertet den Git-Referenznamen für den Branch oder Tag aus. DieBranch- oder Tag-Name wird im Feld name des Objekts new im Objekt push der Webhook-Nutzlast angezeigt. Bei Pull-Anforderungsereignissen wird der Branch-Name im Feld name imObjekt branch des Objekts source in der Webhook-Nutzlast angezeigt.

BASE_REF

: Ein Webhook-Ereignis löst einen Build aus, wenn die Basisreferenz dem Muster für reguläreAusdrücke entspricht. Ein BASE_REF-Filter kann nur für Pull-Anfrageereignisse verwendet werden(z. B. refs/heads/branch-name). Ein BASE_REF-Filter wertet den Git-Referenznamen fürdie Verzweigung aus. Der Branch-Name wird im Feld name des Objekts branch im Objektdestination in der Webhook-Nutzlast angezeigt.

FILE_PATH

: Ein Webhook-Ereignis löst einen Build aus, wenn der Pfad einer geänderten Datei dem Musterfür reguläre Ausdrücke entspricht.

COMMIT_MESSAGE

: Ein Webhook löst einen Build aus, wenn die Head-Commit-Nachricht mit dem Muster für reguläreAusdrücke übereinstimmt.

Note

Sie finden die Webhook-Nutzlast in den Webhook-Einstellungen in Ihrem Bitbucket-Repository.

Themen• Filtern von BitBucket-Webhook-Ereignissen (Konsole) (p. 244)• Filtern von BitBucket-Webhook-Ereignissen (SDK) (p. 248)• Filtern von Bitbucket-Webhook-Ereignissen (AWS CloudFormation) (p. 250)

Filtern von BitBucket-Webhook-Ereignissen (Konsole)So verwenden Sie die AWS Management Console zum Filtern von Webhook-Ereignissen:

1. Wählen Sie beim Erstellen Ihres Projekts Rebuild every time a code change is pushed to this repository(Erneut erstellen, wenn eine Codeänderung an dieses Repository übergeben wird) aus.

2. Wählen Sie unter Event type (Ereignistyp) eines oder mehrere Ereignisse aus.3. Wenn Sie Fälle filtern möchten, in denen ein Ereignis einen Build auslöst, fügen Sie unter Start a build

under these conditions (Unter diesen Bedingungen Build starten) einen oder mehrere optionale Filterhinzu.

API-Version 2016-10-06244

Page 252: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

4. Wenn Sie Fälle filtern möchten, in denen kein Ereignis ausgelöst wird, fügen Sie unter Don't start a buildunder these conditions (Unter diesen Bedingungen keinen Build starten) einen oder mehrere optionaleFilter hinzu.

5. Wählen Sie Add filter group (Filtergruppe hinzufügen) aus, um eine weitere Filtergruppe hinzuzufügen.

Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207) undWebhookFilter in der AWS CodeBuild-API-Referenz.

In diesem Beispiel löst eine Webhook-Filtergruppe nur für Pull-Anfragen einen Build aus:

Bei Verwendung eines Beispiels mit zwei Filtergruppen wird ein Build ausgelöst, wenn mindestens eineGruppe als wahr ausgewertet wird:

• Die erste Filtergruppe gibt Pull-Anfragen an, die in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, und mit Kopfreferenzen, die ^refs/heads/branch1! entsprechen, erstellt oder aktualisiert werden.

• Die zweite Filtergruppe gibt Push-Anfragen in Verzweigungen mit Git-Referenznamen an, die demregulären Ausdruck ^refs/heads/branch1$ entsprechen.

API-Version 2016-10-06245

Page 253: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

In diesem Beispiel löst eine Webhook-Filtergruppe einen Build für alle Anfragen mit Ausnahme von Tag-Ereignissen aus.

API-Version 2016-10-06246

Page 254: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

In diesem Beispiel löst eine Webhook-Filtergruppe nur einen Build aus, wenn Dateien geändert werden,deren Namen dem regulären Ausdruck ^buildspec.* entsprechen.

In diesem Beispiel löst eine Webhook-Filtergruppe nur einen Build aus, wenn eine Änderung von einemBitbucket-Benutzer vorgenommen wird, der nicht über eine Konto-ID verfügt, die dem regulären Ausdruckactor-account-id entspricht.

Note

Informationen zur Suche nach der Bitbucket-Konto-ID finden Sie unter https://api.bitbucket.org/2.0/users/user-name"where" user-name ist Ihr Bitbucket-Benutzername.

In diesem Beispiel löst eine Webhook-Filtergruppe einen Build für ein Push-Ereignis aus, wenn die Head-Commit-Nachricht mit dem regulären Ausdruck \[CodeBuild\] übereinstimmt.

API-Version 2016-10-06247

Page 255: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

Filtern von BitBucket-Webhook-Ereignissen (SDK)Wenn Sie das AWS CodeBuild-SDK zum Filtern von Webhook-Ereignissen nutzen möchten, verwendenSie das Feld filterGroups in der Anfragesyntax der API-Methoden CreateWebhook oderUpdateWebhook. Weitere Informationen finden Sie unter WebhookFilter in der CodeBuild-API-Referenz.

Um einen Webhook-Filter zu erstellen, der nur für Pull-Anfragen einen Build auslöst, fügen Sie Folgendesin die Anfragesyntax ein:

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" } ]]

Um einen Webhook-Filter zu erstellen, der nur für die angegebenen Verzweigungen einen Buildauslöst, verwenden Sie den Parameter pattern, um einen regulären Ausdruck zum Filtern vonVerzweigungsnamen anzugeben. Bei Verwendung eines Beispiels mit zwei Filtergruppen wird ein Buildausgelöst, wenn mindestens eine Gruppe als wahr ausgewertet wird:

• Die erste Filtergruppe gibt Pull-Anfragen an, die in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, und mit Kopfreferenzen, die ^refs/heads/myBranch$ entsprechen, erstellt oder aktualisiert werden.

• Die zweite Filtergruppe gibt Push-Anfragen in Verzweigungen mit Git-Referenznamen an, die demregulären Ausdruck ^refs/heads/myBranch$ entsprechen.

"filterGroups": [ [ { "type": "EVENT",

API-Version 2016-10-06248

Page 256: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" }, { "type": "BASE_REF", "pattern": "^refs/heads/main$" } ], [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" } ]]

Sie können den Parameter excludeMatchedPattern verwenden, um anzugeben, welche Ereignissekeinen Build auslösen. In diesem Beispiel wird für alle Anfragen mit Ausnahme von Tag-Ereignissen einBuild ausgelöst.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ]]

Sie können einen Filter erstellen, der nur einen Build auslöst, wenn ein Bitbucket-Benutzer mit der Konto-IDactor-account-id eine Änderung vornimmt.

Note

Informationen zur Suche nach der Bitbucket-Konto-ID finden Sie unter https://api.bitbucket.org/2.0/users/user-name"where" user-name ist Ihr Bitbucket-Benutzername.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ]]

API-Version 2016-10-06249

Page 257: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBitbucket-Webhook-Ereignisse

Sie können einen Filter erstellen, der nur einen Build auslöst, wenn Dateien geändert werden, derenNamen dem regulären Ausdruck in dem Argument pattern entsprechen. In diesem Beispiel gibt dieFiltergruppe an, dass nur ein Build ausgelöst wird, wenn Dateien geändert werden, deren Name demregulären Ausdruck ^buildspec.* entspricht.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ]]

Sie können einen Filter erstellen, der einen Build nur dann auslöst, wenn die Head-Commit-Nachricht mitdem regulären Ausdruck im Musterargument übereinstimmt. In diesem Beispiel gibt die Filtergruppe an,dass ein Build nur dann ausgelöst wird, wenn die Head-Commit-Nachricht des Push-Ereignisses mit demregulären Ausdruck \[CodeBuild\] übereinstimmt.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]

Filtern von Bitbucket-Webhook-Ereignissen (AWSCloudFormation)Wenn Sie zum Filtern von Webhook-Ereignissen eine AWS CloudFormation-Vorlage verwenden möchten,verwenden Sie die Eigenschaft FilterGroups des AWS CodeBuild-Projekts. Mit dem folgenden in YAMLformatierten Teil einer AWS CloudFormation-Vorlage werden zwei Filtergruppen erstellt. Diese lösenzusammen einen Build aus, wenn mindestens eine Gruppe als wahr ausgewertet wird.

• Die erste Filtergruppe gibt an, dass Pull-Anfragen in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, von einem Bitbucket-Benutzer, der über keineKonto-ID 12345 verfügt, erstellt oder aktualisiert werden.

• Die zweite Filtergruppe gibt an, dass Push-Anfragen in Verzweigungen mit Git-Referenznamen erstelltwerden, die dem regulären Ausdruck ^refs/heads/.* entsprechen.

• Die dritte Filtergruppe gibt eine Push-Anforderung mit einer Head Commit-Nachricht an, die demregulären Ausdruck \[CodeBuild\] entspricht.

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject

API-Version 2016-10-06250

Page 258: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:4.0 Source: Type: BITBUCKET Location: source-location Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false - Type: ACTOR_ACCOUNT_ID Pattern: 12345 ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: HEAD_REF Pattern: ^refs/heads/.* - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE - Pattern: \[CodeBuild\]

GitHub-Webhook-EreignisseSie können Webhook-Filtergruppen verwenden, um anzugeben, welche GitHub-Webhook-Ereignisse einenBuild auslösen. Beispielsweise können Sie angeben, dass ein Build nur für bestimmte Verzweigungenausgelöst werden soll.

Sie können eine oder mehrere Webhook-Filtergruppen erstellen, um anzugeben, welche Webhook-Ereignisse einen Build auslösen. Ein Build wird ausgelöst, wenn alle Filter in einer oder mehrerenFiltergruppen als wahr ausgewertet werden. Beim Erstellen einer Filtergruppe geben Sie Folgendes an:

Ein Ereignis.

Für GitHub können Sie eines oder mehrere der folgenden Ereignisse auswählen: PUSH, , und Siehaben die Möglichkeit PULL_REQUEST_CREATED, , und zwar PULL_REQUEST_UPDATED, , undSie haben die Möglichkeit PULL_REQUEST_REOPENED, und PULL_REQUEST_MERGED. (z. B.. DerWebhook-Ereignistyp befindet sich in der X-GitHub-Event -Header in der Webhook-Nutzlast. ImFenster X-GitHub-Event Kopfzeile sehen Sie vielleicht pull_request oder push. (z. B..) Für einPull-Anforderungsereignis befindet sich der Typ im action Feld der Webhook-Ereignisnutzlast. Ausder folgenden Tabelle geht die Zuordnung der X-GitHub-Event-Header-Werte und der Werte imFeld action der Webhook-Pull-Anforderungsnutzlast zu den verfügbaren Ereignistypen hervor.

X-GitHub-Event-Header-Wert

action-Wert der Webhook-Ereignisnutzlast

Ereignistyp

pull_request opened PULL_REQUEST_CREATED

pull_request reopened PULL_REQUEST_REOPENED

pull_request synchronize PULL_REQUEST_UPDATED

API-Version 2016-10-06251

Page 259: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

X-GitHub-Event-Header-Wert

action-Wert der Webhook-Ereignisnutzlast

Ereignistyp

pull_request closed, und die merged Feldist true

PULL_REQUEST_MERGED

push – PUSH

Note

Der Ereignistyp PULL_REQUEST_REOPENED kann nur mit GitHub und GitHub EnterpriseServer verwendet werden.

Einen oder mehrere optionale Filter.

Verwenden Sie einen regulären Ausdruck, um einen Filter anzugeben. Ein Ereignis löst nur einen Buildaus, wenn alle ihm zugeordneten Filter als wahr ausgewertet werden.ACTOR_ACCOUNT_ID (ACTOR_ID in der -Konsole)

Ein Webhook-Ereignis löst einen Build aus, wenn eine GitHub- oder GitHub Enterprise Server-Konto-ID mit dem regulären Ausdrucksmuster übereinstimmt. Dieser Wert befindet sich in derEigenschaft id des Objekts sender in der Webhook-Nutzlast.

HEAD_REF

Ein Webhook-Ereignis löst einen Build aus, wenn die Kopfreferenz mit dem Muster des regulärenAusdrucks übereinstimmt (z. B. refs/heads/branch-name oder refs/tags/tag-name). Beieinem Push-Ereignis ist der Referenzname in der Eigenschaft ref in der Webhook-Nutzlast zufinden. Bei Pull-Anforderungsereignissen befindet sich der Branch-Name in der Eigenschaft refdes Objekts head in der Webhook-Nutzlast.

BASE_REF

Ein Webhook-Ereignis löst einen Build aus, wenn die Basisreferenz mit dem Muster des regulärenAusdrucks übereinstimmt (z. B. refs/heads/branch-name). Ein BASE_REF-Filter kann nurfür Pull-Anforderungsereignisse verwendet werden. Der Branch-Name befindet sich in derEigenschaft ref des Objekts base in der Webhook-Nutzlast.

FILE_PATH

: Ein Webhook-Ereignis löst einen Build aus, wenn der Pfad einer geänderten Datei dem Musterfür reguläre Ausdrücke entspricht. Ein FILE_PATH-Filter kann für GitHub-Push- und -Pull-Anforderungsereignisse und GitHub Enterprise Server-Push-Ereignisse verwendet werden. Erkann nicht für GitHub Enterprise Server-Pull-Anforderungsereignisse verwendet werden.

COMMIT_MESSAGE

: Ein Webhook löst einen Build aus, wenn die Head-Commit-Nachricht mit dem Muster fürreguläre Ausdrücke übereinstimmt. Ein COMMIT_MESSAGE-Filter kann für GitHub-Push- und -Pull-Anforderungsereignisse und GitHub Enterprise Server-Push-Ereignisse verwendet werden. Erkann nicht für GitHub Enterprise Server-Pull-Anforderungsereignisse verwendet werden.

Note

Sie finden die Webhook-Nutzlast in den Webhook-Einstellungen Ihres GitHub-Repositorys.

Themen• Filtern von GitHub-Webhook-Ereignissen (Konsole) (p. 253)

API-Version 2016-10-06252

Page 260: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

• Filtern von GitHub-Webhook-Ereignissen (SDK) (p. 256)• Filtern von GitHub-Webhook-Ereignissen (AWS CloudFormation) (p. 258)

Filtern von GitHub-Webhook-Ereignissen (Konsole)Eingebucht Webhook-Ereignisse der primären Quelle, wählen Sie die folgenden. Dieser Abschnitt ist nurverfügbar, wenn Sie Repository in meinem GitHub-Konto für das Quell-Repository.

1. Wählen Sie beim Erstellen Ihres Projekts Rebuild every time a code change is pushed to this repository(Erneut erstellen, wenn eine Codeänderung an dieses Repository übergeben wird) aus.

2. Wählen Sie unter Event type (Ereignistyp) eines oder mehrere Ereignisse aus.3. Wenn Sie Fälle filtern möchten, in denen ein Ereignis einen Build auslöst, fügen Sie unter Start a build

under these conditions (Unter diesen Bedingungen Build starten) einen oder mehrere optionale Filterhinzu.

4. Wenn Sie Fälle filtern möchten, in denen kein Ereignis ausgelöst wird, fügen Sie unter Don't start a buildunder these conditions (Unter diesen Bedingungen keinen Build starten) einen oder mehrere optionaleFilter hinzu.

5. Auswählen Filtergruppe hinzufügen um bei Bedarf eine weitere Filtergruppe hinzuzufügen.

Weitere Informationen finden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207) undWebhookFilter in der AWS CodeBuild-API-Referenz.

In diesem Beispiel löst eine Webhook-Filtergruppe nur für Pull-Anfragen einen Build aus:

Bei Verwendung eines Beispiels mit zwei Webhook-Filtergruppen wird ein Build ausgelöst, wennmindestens eine Gruppe als wahr ausgewertet wird:

• Die erste Filtergruppe gibt Pull-Anfragen an, die in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, und mit Kopfreferenzen, die ^refs/heads/branch1$ entsprechen, erstellt, aktualisiert oder erneut geöffnet werden.

• Die zweite Filtergruppe gibt Push-Anfragen in Verzweigungen mit Git-Referenznamen an, die demregulären Ausdruck ^refs/heads/branch1$ entsprechen.

API-Version 2016-10-06253

Page 261: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

In diesem Beispiel löst eine Webhook-Filtergruppe einen Build für alle Anfragen mit Ausnahme von Tag-Ereignissen aus.

API-Version 2016-10-06254

Page 262: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

In diesem Beispiel löst eine Webhook-Filtergruppe nur einen Build aus, wenn Dateien geändert werden,deren Namen dem regulären Ausdruck ^buildspec.* entsprechen.

In diesem Beispiel löst eine Webhook-Filtergruppe nur dann einen Build aus, wenn eine Änderung voneinem angegebenen GitHub- oder GitHub Enterprise Server-Benutzer mit einer Konto-ID vorgenommenwird, die dem regulären Ausdruck actor-account-id entspricht.

Note

Weitere Informationen zum Suchen Ihrer GitHub-Konto-ID finden Sie unter https://api.github.com/users/user-name"where" user-name ist Ihr GitHub-Benutzername.

In diesem Beispiel löst eine Webhook-Filtergruppe einen Build für ein Push-Ereignis aus, wenn die Head-Commit-Nachricht mit dem regulären Ausdruck \[CodeBuild\] übereinstimmt.

API-Version 2016-10-06255

Page 263: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

Filtern von GitHub-Webhook-Ereignissen (SDK)Wenn Sie das AWS CodeBuild-SDK zum Filtern von Webhook-Ereignissen nutzen möchten, verwendenSie das Feld filterGroups in der Anfragesyntax der API-Methoden CreateWebhook oderUpdateWebhook. Weitere Informationen finden Sie unter WebhookFilter in der CodeBuild-API-Referenz.

Um einen Webhook-Filter zu erstellen, der nur für Pull-Anfragen einen Build auslöst, fügen Sie Folgendesin die Anfragesyntax ein:

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" } ]]

Um einen Webhook-Filter zu erstellen, der nur für die angegebenen Verzweigungen einen Buildauslöst, verwenden Sie den Parameter pattern, um einen regulären Ausdruck zum Filtern vonVerzweigungsnamen anzugeben. Bei Verwendung eines Beispiels mit zwei Filtergruppen wird ein Buildausgelöst, wenn mindestens eine Gruppe als wahr ausgewertet wird:

• Die erste Filtergruppe gibt Pull-Anfragen an, die in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, und mit Kopfreferenzen, die ^refs/heads/myBranch$ entsprechen, erstellt, aktualisiert oder erneut geöffnet werden.

• Die zweite Filtergruppe gibt Push-Anfragen in Verzweigungen mit Git-Referenznamen an, die demregulären Ausdruck ^refs/heads/myBranch$ entsprechen.

"filterGroups": [ [ { "type": "EVENT",

API-Version 2016-10-06256

Page 264: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" }, { "type": "BASE_REF", "pattern": "^refs/heads/main$" } ], [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" } ]]

Sie können den Parameter excludeMatchedPattern verwenden, um anzugeben, welche Ereignissekeinen Build auslösen. In diesem Beispiel etwa wird für alle Anfragen mit Ausnahme von Tag-Ereignissenein Build ausgelöst.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ]]

Sie können einen Filter erstellen, der nur einen Build auslöst, wenn Dateien geändert werden, derenNamen dem regulären Ausdruck in dem Argument pattern entsprechen. In diesem Beispiel gibt dieFiltergruppe an, dass nur ein Build ausgelöst wird, wenn Dateien geändert werden, deren Name demregulären Ausdruck ^buildspec.* entspricht.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ]]

Sie können einen Filter erstellen, der nur einen Build auslöst, wenn ein angegebener GitHub- oder GitHubEnterprise Server-Benutzer mit der Konto-ID actor-account-id eine Änderung vornimmt.

API-Version 2016-10-06257

Page 265: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGitHub-Webhook-Ereignisse

Note

Weitere Informationen zum Suchen Ihrer GitHub-Konto-ID finden Sie unter https://api.github.com/users/user-name"where" user-name ist Ihr GitHub-Benutzername.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ]]

Sie können einen Filter erstellen, der einen Build nur dann auslöst, wenn die Head-Commit-Nachricht mitdem regulären Ausdruck im Musterargument übereinstimmt. In diesem Beispiel gibt die Filtergruppe an,dass ein Build nur dann ausgelöst wird, wenn die Head-Commit-Nachricht des Push-Ereignisses mit demregulären Ausdruck \[CodeBuild\] übereinstimmt.

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ]]

Filtern von GitHub-Webhook-Ereignissen (AWS CloudFormation)Wenn Sie zum Filtern von Webhook-Ereignissen eine AWS CloudFormation-Vorlage verwenden möchten,verwenden Sie die Eigenschaft FilterGroups des AWS CodeBuild-Projekts. Mit dem folgenden in YAMLformatierten Teil einer AWS CloudFormation-Vorlage werden zwei Filtergruppen erstellt. Diese lösenzusammen einen Build aus, wenn mindestens eine Gruppe als wahr ausgewertet wird.

• Die erste Filtergruppe gibt an, dass Pull-Anfragen in Verzweigungen mit Git-Referenznamen, die demregulären Ausdruck ^refs/heads/main$ entsprechen, von einem GitHub-Benutzer ohne die Konto-ID12345 erstellt oder aktualisiert werden.

• Die zweite Filtergruppe gibt an, dass Push-Anfragen für Dateien, deren Namen dem regulären AusdruckREAD_ME entsprechen, in Verzweigungen mit Git-Referenznamen, die dem regulären Ausdruck ^refs/heads/.* entsprechen, erstellt werden.

• Die dritte Filtergruppe gibt eine Push-Anforderung mit einer Head Commit-Nachricht an, die demregulären Ausdruck \[CodeBuild\] entspricht.

CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject

API-Version 2016-10-06258

Page 266: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:4.0 Source: Type: GITHUB Location: source-location Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false - Type: ACTOR_ACCOUNT_ID Pattern: 12345 ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: HEAD_REF Pattern: ^refs/heads/.* - Type: FILE_PATH Pattern: READ_ME ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE - Pattern: \[CodeBuild\]

Ändern der Einstellungen eines Build-Projekts in AWSCodeBuildSie können die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs zum Ändern derProjekteinstellungen verwenden.

Wenn Sie Testberichte zu einem Build-Projekt hinzufügen, stellen Sie sicher, dass Ihre IAM-Rolle über diein Arbeiten mit Testberichtberechtigungen (p. 324) beschriebenen Berechtigungen verfügt.

Themen• Ändern der Einstellungen eines Build-Projekts (Konsole) (p. 259)• Ändern der Einstellungen eines Build-Projekts (AWS CLI) (p. 268)• Ändern der Einstellungen eines Build-Projekts (AWS SDKs) (p. 269)

Ändern der Einstellungen eines Build-Projekts (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Führen Sie eine der folgenden Aufgaben aus:

• Klicken Sie auf den Link des Build-Projekts, das Sie bearbeiten möchten, und klicken Sie dann aufBuild details (Build-Details).

• Aktivieren Sie das Optionsfeld neben dem Build-Projekt, das Sie ändern möchten, klicken Sie aufView details (Details anzeigen) und klicken Sie dann auf Build details (Build-Details).

API-Version 2016-10-06259

Page 267: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

4. Zum Ändern der Beschreibung des Projekts wählen Sie unter Project configuration(Projektkonfiguration) den Befehl Edit (Bearbeiten) aus und geben Sie dann eine Beschreibung ein.

Wählen Sie Update configuration (Konfiguration aktualisieren).

Weitere Informationen zu den Einstellungen, auf die in dieser Anleitung Bezug genommen wird, findenSie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207).

5. Wählen Sie zum Ändern von Informationen im Speicherort des Quellcodes Edit (Bearbeiten) in derSource (Quelle) aus. Verwenden Sie die folgenden Listen, um die für Ihren Quellanbieter geeignetenAuswahl zu treffen und wählen Sie dann Quelle aktualisieren.

Note

Bitbucket Server wird von CodeBuild nicht unterstützt.

Amazon S3

Bucket

Wählen Sie den Namen des Eingangs-Buckets aus, der den Quellcode enthält.S3-Objektschlüssel oder S3-Ordner

Geben Sie den Namen der ZIP-Datei oder den Pfad zum Ordner ein, der den Quellcodeenthält. Geben Sie einen Vorwärtsschrägstrich (/) ein, um den gesamten Inhalt im S3-Bucketherunterzuladen.

Quellversion

Geben Sie die Versions-ID des Objekts ein, das die Erstellung Ihrer Eingabedateidarstellt. Weitere Informationen finden Sie im Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

CodeCommit

Ablage

Wählen Sie das Repository, das Sie verwenden möchten.Referenztyp

Wählen Niederlassung, Git-Tag, oder ID des Bezugs um die Version Ihres Quellcodesanzugeben. Weitere Informationen finden Sie im Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

Git-Klontiefe

Wählen Sie, um einen flachen Klon mit einer Historie zu erstellen, die auf die angegebeneAnzahl von Commits abgeschnitten wurde. Wenn Sie einen vollständigen Klon erstellenmöchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

Bitbucket

Ablage

Wählen Mit OAuth verbinden oder Mit einem Bitbucket-App-Passwort verbinden undfolgen Sie den Anweisungen, um die Verbindung zu Bitbucket herzustellen (oder wiederherzustellen). API-Version 2016-10-06

260

Page 268: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

Wählen Sie ein öffentliches Repository oder ein Repository in Ihrem Konto aus.Quellversion

Geben Sie eine Filiale ein, legen Sie ID, Tag oder Referenz fest und legen Sie eine Commit-ID fest. Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlaufzu erstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einenvollständigen Klon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an denQuellanbieter gemeldet.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschobenwird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eineCodeänderung auf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenesBitbucket-, GitHub- oder GitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die name Parameter im Bitbucket-Commit-Status. Weitere Informationen finden Sie unter bauen in der Bitbucket-API-Dokumentation.

für Ziel-URL, geben Sie den Wert ein, der für die url Parameter im Bitbucket-Commit-Status.Weitere Informationen finden Sie unter bauen in der Bitbucket-API-Dokumentation.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jederVeröffentlichung einer Codeänderung in diesem Repository neu erstellen) auswählen, müssen Siein Event type (Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwendenreguläre Ausdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alleAnforderungen für das Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisseeinen Build aus. Weitere Informationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251)und Bitbucket-Webhook-Ereignisse (p. 243).

GitHub

Ablage

Wählen Mit OAuth verbinden oder Mit einem persönlichen Zugriffstoken für die Githubverbinden und folgen Sie den Anweisungen, um die Verbindung zu Github zu verbinden (oderwieder herzustellen), und genehmigen Sie den Zugriff auf AWS CodeBuild.

Wählen Sie ein öffentliches Repository oder ein Repository in Ihrem Konto aus.Quellversion

Geben Sie eine Filiale ein, legen Sie ID, Tag oder Referenz fest und legen Sie eine Commit-ID fest. Weitere Informationen finden Sie unter Beispiel für eine Quellversion mit AWSCodeBuild (p. 140).

API-Version 2016-10-06261

Page 269: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlaufzu erstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einenvollständigen Klon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an denQuellanbieter gemeldet.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschobenwird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eineCodeänderung auf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenesBitbucket-, GitHub- oder GitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die context Parameter im Github-Commit-Status. Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für dieGithub-Entwickler.

für Ziel-URL, geben Sie den Wert ein, der für die target_url Parameter im Github-Commit-Status. Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für dieGithub-Entwickler.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jederVeröffentlichung einer Codeänderung in diesem Repository neu erstellen) auswählen, müssen Siein Event type (Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwendenreguläre Ausdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alleAnforderungen für das Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisseeinen Build aus. Weitere Informationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251)und Bitbucket-Webhook-Ereignisse (p. 243).

GitHub Enterprise Server

Github Enterprise persönliches Zugriffstoken

Siehe GitHub Enterprise Server-Beispiel (p. 121) Informationen zum Kopieren einespersönlichen Zugriffstokens in Ihre Zwischenablage. Fügen Sie das Token in das Textfeld einund wählen Sie anschließend Save Token (Token speichern) aus.

Note

Sie müssen das persönliche Zugriffs-Token nur einmal eingeben und speichern.CodeBuild verwendet dieses Token für alle zukünftigen Projekte.

Quellversion

Geben Sie eine Abrufanforderung, einen Zweig, eine ID, einen Tag oder eine Referenz für dieCommit-Kennung ein. Weitere Informationen finden Sie im Beispiel für eine Quellversion mitAWS CodeBuild (p. 140).

API-Version 2016-10-06262

Page 270: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

Git-Klontiefe

Wählen Sie Git clone depth (Git-Klontiefe) aus, um einen flachen Klon mit einem Verlaufzu erstellen, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einenvollständigen Klon erstellen möchten, wählen Sie Full (Vollständig) aus.

Git-Submodule verwenden

Wählen Sie aus, ob Sie Git-Submodule in Ihrem Repository einschließen möchten.Build-Status

Auswählen Erstellen Sie den Status der Berichte an den Quellanbieter, wenn Ihr Start beginntund fertig wird wenn Sie den Status des Start und der Fertigstellung Ihres Gebäudes an IhrenQuellanbieter gemeldet haben.

Note

Der Status eines durch einen Webhook ausgelösten Builds wird stets an denQuellanbieter gemeldet.

Unsicheres SSL

Wählen Sie, um SSL-Warnungen zu ignorieren, während Sie mit Ihrem Github Enterprise-Projekt-Repository verbunden sind.

Auswählen Jedes Mal neu erstellen, wenn eine Codeänderung auf dieses Repository verschobenwird wenn Sie möchten, CodeBuild um den Quellcode jedes Mal zu erstellen, wenn eineCodeänderung auf dieses Repository verschoben wird. Webhooks sind nur für Ihr eigenesBitbucket-, GitHub- oder GitHub Enterprise-Repository zulässig.

für Statuskontext, geben Sie den Wert ein, der für die context Parameter im Github-Commit-Status. Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für dieGithub-Entwickler.

für Ziel-URL, geben Sie den Wert ein, der für die target_url Parameter im Github-Commit-Status. Weitere Informationen finden Sie unter Einen Commit-Status erstellen im Handbuch für dieGithub-Entwickler.

Wenn Sie Rebuild every time a code change is pushed to this repository (Bei jederVeröffentlichung einer Codeänderung in diesem Repository neu erstellen) auswählen, müssen Siein Event type (Ereignistyp) das Ereignis auswählen, das einen Build auslösen soll. Sie verwendenreguläre Ausdrücke, um einen Filter zu erstellen. Wenn kein Filter angegeben ist, lösen alleAnforderungen für das Aktualisieren und Erstellen von Pull-Ereignissen und alle Push-Ereignisseeinen Build aus. Weitere Informationen finden Sie unter GitHub-Webhook-Ereignisse (p. 251)und Bitbucket-Webhook-Ereignisse (p. 243).

Wenn Sie die Einstellung, ob CodeBuild die für dieses Projekt verwendete Servicerolle ändern kannoder nicht, ändern möchten, wählen Sie die Option Allow AWS CodeBuild to modify this service roleso it can be used with this build project (Zulassen, dass AWS CodeBuild diese Servicerolle ändert,sodass sie mit diesem Build-Projekt verwendet werden kann) aus bzw. heben Sie die Auswahlauf. Wenn Sie die Auswahl aufheben, müssen Sie eine Servicerolle verwenden, der CodeBuild-Berechtigungen angefügt sind. Weitere Informationen finden Sie unter Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (p. 391) und Erstellen Sie eineCodeBuild-Servicerolle (p. 396).

6. Wählen Sie zum Ändern der Informationen über die Build-Umgebung Edit (Bearbeiten) in Environment(Umgebung) aus. Nehmen Sie die für den Typ der Build-Umgebung geeigneten Änderungen vor(Beispiel: Environment image (Umgebungsabbild), Operating system (Betriebssystem), Runtime(Laufzeit), Runtime version (Laufzeitversion), Custom image (Benutzerdefiniertes Image), Other

API-Version 2016-10-06263

Page 271: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

location (Anderer Speicherort), Amazon ECR repository (Repository) oder Amazon ECR image(Image)).

7. Wenn Sie vorhaben, dieses Build-Projekt zum Erstellen von Docker-Images zu verwenden und dasvon Ihnen ausgewählte spezifische Build-Umgebungs-Image von CodeBuild nicht mit Docker-Supportbereitgestellt wird, wählen Sie Privileged (Privilegiert). Andernfalls schlagen alle zugehörigen Buildsfehl, die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen auch den Docker-Daemonstarten, damit Ihre Builds bei Bedarf interagieren können. Eine Möglichkeit besteht darin, den Docker-Daemon in der install-Phase der buildspec-Datei zu initialisieren, indem Sie die folgenden Build-Befehle ausführen. (Führen Sie die folgenden Build-Befehle nicht aus, wenn das angegebene Build-Umgebungs-Image von CodeBuild mit Docker-Support bereitgestellt wird.)

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

8. Ändern Sie zum Bearbeiten der Informationen über die CodeBuild-Servicerolle unter Service role(Servicerolle) die Werte für New service role (Neue Servicerolle), Existing service role (VorhandeneServicerolle) oder Role name (Rollenname).

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

9. Ändern Sie zum Bearbeiten der Informationen über die Build-Zeitbeschränkung unter Additionalconfiguration (Zusätzliche Konfiguration) für Timeout die Werte unter hours (Stunden) und minutes(Minuten). Wenn Sie die Felder hours und minutes leer lassen, wird der Standardwert von 60 Minutenverwendet.

10. Ändern Sie zum Bearbeiten der Informationen über die in Amazon VPC erstellte VPC in Additionalconfiguration (Zusätzliche Konfiguration die Werte für VPC, Subnets (Subnetze) und Security groups(Sicherheitsgruppen).

11. Um Informationen zu einem Dateisystem zu ändern, das Sie in Amazon EFS erstellt haben, ändernSie unter Additional configuration (Zusätzliche Konfiguration) die Werte für Identifier (Bezeichner), ID,Directory path (Verzeichnispfad), Mount point (Mountingpunkt) und Mount options (Mountingoptionen).Weitere Informationen finden Sie im Amazon Elastic File System-Beispiel für AWS CodeBuild (p. 58).

12. Ändern Sie zum Bearbeiten der Speichermenge sowie der Anzahl der für die Build-Ausführungverwendeten vCPUs unter Additional configuration (Zusätzliche Konfiguration) den Wert für Compute(Berechnen).

13. Ändern Sie zum Bearbeiten der Informationen über die Umgebungsvariablen, die die Buildsverwenden sollen, unter Additional configuration (Zusätzliche Konfiguration) für Environment variables(Umgebungsvariablen) die Werte für Name, Value (Wert) und Type (Typ). Verwenden Sie dieOption Add environment variable (Umgebungsvariable hinzufügen), um eine Umgebungsvariablehinzuzufügen. Wählen Sie die Option Entfernen neben einer Umgebungsvariable, die Sie nicht mehrverwenden möchten.

API-Version 2016-10-06264

Page 272: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

Andere können die Umgebungsvariablen sehen, indem sie die CodeBuild-Konsole und die AWS CLIverwenden. Wenn Sie keine Bedenken hinsichtlich der Sichtbarkeit Ihrer Umgebungsvariablen haben,stellen Sie die Felder Name und Value ein und legen Sie dann den Type auf Plaintext fest.

Wir empfehlen Ihnen, eine Umgebungsvariable mit einem sensiblen Wert wie z. B. eine AWS-Zugriffsschlüssel-ID, einen AWS-geheimen Zugriffsschlüssel oder ein Passwort als Parameter inAmazon EC2 Systems Manager Parameter Store oder AWS Secrets Manager zu speichern.

Wenn Sie Amazon EC2 Systems Manager Parameter Store verwenden, wählen Sie unter Typ dieOption Parameter aus. Geben Sie unter Name einen Bezeichner für CodeBuild als Referenz ein.Geben Sie als Value (Wert) den Namen des Parameters ein, der in Amazon EC2 Systems ManagerParameter Store gespeichert ist. Verwenden Sie beispielsweise einen Parameter mit der Bezeichnung/CodeBuild/dockerLoginPassword und wählen Sie für Type (Typ) Parameter Store aus. fürName, geben Sie LOGIN_PASSWORD. für Wert, typêè /CodeBuild/dockerLoginPassword.

Important

Wir empfehlen, Parameter in Amazon EC2 Systems Manager Parameter Store mitParameternamen zu speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Sie können die CodeBuild-Konsole verwenden, um einenParameter in Amazon EC2 Systems Manager zu erstellen. Wählen Sie Create a parameter(Parameter erstellen) aus und befolgen Sie dann die Anweisungen im Dialogfeld. (Indiesem Dialogfeld können Sie unter KMS key (KMS-Schlüssel) den ARN eines AWS KMS-Schlüssels in Ihrem Konto angeben. Amazon EC2 Systems Manager verwendet diesenSchlüssel, um den Wert des Parameters beim Speichern zu verschlüsseln und beim Abrufenzu entschlüsseln.) Wenn Sie die CodeBuild-Konsole verwenden, um einen Parameter zuerstellen, beginnt der Parametername in der Konsole beim Speichern mit /CodeBuild/.Weitere Informationen finden Sie unter Systems Manager Parameter Store und in denAnleitungen zur Systems Manager Parameter Store-Konsole im Amazon EC2 SystemsManager Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf Parameter, die in Amazon EC2 Systems ManagerParameter Store gespeichert sind, muss die Servicerolle des Build-Projekts die Aktionssm:GetParameters zulassen. Wenn Sie zuvor New service role (Neue Servicerolle)ausgewählt haben, nimmt CodeBuild diese Aktion automatisch in die Standard-Servicerollefür Ihr Build-Projekt auf. Wenn Sie jedoch Existing service role (Vorhandene Servicerolle)ausgewählt haben, müssen Sie diese Aktion separat in Ihre Servicerolle aufnehmen.Wenn Ihr Build-Projekt auf Parameter verweist, die in Amazon EC2 Systems ManagerParameter Store mit Parameternamen gespeichert sind, die nicht mit /CodeBuild/beginnen, und Sie New service role (Neue Servicerolle) ausgewählt haben, müssen Sie dieseServicerolle aktualisieren, um den Zugriff auf Parameternamen zu erlauben, die nicht mit /CodeBuild/ beginnen. Dies liegt daran, dass diese Service-Rolle nur auf Parameternamenzugreift, die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die Servicerolle dieBerechtigung, alle Parameter unter dem /CodeBuild/ Namespace in Amazon EC2 SystemsManager Parameter Store zu entschlüsseln.Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen. Wenndas Docker-Image beispielsweise bereits eine Umgebungsvariable mit dem Namen MY_VARund einem Wert von my_value enthält und Sie eine Umgebungsvariable mit dem NamenMY_VAR und einem Wert von other_value festlegen, wird my_value durch other_valueersetzt. Wenn das Docker-Image demgegenüber bereits eine Umgebungsvariable mit demNamen PATH und einem Wert von /usr/local/sbin:/usr/local/bin enthält und Sieeine Umgebungsvariable mit dem Namen PATH und einem Wert von $PATH:/usr/share/ant/bin festlegen, wird /usr/local/sbin:/usr/local/bin durch den Literalwert$PATH:/usr/share/ant/bin ersetzt.Legen Sie keine Umgebungsvariable mit einem Namen fest, der mit CODEBUILD_ beginnt.Dieses Präfix ist zur internen Verwendung reserviert.

API-Version 2016-10-06265

Page 273: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wirdder Wert folgendermaßen bestimmt:

• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.• Der Wert in der Build-Projektdefinition folgt darauf.• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.

Wenn Sie Secrets Manager verwenden, wählen Sie unter Type (Typ) die Option Secrets Manager aus.Geben Sie unter Name einen Bezeichner für CodeBuild als Referenz ein. für Wert, geben Sie einereference-key verwenden des Musters secret-id:json-key:version-stage:version-id.Informationen finden Sie unter Secrets Manager reference-key in the buildspec file.

Important

Bei der Verwendung von Secrets Manager empfehlen wir, dass Sie Geheimnisseunter Namen speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword). Weitere Informationen finden Sie unter Was ist AWS SecretsManager? im AWS Secrets Manager-Benutzerhandbuch.Bezieht sich Ihr Build-Projekt auf in Secrets Manager gespeicherte Geheimnisse, muss dieServicerolle des Build-Projekts die Aktion secretsmanager:GetSecretValue zulassen.Wenn Sie zuvor New service role (Neue Servicerolle) ausgewählt haben, nimmt CodeBuilddiese Aktion automatisch in die Standard-Servicerolle für Ihr Build-Projekt auf. Wenn Siejedoch Existing service role (Vorhandene Servicerolle) ausgewählt haben, müssen Sie dieseAktion separat in Ihre Servicerolle aufnehmen.Wenn Ihr Build-Projekt auf Geheimnisse verweist, die in Secrets Manager mitGeheimnisnamen gespeichert sind, die nicht mit /CodeBuild/ beginnen, und SieNew service role (Neue Servicerolle) ausgewählt haben, müssen Sie diese Servicerolleaktualisieren, um den Zugriff auf Geheimnisnamen zu erlauben, die nicht mit /CodeBuild/beginnen. Dies liegt daran, dass diese Servicerolle nur Zugriff auf Geheimnisnamen gewährt,die mit /CodeBuild/ beginnen.Wenn Sie New service role (Neue Servicerolle) auswählen, enthält die erstellte Servicerolledie Berechtigung, alle Geheimnisse unter dem /CodeBuild/-Namespace im SecretsManager zu entschlüsseln.

14. Wählen Sie Update environment (Umgebung aktualisieren).15. Wählen Sie zum Ändern der Build-Spezifikationen des Projekts Edit (Bearbeiten) in Buildspec

aus. Standardmäßig sucht CodeBuild nach einer Datei namens buildspec.yml imQuellcodestammverzeichnis. Wenn Ihre Buildspec-Datei einen anderen Namen oder Standortverwendet, geben Sie ihren Pfad vom Quellstamm in ein Name der Buildspec (zum Beispielbuildspec-two.yml oder configuration/buildspec.yml. Wenn die Buildspec-Datei in einemS3-Bucket ist, muss sie sich in derselben Reihenfolge befinden AWS Region als Ihr Build-Projekt.Geben Sie die buildspec-Datei mit ihrem ARN an (z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml).

• Wenn Ihr Quellcode bisher keine buildspec.yml-Datei enthielt, dies jedoch jetzt der Fall ist, wählenSie die Option Use a buildspec file (Eine buildspec-Datei verwenden) aus.

• Wenn der Quellcode bisher eine Datei "buildspec.yml" enthielt, diese jedoch nicht mehr vorhandenist, wählen Sie die Option Insert build commands (Build-Befehle einfügen) aus und geben Sie unterBuild commands (Build-Befehl) die Befehle ein.

16. Wählen Sie Update buildspec (Buildspec aktualisieren).17. So ändern Sie Informationen zur Batch Build-Konfiguration, in Batch-Konfiguration, wählen Sie

Bearbeiten und aktualisieren Sie die erforderlichen Werte nach Bedarf.

Batch-Servicerolle

Wählen Sie eine der folgenden Optionen aus:

API-Version 2016-10-06266

Page 274: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

• Wenn Sie keine Batch-Servicerolle haben, wählen Sie Neue Servicerolle. in Servicerolle, gebenSie einen Namen für die neue Rolle ein.

• Wenn Sie eine Batch-Servicerolle haben, wählen Sie Bestehende Servicerolle. in Servicerolle,wählen Sie die Servicerolle aus.

Zulässige Berechnungsart(n) für Batch

Wählen Sie die für den Batch zulässigen Berechnungstypen aus. Wählen Sie alle zutreffendenaus.

Maximale Anzahl an in Batch erlaubten Builds

Geben Sie die maximale Anzahl der Builds ein, die im Batch erlaubt sind. Wenn ein Batch dieseGrenze überschreitet, schlägt die Charge fehl.

Batch-Timeout

Geben Sie den maximalen Zeitraum für die Stapelerstellung ein, um abgeschlossen zu werden.Artefakte kombinieren

Auswählen Alle Artefakte aus dem Stapel in einen einzelnen Ort kombinieren um alle Artefakteaus dem Stapel zu einem einzelnen Ort zu haben.

18. Wählen Batch-Konfiguration aktualisieren.19. Um die Informationen über den Standort und den Namen des Build-Ausgabeartefakts zu ändern,

wählen Sie Edit (Bearbeiten) in Artifacts (Artefakte) aus und ändern dann die Werte von Type (Typ),Name, Path (Pfad), Namespace type (Namespace-Typ) oder Bucket name (Bucket-Name).

20. Ändern Sie zum Bearbeiten der Informationen über den vom Kunden verwalteten AWS KMS-Schlüssel(CMK) unter Zusätzliche Konfiguration den Wert für Verschlüsselungsschlüssel.

Important

Wenn Sie Encryption key (Verschlüsselungsschlüssel) leer lassen, verwendet CodeBuildstattdessen den von AWS verwalteten CMK für Amazon S3; aus Ihrem AWS-Konto.

21. Durch die Verwendung eines Caches wird eine Ersparnis bei der Erstellungszeit erzielt,da wiederverwendbare Teile der Build-Umgebung im Cache gespeichert und über Buildshinweg verwendet werden. Weitere Informationen über die Angabe eines Cache in der Build-Spezifikationsdatei finden Sie unter Syntax der Build-Spezifikation (p. 151). Um Informationen überden Cache zu ändern, erweitern Sie Additional configuration (Zusätzliche Konfiguration). Führen Sie inCache type (Cache-Typ) einen der folgenden Schritte aus:

• Wenn Sie zuvor einen Cache gewählt haben, aber nun keinen Cache verwenden möchten, wählenSie No cache (Kein Cache) aus.

• Wenn Sie zuvor No cache (Kein Cache) ausgewählt haben, aber nun einen Cache verwendenmöchten, wählen Sie Amazon S3 aus und gehen dann wie folgt vor:• Wählen Sie für Cache bucket (Cache-Bucket) den Namen des S3-Buckets aus, in dem der Cache

gespeichert wird.• (Optional) Geben Sie für Cache path prefix (Cache-Pfadpräfix) ein Amazon S3-Pfadpräfix ein. Der

Wert für „Cache path prefix (Cache-Pfadpräfix)“ ist mit einem Verzeichnisnamen vergleichbar. Sieverwenden ihn zum Speichern des Cache in demselben Verzeichnis eines Buckets.

Important

Fügen Sie am Ende des Pfadpräfixes keinen Schrägstrich (/) an.22. Um Ihre Protokolleinstellungen zu ändern, wählen Sie unter Logs (Protokolle) die Optionen

CloudWatch logs (CloudWatch-Protokolle) und S3 logs (S3-Protokolle) bzw. heben die Markierungdafür auf.

Wenn Sie CloudWatch logs (Protokolle) auswählen:API-Version 2016-10-06

267

Page 275: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÄndern der Einstellungen eines Build-Projekts ()

• Geben Sie im Feld Group name (Gruppenname) den Namen Ihrer Amazon CloudWatch Logs-Gruppe an.

• In Stream name (Stream-Name) geben Sie Ihren Amazon CloudWatch Logs-Stream-Namen ein.

Wenn Sie S3 logs (S3-Protokolle)auswählen:

• Aus Bucket wählen Sie den Namen des S3-Buckets für Ihre Protokolle.• Geben Sie im Feld Path prefix (Pfad-Präfix) das Präfix für Ihre Protokolle ein.• Wählen Sie Remove S3 log encryption (S3-Protokollverschlüsselung entfernen) aus, wenn Ihre S3-

Protokolle nicht verschlüsselt werden sollen.23. Ändern Sie zum Bearbeiten der Informationen über die Speicherung der Build-Ausgabeartefakte unter

Additional configuration (Zusätzliche Konfiguration) den Wert für Artifacts packaging (Artefakt-Pakete).24. Um zu ändern, ob Build-Artefakte verschlüsselt sind, verwenden Sie Disable artifacts encryption

(Verschlüsselung von Artefakten deaktivieren).25. Wählen Sie Update artifacts (Artefakte aktualisieren).

Ändern der Einstellungen eines Build-Projekts (AWS CLI)Informationen zur Verwendung von AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Aktualisieren CodeBuild Projekt mit dem AWS CLI, Sie erstellen eine JSON-Datei mit den aktualisiertenEigenschaften und bestehen diese Datei an die update-project Befehl. Alle in der Aktualisierungsdateinicht enthaltenen Eigenschaften bleiben unverändert.

In der Update-JSON-Datei ist nur die name Eigenschaft und die geänderten Eigenschaften sinderforderlich. Die name Eigenschaft identifiziert das zu ändernde Projekt. Für alle modifizierten Strukturenmüssen die erforderlichen Parameter für diese Strukturen ebenfalls enthalten sein. Um beispielsweisedie Umgebung für das Projekt zu ändern, environment/type und environment/computeTypeEigenschaften sind erforderlich. Hier ein Beispiel, das Umgebungsbild aktualisiert:

{ "name": "<project-name>", "environment": { "type": "LINUX_CONTAINER", "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/amazonlinux2-x86_64-standard:3.0" }}

Wenn Sie die aktuellen Eigenschaftswerte für ein Projekt erhalten möchten, verwenden Sie die batch-get-projects Befehl, um die aktuellen Eigenschaften des Projekts zu erhalten, das Sie ändern, und schreibenSie die Ausgabe in eine Datei.

aws codebuild batch-get-projects --names "<project-name>" > project-info.json

Das Tool . project-info.json Datei enthält eine Reihe von Projekten, die daher nicht direkt zurAktualisierung eines Projekts verwendet werden können. Sie können jedoch die Eigenschaften kopieren,die Sie von der project-info.json Datei und fügen Sie in die Aktualisierungsdatei ein, die Sie alsBasislinie für die Eigenschaften ändern möchten. Weitere Informationen finden Sie im Anzeigen der Detailseines Build-Projekts (AWS CLI) (p. 234).

Ändern Sie die Aktualisierung der JSON-Datei wie in beschrieben Erstellen eines Build-Projekts (AWSCLI) (p. 217), und speichern Sie Ihre Ergebnisse. Wenn Sie die Aktualisierung der JSON-Datei

API-Version 2016-10-06268

Page 276: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLöschen eines Build-Projekts

abgeschlossen haben, führen Sie die update-project Befehl, um die Aktualisierung der JSON-Datei zustarten.

aws codebuild update-project --cli-input-json file://<update-project-file>

Wenn erfolgreich, wird das aktualisierte Projekt JSON im Ausgang angezeigt. Wenn erforderlicheParameter fehlen, wird eine Fehlermeldung im Ausgang angezeigt, die fehlenden Parameter identifiziert.Dies ist beispielsweise die Fehlermeldung, die angezeigt wird, wenn environment/type Parameter fehlt:

aws codebuild update-project --cli-input-json file://update-project.json

Parameter validation failed:Missing required parameter in environment: "type"

Ändern der Einstellungen eines Build-Projekts (AWS SDKs)Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWS SDKs- undTools-Referenz (p. 404).

Löschen eines Build-Projekts in AWS CodeBuildSie können zum Löschen eines Build-Projekts in CodeBuild die CodeBuild-Konsole, AWS CLI oder AWS-SDKs verwenden. Wenn Sie ein Projekt löschen, werden dessen Builds nicht gelöscht.

Warning

Sie können kein Projekt löschen, das Builds und eine Ressourcenrichtlinie enthält. Umein Projekt mit einer Ressourcenrichtlinie und Builds zu löschen,müssen Sie zunächst dieRessourcenrichtlinie entfernen und seine Builds löschen.

Themen• Löschen eines Build-Projekts (Konsole) (p. 269)• Löschen eines Build-Projekts (AWS CLI) (p. 270)• Löschen eines Build-Projekts (AWS SDKs) (p. 270)

Löschen eines Build-Projekts (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Führen Sie eine der folgenden Aufgaben aus:

• Aktivieren Sie das Optionsfeld neben dem Build-Projekt, das Sie löschen möchten, und klicken Sieauf Delete (Löschen).

• Klicken Sie auf den Link des Build-Projekts, das Sie löschen möchten, und klicken Sie dann aufDelete.

Note

Standardmäßig werden nur die letzten zehn Build-Projekte angezeigt. Zur Anzeige vonweiteren Build-Projekten wählen Sie einen anderen Wert für Projects per page (Projekte jeSeite) aus oder verwenden die Vorwärts- und Rückwärtspfeile zum Anzeigen von Projekten.

API-Version 2016-10-06269

Page 277: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Projekten

Löschen eines Build-Projekts (AWS CLI)1. Führen Sie den Befehl delete-project aus:

aws codebuild delete-project --name name

Ersetzen die folgenden Platzhalter:

• name: Erforderliche Zeichenfolge. Zeigt den Namen des zu löschenden Build-Projekts an. ZumAnzeigen einer Liste sämtlicher verfügbarer Build-Projekte führen Sie den Befehl list-projectsaus. Weitere Informationen finden Sie unter Anzeigen einer Liste mit Build-Projektnamen (AWSCLI) (p. 232).

2. Ist der Befehl erfolgreich, werden in der Ausgabe keine Daten und Fehler angezeigt.

Weitere Informationen zur Verwendung der AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Löschen eines Build-Projekts (AWS SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Arbeiten mit freigegebenen ProjektenMit der Projektfreigabe können Projekteigentümer ihre AWS CodeBuild-Projekte für andere AWS-Kontenoder Benutzer freigeben. In diesem Modell gibt das Konto, das Eigentümer des Projekts (Eigentümer)ist, ein Projekt für andere Konten (Verbraucher) frei. Ein Verbraucher kann kein Projekt bearbeiten oderausführen.

Inhalt:• Voraussetzungen für die Freigabe von Projekten (p. 270)• Voraussetzungen für den Zugriff auf freigegebene Projekte (p. 270)• Zugehörige Services (p. 271)• Freigeben eines Projekts (p. 271)• Aufheben der Freigabe eines freigegebenen Projektes (p. 273)• Identifizieren eines freigegebenen Projekts (p. 273)• Berechtigungen für freigegebene Projekte (p. 273)

Voraussetzungen für die Freigabe von ProjektenUm ein Projekt freizugeben, muss Ihr AWS-Konto dessen Eigentümer sein. Sie können kein Projektfreigeben, das für Sie freigegeben wurde.

Voraussetzungen für den Zugriff auf freigegebene ProjekteUm auf eine freigegebene Berichtsgruppe zuzugreifen, benötigt die IAM-Rolle eines Verbrauchers dieBatchGetProjects-Berechtigung. Sie können die folgende Richtlinie an ihre IAM-Rolle anfügen:

{ "Effect": "Allow",

API-Version 2016-10-06270

Page 278: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Projekten

"Resource": [ "*" ], "Action": [ "codebuild:BatchGetProjects" ]}

Weitere Informationen finden Sie im Verwenden von identitätsbasierten Richtlinien für AWSCodeBuild (p. 364).

Zugehörige ServicesDie Projektfreigabe ist mit AWS Resource Access Manager (AWS RAM) integriert, einem Service,der es Ihnen ermöglicht, Ihre AWS- Ressourcen für ein beliebiges AWS-Konto oder über AWSOrganizations freizugeben. Mit AWS RAM können Sie Ressourcen gemeinsam nutzen, indem Sie eineRessourcenfreigabe erstellen, die die Ressourcen und die Verbraucher angibt, für die sie freigegebenwerden sollen. Verbraucher können einzelne AWS-Konten oder Organisationseinheiten in AWSOrganizations oder gesamte Organisationen in AWS Organizations sein.

Weitere Informationen finden Sie unter AWS RAM-Benutzerhandbuch.

Freigeben eines ProjektsDer Verbraucher kann beides verwenden AWS CLI und AWS CodeBuild die Konsole, um das Projektanzuzeigen und zu erstellen. Der Verbraucher kann das Projekt nicht bearbeiten oder ausführen.

Sie können ein Projekt zu einer vorhandenen Ressourcenfreigabe hinzufügen oder in der AWS RAM-Konsole erstellen.

Note

Sie können kein Projekt mit Builds löschen, das einer Ressourcenfreigabe hinzugefügt wurde.

Um ein Projekt für Organisationseinheiten oder eine ganze Organisation freizugeben, müssen Sie dieFreigabe mit AWS Organizations aktivieren. Weitere Informationen finden Sie unter Freigabe für AWSOrganizations aktivieren im AWS RAM-Benutzerhandbuch.

Sie können die AWS CodeBuild-Konsole, die AWS RAM-Konsole oder AWS CLI verwenden, um einProjekt freizugeben, dessen Eigentümer Sie sind.

So geben Sie ein Projekt frei, dessen Eigentümer Sie sind (CodeBuild-Konsole):

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus.

Note

Standardmäßig werden nur die letzten 10 Build-Projekte angezeigt. Zur Anzeige von weiterenBuild-Projekten wählen Sie das Zahnradsymbol und einen anderen Wert für Projects per page(Projekte je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

3. Wählen Sie das Projekt aus, das Sie freigeben möchten, und klicken Sie dann auf Share (Freigeben).Weitere Informationen finden Sie unter Erstellen einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So geben Sie ein Projekt frei, dessen Eigentümer Sie sind (AWS RAM-Konsole):

API-Version 2016-10-06271

Page 279: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Projekten

Vgl. Erstellen einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So geben Sie ein Projekt frei, dessen Eigentümer Sie sind (AWS RAM-Befehl):

Verwenden Sie den Befehl create-resource-share.

So geben Sie ein Projekt frei, dessen Eigentümer Sie sind (CodeBuild-Befehl):

Verwenden Sie den Befehl put-resource-policy :

1. Erstellen Sie eine Datei mit dem Namen policy.json und kopieren Sie Folgendes in diese Datei.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"<consumer-aws-account-id-or-user>" }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"<arn-of-project-to-share>" }]}

2. Aktualisieren Sie policy.json mit dem Projekt-ARN und Bezeichnern für die Freigabe. Im folgendenBeispiel wird dem Stammbenutzer schreibgeschützten Zugriff für das von 123456789012 identifizierteAWS-Konto gewährt.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS": [ "123456789012" ] }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"arn:aws:codebuild:us-west-2:123456789012:project/my-project" }]}

3. Führen Sie die put-resource-policy Befehl.

aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json

4. Holen Sie sich die AWS RAM Ressourcen-Share ARN.

aws ram list-resources --resource-owner SELF --resource-arns <project-arn>

Dies wird eine Antwort ähnlich wie folgt zurückgeben:

{ "resources": [

API-Version 2016-10-06272

Page 280: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Projekten

{ "arn": "<project-arn>", "type": "<type>", "resourceShareArn": "<resource-share-arn>", "creationTime": "<creation-time>", "lastUpdatedTime": "<last-update-time>" } ]}

Kopieren Sie die Antwort <resource-share-arn> Wert, der im nächsten Schritt verwendet wird.5. Führen Sie die AWS RAM Promotion-Ressourcen-von-Richtlinie-für-Sie-von-Marketing Befehl.

aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>

Aufheben der Freigabe eines freigegebenen ProjektesAuf ein nicht mehr freigegebenes Projekt, einschließlich seiner Builds, kann nur sein Eigentümer zugreifen.Wenn Sie die Freigabe eines Projekts aufheben, kann ein AWS-Konto oder -Benutzer, für das/den Sie eszuvor freigegeben haben, nicht mehr auf das Projekt oder seine Builds zugreifen.

Um die Freigabe eines freigegebenen Projektes, dessen Eigentümer Sie sind, aufzuheben, müssen Siees aus der Ressourcenfreigabe entfernen. Sie dafür können die AWS CodeBuild-Konsole, die AWS RAM-Konsole oder AWS CLI verwenden.

So heben Sie die Freigabe eines freigegebenen Projekts auf, dessen Eigentümer Sie sind (AWS RAM-Konsole)

Siehe Aktualisieren einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So heben Sie die Freigabe eines freigegebenen Projekts auf, dessen Eigentümer Sie sind (AWS CLI)

Verwenden Sie den Befehl disassociate-resource-share.

Um das Projekt freizugeben, das Sie besitzen (CodeBuild Befehl)

Führen Sie den Befehl delete-resource-policy aus und geben Sie den ARN des Projekts an, dessenFreigabe Sie aufheben möchten:

aws codebuild delete-resource-policy --resource-arn project-arn

Identifizieren eines freigegebenen ProjektsEigentümer und Verbraucher können freigegebene Projekte mit AWS CLI identifizieren.

So identifizieren Sie Projekte, die für Ihr AWS-Konto oder Ihren Benutzer freigegeben wurden (AWS CLI)

Verwenden Sie den Befehl list-shared-projects, um die für Sie freigegebenen Projekte anzuzeigen.

Berechtigungen für freigegebene ProjekteBerechtigungen für Besitzer

Ein Projekteigentümer kann das Projekt bearbeiten und es zum Ausführen von Builds verwenden.

API-Version 2016-10-06273

Page 281: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren eines Projekts

Berechtigungen für Konsumenten

Ein Projektverbraucher kann ein Projekt und seine Builds anzeigen, es jedoch nicht bearbeiten oder damitBuilds ausführen.

Markieren von Projekten in AWS CodeBuildEin Tag ist eine benutzerdefinierte Attributbezeichnung, die Sie oder AWS einer AWS-Ressource zuweisen.Jedes AWS-Tag besteht aus zwei Teilen:

• einem Tag-Schlüssel (z. B. CostCenter, Environment, Project oder Secret). Tag-Schlüsselnunterscheiden zwischen Groß- und Kleinschreibung.

• einem optionalen Feld, das als Tag-Wert bezeichnet wird (z. B. 111122223333, Production oderein Team-Name). Ein nicht angegebener Tag-Wert entspricht einer leeren Zeichenfolge. Wie bei Tag-Schlüsseln wird auch bei Tag-Werten zwischen Groß-/Kleinschreibung unterschieden.

Dies wird als Schlüssel-Wert-Paar bezeichnet. Informationen zur Anzahl der Tags, die ein Projekt besitzenkann, und zu Einschränkungen in Bezug auf Tag-Schlüssel und -Werte finden Sie unter Tags (p. 447).

Tags helfen Ihnen, Ihre AWS-Ressourcen zu identifizieren und zu organisieren. Viele AWS-Servicesunterstützen das Markieren mit Tags (kurz: Tagging). So können Ressourcen aus verschiedenen Servicesdenselben Tag zuweisen, um anzugeben, dass die Ressourcen verbunden sind. Sie können beispielsweisedas gleiche Tag einem CodeBuild-Projekt zuweisen, das Sie auch einem S3-Bucket zuweisen. WeitereInformationen zur Verwendung von Tags finden Sie im Whitepaper Bewährte Methoden für die Markierung.

In CodeBuild sind die primären Ressourcen das Projekt und die Berichtsgruppe. Sie können dieCodeBuild-Konsole, die AWS CLI, CodeBuild-APIs oder AWS-SDKs verwenden, um Tags für einProjekt hinzuzufügen, zu verwalten und zu entfernen. Zusätzlich zur Identifizierung, Organisation undNachverfolgung Ihres Projekts mit Tags können Sie Tags in IAM-Richtlinien verwenden, um zu steuern, werIhr Projekt anzeigen und mit ihm interagieren kann. Beispiele für Tag-basierte Zugriffsrichtlinien finden Sieunter Verwenden von Tags zur Steuerung des Zugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Themen• Hinzufügen eines Tags zu einem Projekt (p. 274)• Anzeigen von Tags für ein Projekt (p. 275)• Bearbeiten von Tags für ein Projekt (p. 276)• Entfernen eines Tag aus einem Projekt (p. 277)

Hinzufügen eines Tags zu einem ProjektDas Hinzufügen von Tags zu einem Projekt kann Ihnen helfen, Ihre AWS-Ressourcen zu identifizierenund zu organisieren und den Zugriff auf sie zu verwalten. Fügen Sie zunächst ein oder mehrere Tags(Schlüssel-Wert-Paare) zu einem Projekt hinzu. Denken Sie daran, dass es Limits in Bezug auf die Anzahlder Tags für ein Projekt gibt. Es gibt Einschränkungen im Hinblick auf die Zeichen, die Sie in die Felder fürSchlüssel und Wert eingeben können. Weitere Informationen finden Sie unter Tags (p. 447). Nach derErstellung der Tags können Sie IAM-Richtlinien für die Verwaltung des Zugriffs auf das Projekt basierendauf diesen Tags erstellen. Sie können die CodeBuild-Konsole oder die AWS CLI verwenden, um einemProjekt Tags hinzuzufügen.

Important

Bevor Sie ein Tag zu einem Projekt hinzufügen, müssen Sie alle IAM-Richtlinien überprüfen,die möglicherweise Tags für die Steuerung des Zugriffs auf Ressourcen wie z. B. Build-Projekte

API-Version 2016-10-06274

Page 282: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren eines Projekts

verwenden. Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Verwenden von Tags zurSteuerung des Zugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Weitere Informationen zum Hinzufügen von Tags zu einem Projekt während dessen Erstellung finden Sieunter Hinzufügen eines Tags zu einem Projekt (Konsole) (p. 275).

Themen• Hinzufügen eines Tags zu einem Projekt (Konsole) (p. 275)• Hinzufügen eines Tags zu einem Projekt (AWS CLI) (p. 275)

Hinzufügen eines Tags zu einem Projekt (Konsole)

Sie können die CodeBuild-Konsole verwenden, um einem CodeBuild-Projekt ein oder mehrere Tagshinzuzufügen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Build projects (Build-Projekte) den Namen des Projekts aus, dem Sie Tags hinzufügen

möchten.3. Klicken Sie im Navigationsbereich auf Settings. Wählen Sie Build project tags (Build-Projekt-Tags) aus.4. Wenn dem Projekt keine Tags hinzugefügt wurden, wählen Sie Add tag (Tag hinzufügen) aus. Wählen

Sie andernfalls Edit (Bearbeiten) und Add tag (Tag hinzufügen) aus.5. Geben Sie für Key (Schlüssel) einen Namen für das Tag ein. Sie können einen optionalen Wert für das

Tag unter Value (Wert) hinzufügen.6. (Optional) Zum Hinzufügen eines weiteren Tags wählen Sie Add tag (Tag hinzufügen) erneut aus.7. Wenn Sie mit dem Hinzufügen von Tags fertig sind, klicken Sie auf Submit (Übermitteln).

Hinzufügen eines Tags zu einem Projekt (AWS CLI)

Informationen dazu, wie Sie einem Projekt während dessen Erstellung ein Tag hinzufügen, finden Sie unterErstellen eines Build-Projekts (AWS CLI) (p. 217). Fügen Sie Ihre Tags in create-project.jsonhinzu.

Bei diesen Schritten wird davon ausgegangen, dass Sie bereits eine aktuelle Version der AWS CLIinstalliert oder eine Aktualisierung auf die aktuelle Version vorgenommen haben. Weitere Informationenfinden Sie unter Installieren der AWS Command Line Interface.

Wenn der Befehl erfolgreich ist, wird nichts zurückgegeben.

Anzeigen von Tags für ein ProjektTags helfen Ihnen, Ihre AWS-Ressourcen zu identifizieren und den Zugriff auf diese zu verwalten. WeitereInformationen zur Verwendung von Tags finden Sie im Whitepaper Bewährte Methoden für die Markierung.Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Verwenden von Tags zur Steuerung desZugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Anzeigen von Tags für ein Projekt (Konsole)

Sie können die CodeBuild-Konsole verwenden, um die mit einem CodeBuild-Projekt verknüpften Tagsanzuzeigen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Build projects (Build-Projekte) den Namen des Projekts aus, in dem Sie Tags anzeigen

möchten.

API-Version 2016-10-06275

Page 283: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren eines Projekts

3. Klicken Sie im Navigationsbereich auf Settings. Wählen Sie Build project tags (Build-Projekt-Tags) aus.

Anzeigen von Tags für ein Projekt (AWS CLI)

Führen Sie den folgenden Befehl aus, um Tags für ein Build-Projekt anzuzeigen. Verwenden Sie denNamen Ihres Projekts für den Parameter --names.

aws codebuild batch-get-projects --names your-project-name

Wenn der Befehl erfolgreich ist, gibt dieser Befehl JSON-formatierte Informationen zu Ihrem Build-Projektzurück, das Angaben ähnlich den folgenden enthält:

{ "tags": { "Status": "Secret", "Team": "JanesProject" }}

Wenn das Projekt keine Tags besitzt, ist der tags-Abschnitt leer:

"tags": []

Bearbeiten von Tags für ein ProjektSie können den Wert für ein Tag ändern, das mit einem Projekt verknüpft ist. Sie können auch denNamen des Schlüssels ändern. Dies entspricht dem Entfernen des aktuellen Tags und dem Hinzufügeneines anderen Tags mit dem neuen Namen und demselben Wert wie dem des anderen. Denken Siedaran, dass es hinsichtlich der Zeichen, die Sie in die Felder für Schlüssel und Wert eingeben können,Einschränkungen gibt. Weitere Informationen finden Sie unter Tags (p. 447).

Important

Das Bearbeiten von Tags für ein Projekt kann sich auf den Zugriff auf dieses Projekt auswirken.Bevor Sie den Namen (Schlüssel) oder den Wert eines Tags für ein Projekt bearbeiten, müssenSie alle IAM-Richtlinien überprüfen, die den Schlüssel oder Wert eines Tags möglicherweise fürdie Steuerung des Zugriffs auf Ressourcen wie z. B. Build-Projekte verwenden. Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Verwenden von Tags zur Steuerung des Zugriffs aufAWS CodeBuild-Ressourcen (p. 386).

Bearbeiten eines Tags für ein Projekt (Konsole)

Sie können die CodeBuild-Konsole verwenden, um die mit einem CodeBuild-Projekt verknüpften Tags zubearbeiten.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Build projects (Build-Projekte) den Namen des Projekts aus, in dem Sie Tags bearbeiten

möchten.3. Klicken Sie im Navigationsbereich auf Settings. Wählen Sie Build project tags (Build-Projekt-Tags) aus.4. Wählen Sie Edit aus.5. Führen Sie eine der folgenden Aufgaben aus:

• Zum Ändern des Tags geben Sie einen neuen Namen unter Key (Schlüssel) ein. Das Ändern desNamens eines Tags entspricht dem Entfernen eines Tags und Hinzufügen eines neuen Tags mitdem neuen Schlüsselnamen.

API-Version 2016-10-06276

Page 284: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren eines Projekts

• Geben Sie zum Ändern des Werts eines Tags einen neuen Wert ein. Wenn Sie den Wert in „kein“ändern möchten, löschen Sie den aktuellen Wert und lassen das Feld leer.

6. Wenn Sie mit dem Bearbeiten der Tags fertig sind, wählen Sie Submit (Übermitteln) aus.

Bearbeiten von Tags für ein Projekt (AWS CLI)

Informationen zum Hinzufügen, Ändern oder Löschen von Tags aus einem Build-Projekt finden Sie unterÄndern der Einstellungen eines Build-Projekts (AWS CLI) (p. 268). Aktualisieren Sie den tags-Abschnittin den JSON-formatierten Daten, die Sie zum Aktualisieren des Projekts verwenden.

Entfernen eines Tag aus einem ProjektSie können ein oder mehrere mit einem Projekt verknüpfte Tags entfernen. Das Entfernen eines Tagslöscht nicht das Tag anderer AWS-Ressourcen, die mit diesem Tag verknüpft sind.

Important

Das Entfernen von Tags für ein Projekt kann sich auf den Zugriff auf dieses Projekt auswirken.Bevor Sie ein Tag aus einer Projekt entfernen, müssen Sie alle IAM-Richtlinien überprüfen,die den Schlüssel oder Wert eines Tags möglicherweise für die Steuerung des Zugriffs aufRessourcen wie z. B. Build-Projekte verwenden. Beispiele für Tag-basierte Zugriffsrichtlinienfinden Sie unter Verwenden von Tags zur Steuerung des Zugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Entfernen eines Tag aus einem Projekt (Konsole)

Sie können die CodeBuild-Konsole verwenden, um die Verknüpfung zwischen einem Tag und einemCodeBuild-Projekt zu entfernen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Build projects (Build-Projekte) den Namen des Projekts aus, in dem Sie Tags entfernen

möchten.3. Klicken Sie im Navigationsbereich auf Settings. Wählen Sie Build project tags (Build-Projekt-Tags) aus.4. Wählen Sie Edit (Bearbeiten) aus.5. Suchen Sie die Tags, die Sie entfernen möchten, und wählen Sie dann Remove tag (Tag entfernen)

aus.6. Wenn Sie die Tags entfernt haben, klicken Sie auf Submit (Übermitteln).

Entfernen eines Tag aus einem Projekt (AWS CLI)

Informationen zum Löschen eines oder mehrerer Tags aus einem Build-Projekt finden Sie unter Ändernder Einstellungen eines Build-Projekts (AWS CLI) (p. 268). Aktualisieren Sie den tags-Abschnitt inden JSON-formatierten Daten mit einer aktualisierten Liste von Tags, die keine der Tags enthält, die Sielöschen möchten. Wenn Sie alle Tags löschen möchten, aktualisieren Sie den tags-Abschnitt zu:

"tags: []"

Note

Wenn Sie ein CodeBuild-Build-Projekt löschen, werden alle Tag-Verknüpfungen aus demgelöschten Build-Projekt entfernt. Sie müssen keine Tags entfernen, bevor Sie ein Build-Projektlöschen.

API-Version 2016-10-06277

Page 285: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBatch-Builds

Batch erstellt sich in AWS CodeBuildAWS CodeBuild unterstützt die Ausführung gleichzeitiger und koordinierter Projekte eines Projekts mitBatch-Builds. Mit AWS können Sie Gesundheitsdaten, darunter geschützte patientenbezogene Daten(protected health information, PHI), im Rahmen eines abgeschlossenen Geschäftspartnervertrags(Business Associate Agreement, BAA) speichern.

• Chargenbuild-Build-Referenz (p. 170)• Batch-Konfiguration (p. 215)• Batch-Build ausführen (AWS CLI) (p. 288)• Batch-Build abbrechen AWS CodeBuild (p. 299)

Arbeiten mit Builds in AWS CodeBuildBei einem Build handelt es sich um eine Reihe von Aktionen, die von AWS CodeBuild ausgeführtwerden, um basierend auf einem Satz von Eingabeartefakten (beispielsweise einer Sammlung von Java-Klassendateien) Ausgabeartefakte (wie z. B. eine JAR-Datei) zu erstellen.

Die folgenden Regeln gelten, wenn Sie mehrere Builds ausführen:

• Wenn möglich, werden Builds gleichzeitig ausgeführt. Die maximale Anzahl gleichzeitig ausgeführterBuilds ist variabel. Weitere Informationen finden Sie im Builds (p. 446).

• Builds werden in eine Warteschlange gestellt, falls die Anzahl gleichzeitig ausgeführter Builds denHöchstwert erreicht hat. Die maximale Anzahl von Builds in einer Warteschlange ist das Fünffache desGrenzwerts für gleichzeitig ausgeführte Builds. Weitere Informationen finden Sie im Builds (p. 446).

• Ein Build in einer Warteschlange, der nach der für die Zeitüberschreitung angegebenen Anzahlvon Minuten noch nicht gestartet wurde, wird aus der Warteschlange entfernt. Die Vorgabe für dieZeitüberschreitung beträgt 8 Stunden. Sie können die Zeitüberschreitung der Build-Warteschlangebeim Ausführen des Builds auf einen Wert zwischen fünf Minuten und acht Stunden einstellen. WeitereInformationen finden Sie im Ausführen eines Build in AWS CodeBuild (p. 279).

• Es ist nicht möglich, vorherzusagen, in welcher Reihenfolge die Builds in der Warteschlange gestartetwerden.

Note

Sie können auf den Verlauf eines Builds für ein Jahr zugreifen.

Sie können diese Aufgaben bei der Arbeit mit Builds durchführen:

Themen• Ausführen eines Build in AWS CodeBuild (p. 279)• Anzeigen von Build-Details in AWS CodeBuild (p. 290)• Anzeigen einer Liste mit Build-IDs in AWS CodeBuild (p. 293)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt in AWS CodeBuild (p. 295)• Stoppen eines Builds in AWS CodeBuild (p. 298)• Batch-Build abbrechen AWS CodeBuild (p. 299)• Ein Build erneut versuchen AWS CodeBuild (p. 300)• Eine Laufbahn im Sitzungsmanager anzeigen (p. 301)

API-Version 2016-10-06278

Page 286: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

• Löschen von Builds in AWS CodeBuild (p. 304)

Ausführen eines Build in AWS CodeBuildSie können zum Ausführen eines Build in CodeBuild die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs verwenden.

Themen• Ausführen eines Build (Konsole) (p. 279)• Ausführen eines Build (AWS CLI) (p. 284)• Batch-Build ausführen (AWS CLI) (p. 288)• Ausführung von Builds automatisch starten (AWS CLI) (p. 289)• Ausführung von Builds automatisch beenden (AWS CLI) (p. 290)• Ausführen eines Build (AWS-SDKs) (p. 290)

Ausführen eines Build (Konsole)Um AWS CodePipeline für die Ausführung eines Build mit CodeBuild zu verwenden, überspringenSie diese Schritte und folgen Sie den Anweisungen im Abschnitt Verwenden von CodePipeline mitCodeBuild (p. 407).

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Führen Sie eine der folgenden Aufgaben aus:

• Wenn Sie gerade ein Build-Projekt erstellt haben, Projekt erstellen: project-name Seite sollteangezeigt werden. Wählen Sie Start build.

• Wenn Sie bereits zuvor ein Build-Projekt erstellt haben, wählen Sie im Navigationsbereich Buildprojects. Wählen Sie das Build-Projekt aus und wählen Sie dann Start build.

3. Führen Sie auf der Seite Start build (Build starten) einen der folgenden Schritte aus:

• Geben Sie für Amazon S3 für den optionalen Wert der Source version (Quellversion) die Versions-ID für die Version des Eingabeartefakts ein, das Sie erstellen möchten. Wenn Sie das Feld Sourceversion (Quellversion) leer lassen, wird die neueste Version verwendet.

• Wählen Sie für CodeCommit für Reference type (Referenztyp) die Option Branch, Git tag (Git-Tag) oder Commit ID (Commit-ID) aus. Als Nächstes wählen Sie die Zweigstelle, das Git-Tag odereine Commit-ID, um die Version Ihres Quellcodes anzugeben. Weitere Informationen finden Sie imBeispiel für eine Quellversion mit AWS CodeBuild (p. 140). Ändern Sie den Wert für Git clone depth.So erstellen Sie einen flachen Klon mit einem Verlauf, der auf die angegebene Anzahl von Commitsgekürzt ist. Wenn Sie einen vollständigen Klon erstellen möchten, wählen Sie Full (Vollständig) aus.

• Geben Sie für GitHub oder GitHub Enterprise Server für den optionalen Wert der Source version(Quellversion) eine Commit-ID, eine Pull-Anfrage-ID, einen Branch-Namen oder einen Tag-Namenfür die Version des Quellcodes ein, die Sie erstellen möchten. Wenn Sie eine Pull-Anforderungs-ID angeben, muss diese das Format pr/pull-request-ID verwenden (Beispiel: pr/25). WennSie einen Branch-Namen angeben wird, wird die Commit-ID von HEAD verwendet. Wenn das FeldSource version (Quellversion) leer ist, wird die HEAD-Commit-ID für die Standard-Branch verwendet.Ändern Sie den Wert für Git clone depth. So erstellen Sie einen flachen Klon mit einem Verlauf, derauf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einen vollständigen Klon erstellenmöchten, wählen Sie Full (Vollständig) aus.

• Geben Sie für Bitbucket für den optionalen Wert der Source version (Quellversion) eine Commit-ID,einen Branch-Namen oder einen Tag-Namen für die Version des Quellcodes ein, die Sie erstellenmöchten. Wenn Sie einen Branch-Namen angeben wird, wird die Commit-ID von HEAD verwendet.Wenn das Feld Source version (Quellversion) leer ist, wird die HEAD-Commit-ID für die Standard-

API-Version 2016-10-06279

Page 287: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

Branch verwendet. Ändern Sie den Wert für Git clone depth. So erstellen Sie einen flachen Klonmit einem Verlauf, der auf die angegebene Anzahl von Commits gekürzt ist. Wenn Sie einenvollständigen Klon erstellen möchten, wählen Sie Full (Vollständig) aus.

• Um einen anderen Quell-Anbieter nur für diesen Build zu verwenden, wählen Sie Advanced options(Erweiterte Optionen) aus. Weitere Informationen zu Optionen und Einstellungen bezüglich desQuell-Anbieters finden Sie unter Choose source provider.

4. Wählen Sie Advanced build overrides (Erweiterter Build überschreibt).

Hier können Sie Einstellungen nur für dieses Build ändern. Die Einstellungen in diesem Abschnitt sindoptional.

Unter Konfiguration erstellen, wählen Sie aus Folgendem:.

Einzelaufbau

Wählen Sie diese Option, um eine einzelne Build auszuführen.Batch-Aufbau

Wählen Sie dies, um eine Batch-Erstellung durchzuführen.

Unter Batch-Konfiguration, legen Sie die Batch Build-Konfigurationsüberschreibungen für diese Buildfest.

Note

Dieser Abschnitt wird nur angezeigt, wenn Batch-Aufbau ist in ausgewählt Konfigurationerstellen.

Service – -Rolle

Stellt die Servicerolle für Batch-Builds bereit. Wählen Sie eine der folgenden Optionen aus:• Wenn Sie keine Batch-Servicerolle haben, wählen Sie Neue Servicerolle. in Servicerolle, geben

Sie einen Namen für die neue Rolle ein.• Wenn Sie eine Batch-Servicerolle haben, wählen Sie Bestehende Servicerolle. in Servicerolle,

wählen Sie die Servicerolle aus.

Um zu ändern, ob CodeBuild die Batch-Servicerolle, die Sie verwenden, für diese Erstellung,Auswahl oder Löschung ändern kann Erlauben zulassen AWS CodeBuild um diese Servicerollezu ändern, damit sie mit diesem Build-Projekt verwendet werden kann. Wenn Sie die Auswahlaufheben, müssen Sie eine Servicerolle verwenden, der CodeBuild-Berechtigungen angefügt sind.Weitere Informationen finden Sie unter Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (p. 391) und Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

Zulässige Berechnungsart(n) für Batch

Wählen Sie die für den Batch zulässigen Berechnungstypen aus. Wählen Sie alle zutreffendenaus.

Maximale Anzahl an in Batch erlaubten Builds

Geben Sie die maximale Anzahl der Builds ein, die im Batch erlaubt sind. Wenn ein Batch dieseGrenze überschreitet, schlägt die Charge fehl.

Batch-Timeout

Geben Sie den maximalen Zeitraum für die Stapelerstellung ein, um abgeschlossen zu werden.Artefakte kombinieren

Auswählen Alle Artefakte aus dem Stapel in einen einzelnen Ort kombinieren um alle Artefakteaus dem Stapel zu einem einzelnen Ort zu haben.

API-Version 2016-10-06280

Page 288: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

Unter Source (Quelle) können Sie:

• Wählen Sie zum Hinzufügen einer sekundären Quelle Add source (Quelle hinzufügen) aus.• Wählen Sie Remove source (Quelle entfernen), um eine sekundäre Quelle zu entfernen.• Nutzen Sie Source provider (Quellanbieter) und Source version (Quellversion) zum Ändern der

Einstellungen einer Quelle.

Unter Environment (Umgebung) stehen folgende Möglichkeiten zur Verfügung:

• Überschreiben Sie die Einstellungen für Environment image (Umgebungs-Image), Operating system(Betriebssystem), Runtime (Laufzeitumgebung) und Runtime version (Laufzeitversion).

• Aktivieren oder deaktivieren Sie Privileged (Privilegiert).

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf derDocker-Docs-Website.

• Unter Service role (Servicerolle) können Sie die Servicerolle ändern, die CodeBuild nutzt, umabhängige AWS-Services für Sie aufzurufen. Wählen Sie New service role (Neue Servicerolle) aus,wenn CodeBuild eine Servicerolle für Sie erstellen soll.

• Wählen Sie Override build specification (Build-Spezifikation überschreiben) aus, um eine andereBuild-Spezifikation zu verwenden.

• Ändern Sie den Wert für Timeout.• Ändern Sie den Wert für Compute (Berechnen).• Wählen Sie unter Certificate (Zertifikat) eine andere Einstellung aus.

Unter Buildspec haben Sie folgende Möglichkeiten:

• Wählen Sie Use a buildspec file (buildspec-Datei verwenden) aus, um eine buildspec.yml-Dateizu verwenden. Standardmäßig sucht CodeBuild nach einer Datei namens buildspec.yml imQuellcodestammverzeichnis. Wenn Ihre Buildspec-Datei einen anderen Namen oder Standortverwendet, geben Sie ihren Pfad vom Quellstamm in ein Name der Buildspec (zum Beispielbuildspec-two.yml oder configuration/buildspec.yml. Wenn die Buildspec-Datei ineinem S3-Bucket ist, muss sie sich in derselben Reihenfolge befinden AWS Region als Ihr Build-Projekt. Geben Sie die Build-Spezifikationsdatei durch ihren ARN an (z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml).

• Wählen Sie Insert build commands (Build-Befehle einfügen) aus, um Befehle einzugeben, die Siewährend der Build-Phase ausführen möchten.

Unter Build Artifacts (Artefakte erstellen) stehen folgende Möglichkeiten zur Verfügung:

• Wählen Sie für Type (Typ) einen anderen Artefakttyp aus.• Geben Sie unter Name einen anderen Namen für das Ausgabeartefakt ein.• Wenn ein in der buildspec-Datei angegebener Name einen in der Konsole angegebenen

Namen überschreiben soll, wählen Sie Enable semantic versioning (Semantisches Versioningaktivieren) aus. Der Name in einer Build-Spezifikationsdatei verwendet die Shell-Befehlssprache.Beispielsweise können Sie dem Namen Ihres Artefakts ein Datum und eine Uhrzeit anhängen, damitdieser stets eindeutig ist. Eindeutige Artefakt-Namen verhindern, dass Artefakte überschriebenwerden. Weitere Informationen finden Sie im Syntax der Build-Spezifikation (p. 151).

API-Version 2016-10-06281

Page 289: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

• Geben Sie unter Path (Pfad) einen anderen Ausgabeartefakt-Pfad ein.• Wählen Sie unter Namespace type (Namespace-Typ) einen anderen Typ aus. Wählen Sie Build ID

(Build-ID), um die Build-ID in den Pfad der Build-Ausgabedatei (z. B. My-Path/Build-ID/My-Artifact.zip) einzufügen. Klicken Sie andernfalls auf None (Keine).

• Wählen Sie unter Bucket name (Bucket-Name) einen anderen S3-Bucket für Ihre Ausgabeartefakteaus.

• Wenn Sie nicht wollen, dass Ihre Build-Artefakte verschlüsselt werden, wählen Sie Disable artifactsencryption (Verschlüsselung von Artefakten deaktivieren).

• Wählen Sie Artifacts packaging (Artefakt-Paketerstellung) und die Option Zip aus, um die Build-Artefaktdateien in eine komprimierte Datei aufzunehmen. Wenn Sie die Build-Artefaktdateien einzeln(nicht komprimiert) in den angegebenen S3-Bucket einfügen möchten, wählen Sie None (Keine) aus.

• Wählen Sie unter Cache für Type (Typ) eine andere Cache-Einstellung aus.• So überschreiben Sie sekundäre Artefakte nur für diesen Build:

• Wählen Sie zum Entfernen eines sekundären Artefakts unter Secondary artifacts (SekundäreArtefakte) das X in der betreffenden Zeile aus.

• Wählen Sie zum Hinzufügen eines sekundären Artefakts Add artifact (Artefakt hinzufügen) ausund geben Sie dann die Informationen für das sekundäre Artefakt ein. Weitere Informationenfinden Sie in Schritt 8 in Erstellen Sie ein Build-Projekt (Konsole) (p. 207).

Unter Logs (Protokolle) können Sie Ihre Protokolleinstellungen überschreiben, indem Sie die OptionenCloudWatch Logs und S3 logs (S3-Protokolle) auswählen bzw. die Auswahl aufheben.

• Wenn Sie CloudWatch logs (CW-Protokolle) aktivieren:• Geben Sie im Feld Group name (Gruppenname) den Namen Ihrer Amazon CloudWatch Logs-

Gruppe an.• In Stream name (Stream-Name) geben Sie Ihren Amazon CloudWatch Logs-Stream-Namen ein.

• Wenn Sie S3 logs (S3-Protokolle) aktivieren:• Aus Bucket wählen Sie den Namen des S3-Buckets für Ihre Protokolle.• Geben Sie im Feld Path prefix (Pfad-Präfix) das Präfix für Ihre Protokolle ein.

Unter Service role (Servicerolle) können Sie die Servicerolle ändern, die CodeBuild nutzt, umabhängige AWS-Services für Sie aufzurufen. Wählen Sie Create a role (Eine Rolle erstellen) aus,wenn CodeBuild eine Servicerolle für Sie erstellen soll.

5. Erweitern Sie Environment variables override (Umgebungsvariablen überschreiben).

Die Umgebungsvariablenliste wird mit den Umgebungsvariablen, die im Build-Projekt festgelegtsind, vorausgefüllt. Wenn Sie den Wert einer vordefinierten Umgebungsvariable für diese Erstellungändern möchten, ändern Sie die Werte für Wert und/oder Typ. Wählen Sie Add environmentvariable (Umgebungsvariable hinzufügen), um eine neue Umgebungsvariable nur für diesen Buildhinzuzufügen.

Note

Die Entfernen Schaltfläche kann nicht verwendet werden, um eine vordefinierteUmgebungsvariable zu entfernen. Die Entfernen wird nur verwendet, um eineUmgebungsvariable zu entfernen, die für diese Erstellung hinzugefügt oder geändert wurde.

Andere können eine Umgebungsvariable sehen, indem sie die CodeBuild-Konsole und die AWS CLIverwenden. Wenn Sie keine Bedenken hinsichtlich der Sichtbarkeit Ihrer Umgebungsvariablen haben,stellen Sie die Felder Name und Value ein und legen Sie dann den Type auf Plaintext fest.

Wir empfehlen Ihnen, eine Umgebungsvariable mit einem sensiblen Wert wie z. B. eine AWS-Zugriffsschlüssel-ID, einen AWS-geheimen Zugriffsschlüssel oder ein Passwort als Parameter inAPI-Version 2016-10-06

282

Page 290: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

Amazon EC2 Systems Manager Parameter Store zu speichern. Wählen Sie für Type (Typ) die OptionParameter. Gegen Sie unter Name einen Bezeichner für CodeBuild als Referenz ein. Geben Sie alsValue (Wert) den Namen des Parameters ein, der in Amazon EC2 Systems Manager Parameter Storegespeichert ist. Verwenden Sie beispielsweise einen Parameter mit der Bezeichnung /CodeBuild/dockerLoginPassword und wählen Sie für Type (Typ) Parameter Store aus. für Name, geben SieLOGIN_PASSWORD. für Wert, geben Sie /CodeBuild/dockerLoginPassword.

Wir empfehlen, Parameter in Amazon EC2 Systems Manager Parameter Store mit Parameternamenzu speichern, die mit /CodeBuild/ beginnen (z. B. /CodeBuild/dockerLoginPassword).Sie können die CodeBuild-Konsole verwenden, um einen Parameter in Amazon EC2 SystemsManager zu erstellen. Wählen Sie Create a parameter (Parameter erstellen) aus und befolgen Siedann die Anweisungen. (In diesem Dialogfeld, für KMS-Schlüssel, Sie können das ARN-Feld AWSKMS Schlüssel in Ihrem Konto. Amazon EC2 Systems Manager verwendet diesen Schlüssel, umden Wert des Parameters während der Speicherung zu verschlüsseln und während der Abfrageentschlüsselt.) Wenn Sie die CodeBuild Konsole erstellt, um einen Parameter zu erstellen, startet dieKonsole den Parameter mit /CodeBuild/ da sie gespeichert wird. Weitere Informationen finden Sieunter Systemparameter für Systemmanager und Walkthrough: Erstellen und testen Sie einen String-Parameter (Konsole) im Amazon EC2 Systems Manager Benutzerhandbuch.

Bezieht sich Ihr Build-Projekt auf Parameter, die in Amazon EC2 Systems Manager ParameterStore gespeichert sind, muss die Servicerolle des Build-Projekts die Aktion ssm:GetParameterszulassen. Wenn Sie zuvor Create a service role in your account (Servicerolle in Ihrem Konto erstellen)ausgewählt haben, dann nimmt CodeBuild diese Aktion automatisch in die Standard-Servicerolle fürIhr Build-Projekt auf. Wenn Sie jedoch Choose an existing service role from your account ausgewählthaben, müssen Sie diese Aktion separat in Ihre Service-Rolle aufnehmen.

Wenn Ihr Build-Projekt auf Parameter verweist, die in gespeichert werden Amazon EC2 SystemsManager Parameterspeicher mit Parameternamen, die nicht mit /CodeBuild/, und Sie habengewählt Erstellen Sie eine Servicerolle in Ihrem Konto, dann müssen Sie diese Servicerolleaktualisieren, um den Zugriff auf Parameternamen, die nicht beginnen, zu erlauben, /CodeBuild/.Dies liegt daran, dass die Servicerolle nur den Parameternamen ermöglicht, die mit /CodeBuild/.

Jede festgelegte Umgebungsvariable ersetzt vorhandene Umgebungsvariablen. Wenn das Docker-Bild beispielsweise eine Umgebungsvariable enthält, die benannt wurde MY_VAR mit einem Wert vonmy_value, und Sie legen eine Umgebungsvariable fest MY_VAR mit einem Wert von other_value,dann my_value ersetzt durch other_value. Wenn das Docker-Bild bereits eine Umgebungsvariableenthält, die benannt wurde PATH mit einem Wert von /usr/local/sbin:/usr/local/bin, und Sielegen eine Umgebungsvariable fest PATH mit einem Wert von $PATH:/usr/share/ant/bin, dann/usr/local/sbin:/usr/local/bin wird durch den literalen Wert ersetzt $PATH:/usr/share/ant/bin.

Keine Umgebungsvariablen mit einem Namen festlegen, der beginnt mit CODEBUILD_. Dieses Präfixist für den internen Gebrauch reserviert.

Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wird ihr Wertfolgendermaßen bestimmt:

• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.• Der Wert in der Build-Projektdefinition folgt darauf.• Der Wert in der buildspec-Deklaration hat die niedrigste Priorität.

6. Wählen Sie Start build.

Weitere Informationen zu diesem Build finden Sie unter Anzeigen von Build-Details(Konsole) (p. 291).

API-Version 2016-10-06283

Page 291: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

Ausführen eines Build (AWS CLI)Note

Um CodePipeline für die Ausführung eines Build mit AWS CodeBuild zu verwenden, überspringenSie diese Schritte und folgen Sie den Anweisungen im Abschnitt Erstellen einer Pipeline unterVerwendung von CodeBuild (AWS CLI) (p. 412).Weitere Informationen zur Verwendung der AWS CLI mit CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

1. Führen Sie den Befehl start-build auf eine der folgenden Weisen aus:

aws codebuild start-build --project-name <project-name>

Sie können diesen Befehl verwenden, wenn Sie ein Build ausführen möchten, dass die neuesteVersion des Build-Eingabeartifakts und die vorhandenen Einstellungen des Build-Projekts einsetzt.

aws codebuild start-build --generate-cli-skeleton

Verwenden Sie diesen Befehl, wenn Sie einen Build mit einer früheren Version des Build-Eingabeartefakts verwenden oder die Einstellungen für Build-Ausgabeartefakte, Umgebungsvariablen,Build-Spezifikationen oder Standard-Build-Zeitbeschränkungen überschreiben möchten.

2. Wenn Sie die start-build Befehl mit dem --project-name Option, ersetzen <project-name> mitdem Namen des Build-Projekts und gehen Sie dann zu Schritt 6 dieses Verfahrens. Informationen zumAbrufen einer Liste von Build-Projekten finden Sie unter Anzeigen einer Liste mit Build-Projektnamen() (p. 232).

3. Wenn Sie den Befehl start-build mit der Option --idempotency-token ausführen, wird eineindeutiger Bezeichner, in dem die Groß- und Kleinschreibung berücksichtigt wird (auch als Tokenbezeichnet), in die start-build-Anforderung aufgenommen. Das Token ist nach der -Anforderung5 Minuten gültig. Wenn Sie die start-build-Anforderung mit dem Token wiederholen, jedoch einenParameter ändern, gibt CodeBuild einen Fehler wegen des abweichenden Parameters zurück.

4. Wenn Sie den start-build Befehl mit der Option --generate-cli-skeleton ausführen, werdenDaten im JSON-Format in der Ausgabe angezeigt. Kopieren Sie die Daten in eine Datei (z. B. start-build.json) auf dem lokalen Computer oder auf einer Instance, auf der AWS CLI installiert ist.Ändern Sie die kopierten Daten, damit diese mit dem nachfolgenden Format übereinstimmen undspeichern Sie die Ergebnisse:

{ "projectName": "projectName", "sourceVersion": "sourceVersion", "artifactsOverride": { "type": "type", "location": "location", "path": "path", "namespaceType": "namespaceType", "name": "artifactsOverride-name", "packaging": "packaging" }, "buildspecOverride": "buildspecOverride", "cacheOverride": { "location": "cacheOverride-location", "type": "cacheOverride-type" }, "certificateOverride": "certificateOverride", "computeTypeOverride": "computeTypeOverride", "environmentTypeOverride": "environmentTypeOverride", "environmentVariablesOverride": { "name": "environmentVariablesOverride-name",

API-Version 2016-10-06284

Page 292: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

"value": "environmentVariablesValue", "type": "environmentVariablesOverride-type" }, "gitCloneDepthOverride": "gitCloneDepthOverride", "imageOverride": "imageOverride", "idempotencyToken": "idempotencyToken", "insecureSslOverride": "insecureSslOverride", "privilegedModeOverride": "privilegedModeOverride", "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride", "reportBuildStatusOverride": "reportBuildStatusOverride", "timeoutInMinutesOverride": "timeoutInMinutesOverride", "sourceAuthOverride": "sourceAuthOverride", "sourceLocationOverride": "sourceLocationOverride", "serviceRoleOverride": "serviceRoleOverride", "sourceTypeOverride": "sourceTypeOverride"}

Ersetzen die folgenden Platzhalter:

• projectNameErforderliche Zeichenfolge. Der Name des Build-Projekts, der für diesen Build zuverwenden ist.

• sourceVersion: Optionale Zeichenfolge. Eine Version des Quellcodes, der wie folgt zu erstellenist:• Die Versions-ID für Amazon S3, die der Version der Eingabe-ZIP-Datei entspricht, die Sie

erstellen möchten. Wenn . sourceVersion ist nicht angegeben, dann wird die neueste Versionverwendet.

• Die Commit-ID für CodeCommit, die der Version des Quellcodes entspricht, die Sieerstellen möchten. Wenn . sourceVersion ist nicht angegeben, die HEAD Commit IDder Standardniederlassung wird verwendet. (Sie können keinen Tag-Namen angeben fürsourceVersion, aber Sie können die ID des Tags angeben.)

• Für GitHub, Commit-ID, Pull-Anforderungs-ID, Branch-Name oder Tag-Name, die/der derVersion des Quellcodes entspricht, die Sie erstellen möchten. Wenn eine Pull-Anforderungs-IDangegeben ist, muss diese das Format pr/pull-request-ID aufweisen (Beispiel: pr/25).Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn .sourceVersion ist nicht angegeben, die HEAD Commit ID der Standardniederlassung wirdverwendet.

• Für Bitbucket, Commit-ID, Branch-Name oder Tag-Name, die/der der Version des Quellcodesentspricht, die Sie erstellen möchten. Wenn ein Branch-Name angegeben wird, wird die Commit-ID von HEAD verwendet. Wenn . sourceVersion ist nicht angegeben, die HEAD Commit ID derStandardniederlassung wird verwendet.

• Die folgenden Platzhalter gelten für artifactsOveride.• type(Optional) Die Art des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt,

der im Build-Projekt festgelegt ist.• location(Optional) Der Speicherort des Build-Ausgabeartefakt, der für diesen Build den Build

überschreibt, der im Build-Projekt festgelegt ist.• path(Optional) Der Pfad des Build-Ausgabeartefakts, der für diesen Build den Build überschreibt,

der im Build-Projekt festgelegt ist.• namespaceType(Optional) Der Pfadtyp des Build-Ausgabeartefakts, der für diesen Build den

Build überschreibt, der im Build-Projekt festgelegt ist.• name(Optional) Der Name des Build-Ausgabeartefakts, der für diesen Build den Build

überschreibt, der im Build-Projekt festgelegt ist.• packaging(Optional) Die Verpackungsart des Build-Ausgabeartefakts, der für diesen Build den

Build überschreibt, der im Build-Projekt festgelegt ist.• buildspecOverride(Optional) Eine Build-Spezifikationsdeklaration, die für diesen Build den

Build überschreibt, der im Build-Projekt festgelegt ist. Wenn dieser Wert festgelegt ist, kann esAPI-Version 2016-10-06

285

Page 293: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

sich entweder um eine Inline-Definition einer Build-Spezifikation, den Pfad zu einer alternativenbuildspec-Datei relativ zum Wert der integrierten Umgebungsvariablen CODEBUILD_SRC_DIR oderden Pfad zu einem S3-Bucket handeln. Der S3-Bucket muss sich in derselben AWS-Region wie dasBuild-Projekt befinden. Geben Sie die buildspec-Datei mit ihrem ARN an (z. B. arn:aws:s3:::my-codebuild-sample2/buildspec.yml). Wenn der Wert nicht angegeben oder eine leereZeichenfolge ist, muss der Quellcode eine buildspec.yml-Datei im Stammverzeichnis enthalten.Weitere Informationen finden Sie im Dateiname der Build-Spezifikation und Speicherort (p. 151).

• Die folgenden Platzhalter gelten für cacheOveride.• cacheOverride-location(Optional) Der Ort eines ProjectCache Objekt für diesen Build, der

die ProjectCache Objekt im Build-Projekt festgelegt. cacheOverride ist optional und nimmteine ProjectCache Objekt. location wird in einem ProjectCache-Objekt benötigt.

• cacheOverride-type(Optional) Der Typ eines ProjectCache Objekt für diesen Build, der dieProjectCache Objekt im Build-Projekt festgelegt. cacheOverride ist optional und nimmt eineProjectCache Objekt. type wird in einem ProjectCache-Objekt benötigt.

• certificateOverride(Optional) Der Name eines Zertifikats für diesen Build, das das im Build-Projekt angegebene überschreibt.

• environmentTypeOverride(Optional) Ein Containertyp für diesen Build, der den im Build-Projektangegebenen überschreibt. Die aktuell gültige Zeichenfolge ist LINUX_CONTAINER.

• Die folgenden Platzhalter gelten für environmentVariablesOveride.• environmentVariablesOverride-name(Optional) Der Name einer Umgebungsvariable in

dem Build_Projekt, deren Wert Sie für diesen Build überschreiben möchten.• environmentVariablesOverride-type(Optional) Der Typ der Umgebungsvariablen im Build-

Projekt, deren Wert für diesen Build überschrieben werden soll.• environmentVariablesValue(Optional) Der Wert der Umgebungsvariablen, der im Build-

Projekt festgelegt wurde und für diesen Build überschrieben werden soll.• gitCloneDepthOverride(Optional) Der Wert für Git clone depth, der in dem Build-Projekt

festgelegt ist, dessen Wert Sie für diesen Build überschreiben möchten. Wenn Ihr Quelltyp AmazonS3 ist, wird dieser Wert nicht unterstützt.

• imageOverride(Optional) Der Name eines Abbilds für diesen Build, das das im Build-Projektangegebene überschreibt.

• idempotencyToken(Optional) Eine Zeichenfolge, die als Token dient und angibt, dass die Build-Anforderung idempotent ist. Sie können eine beliebige Zeichenfolge mit maximal 64 Zeichenverwenden. Das Token ist nach der start-build-Anforderung 5 Minuten gültig. Wenn Sie die start-build-Anforderung mit dem Token wiederholen, jedoch einen Parameter ändern, gibt CodeBuildeinen Fehler wegen des abweichenden Parameters zurück.

• insecureSslOverride: Optionale Boolesche, die festlegen, ob die unsichere TLS-Einstellung überschrieben werden soll, die im Build-Projekt festgelegt wurde. Die unsichere TLS-Einstellung bestimmt, ob TLS-Warnungen ignoriert werden sollen, während die Verbindung zumProjektquellcode hergestellt wird. Diese Überschreibung gilt nur, wenn die Build-Quelle GitHubEnterprise Server ist.

• privilegedModeOverride: Optional boolesch. Ist der Wert "true" festgelegt, überschreibt derBuild den privilegierten Modus im Build-Projekt.

• queuedTimeoutInMinutesOverride: Optionale Ganzzahl, die Anzahl der Minuten angibt, dieeine Baustelle angibt, kann vor dem Zeitpunkt in die Warteschlange gestellt werden. Der kleinsteWert beträgt fünf Minuten, der größte Wert beträgt 480 Minuten (8 Stunden).

• reportBuildStatusOverride: Optional boolesche, die angeben, ob der Quellanbieter denStatus des Start- und Abschlussvorgangs eines Gebäudes sendet. Wenn Sie dies bei einemanderen Quellanbieter als GitHub, GitHub Enterprise Server oder Bitbucket festlegen, wird eineinvalidInputException ausgegeben.

• sourceAuthOverride: Optionale Zeichenfolge. Ein Autorisierungstyp für diesen Build, der den imBuild-Projekt angegebenen überschreibt. Diese Überschreibung gilt nur, wenn die Quelle des Build-Projekts Bitbucket oder GitHub ist.

API-Version 2016-10-06286

Page 294: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

• sourceLocationOverride: Optionale Zeichenfolge. Ein Speicherort, der für diesen Build denQuellspeicherort überschreibt, der im Build-Projekt definiert ist.

• serviceRoleOverride: Optionale Zeichenfolge. Der Name einer Servicerolle für diesen Build, diedie im Build-Projekt angegebene Servicerolle überschreibt.

• sourceTypeOverride: Optionale Zeichenfolge. Ein Quelleingabetyp für diesen Build, der die imBuild-Projekt definierte Quelleingabe überschreibt. Gültige Strings sind NO_SOURCE, CODECOMMIT,CODEPIPELINE, GITHUB, S3, BITBUCKET, und GITHUB_ENTERPRISE.

• timeoutInMinutesOverride: Optionale Nummer. Die Anzahl der Minuten der Build-Zeitbeschränkung, die für diesen Build den Build überschreiben, der im Build-Projekt festgelegt ist.

Wir empfehlen Ihnen, eine Umgebungsvariable mit einem sensiblen Wert wie z. B. eine AWSZugriffsschlüssel-ID, einen AWS geheimen Zugriffsschlüssel oder ein Passwort als Parameter inAmazon EC2 Systems Manager Parameter Store zu verwenden. CodeBuild kann einen in AmazonEC2 Systems Manager Parameter Store gespeicherten Parameter nur dann verwenden, wenn derName des Parameters mit /CodeBuild/ beginnt (z. B. /CodeBuild/dockerLoginPassword).Sie können die CodeBuild-Konsole verwenden, um einen Parameter in Amazon EC2 SystemsManager zu erstellen. Wählen Sie Create a parameter (Parameter erstellen) aus und befolgen Siedann die Anweisungen. (In diesem Dialogfeld, für KMS-Schlüssel, Sie können das ARN-Feld AWSKMS Schlüssel in Ihrem Konto. Amazon EC2 Systems Manager verwendet diesen Schlüssel, umden Wert des Parameters während der Speicherung zu verschlüsseln und während der Abfrageentschlüsselt.) Wenn Sie die CodeBuild Konsole erstellt, um einen Parameter zu erstellen, startet dieKonsole den Parameter mit /CodeBuild/ da sie gespeichert wird. Wenn Sie jedoch die AmazonEC2 Systems Manager-Parameter-Store-Konsole verwenden, um einen Parameter zu erstellen,müssen Sie den Parameternamen mit /CodeBuild/ beginnen und Type (Typ) auf Secure String(Sichere Zeichenfolge) festlegen. Weitere Informationen finden Sie unter AWS Systems ManagerParametergeschäft und Walkthrough: Erstellen und testen Sie einen String-Parameter (Konsole) imAmazon EC2 Systems Manager Benutzerhandbuch.

Bezieht sich Ihr Build-Projekt auf Parameter, die in Amazon EC2 Systems Manager Parameter Storegespeichert sind, muss die Servicerolle des Build-Projekts die Aktion ssm:GetParameters zulassen.Wenn Sie zuvor Create a new service role in your account (Neue Servicerolle in Ihrem Konto erstellen)ausgewählt haben, dann nimmt CodeBuild diese Aktion automatisch in die Standard-Servicerolle fürIhr Build-Projekt auf. Wenn Sie jedoch Choose an existing service role from your account ausgewählthaben, müssen Sie diese Aktion separat in Ihre Service-Rolle aufnehmen.

Von Ihnen gesetzte Umgebungsvariablen ersetzen vorhandene Umgebungsvariablen. Wenn dasDocker-Bild beispielsweise eine Umgebungsvariable enthält, die benannt wurde MY_VAR mit einemWert von my_value, und Sie legen eine Umgebungsvariable fest MY_VAR mit einem Wert vonother_value, dann my_value ersetzt durch other_value. Wenn das Docker-Bild bereits eineUmgebungsvariable enthält, die benannt wurde PATH mit einem Wert von /usr/local/sbin:/usr/local/bin, und Sie legen eine Umgebungsvariable fest PATH mit einem Wert von $PATH:/usr/share/ant/bin, dann /usr/local/sbin:/usr/local/bin wird durch den literalen Wert ersetzt$PATH:/usr/share/ant/bin.

Keine Umgebungsvariablen mit einem Namen festlegen, der beginnt mit CODEBUILD_. Dieses Präfixist für den internen Gebrauch reserviert.

Wenn eine Umgebungsvariable mit identischem Namen an mehreren Orten definiert ist, wird der Wertder Umgebungsvariable folgendermaßen bestimmt:

• Der Wert im Aufruf zum Starten des Build-Vorgangs hat den höchsten Vorrang.• Der Wert in der Build-Projektdefinition folgt darauf.• Der Wert in der Deklaration in der buildspec-Datei hat die niedrigste Priorität.

API-Version 2016-10-06287

Page 295: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

Weitere Informationen zu gültigen Werten für diese Platzhalter finden Sie unter Erstellen eines Build-Projekts (AWS CLI) (p. 217). Eine Liste der neuesten Einstellungen für ein Build-Projekt finden Sieunter Anzeigen der Details eines Build-Projekts (p. 233).

5. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie denBefehl start-build erneut aus:

aws codebuild start-build --cli-input-json file://start-build.json

6. Bei Erfolg enthält die Ausgabe Daten wie in der So führen Sie den Build aus (p. 24)-Anleitungbeschrieben.

Um mit den detaillierten Informationen über diesen Build zu arbeiten, notieren Sie sich den Wert id im derAusgabe und zeigen Sie sich dann Anzeigen von Build-Details (AWS CLI) (p. 291) an.

Batch-Build ausführen (AWS CLI)1. Führen Sie den Befehl start-build-batch auf eine der folgenden Weisen aus:

aws codebuild start-build-batch --project-name <project-name>

Sie können diesen Befehl verwenden, wenn Sie ein Build ausführen möchten, dass die neuesteVersion des Build-Eingabeartifakts und die vorhandenen Einstellungen des Build-Projekts einsetzt.

aws codebuild start-build-batch --generate-cli-skeleton > <json-file>

Verwenden Sie diesen Befehl, wenn Sie einen Build mit einer früheren Version des Build-Eingabeartefakts verwenden oder die Einstellungen für Build-Ausgabeartefakte, Umgebungsvariablen,Build-Spezifikationen oder Standard-Build-Zeitbeschränkungen überschreiben möchten.

2. Wenn Sie die start-build-batch Befehl mit dem --project-name Option, ersetzen <project-name> mit dem Namen des Build-Projekts und gehen Sie dann zu Schritt 6 dieses Verfahrens.Informationen zum Abrufen einer Liste von Build-Projekten finden Sie unter Anzeigen einer Liste mitBuild-Projektnamen () (p. 232).

3. Wenn Sie den Befehl start-build-batch mit der Option --idempotency-token ausführen, wird eineindeutiger Bezeichner, in dem die Groß- und Kleinschreibung berücksichtigt wird (auch als Tokenbezeichnet), in die start-build-batch-Anforderung aufgenommen. Das Token ist nach der -Anforderung 5 Minuten gültig. Wenn Sie die start-build-batch-Anforderung mit dem Tokenwiederholen, jedoch einen Parameter ändern, gibt CodeBuild einen Fehler wegen des abweichendenParameters zurück.

4. Wenn Sie die start-build-batch Befehl mit dem --generate-cli-skeleton Option, JSON-formatierte Daten werden an die <json-file> --file Diese Datei ähnelt dem Skelton, der vomstart-build , mit dem Hinzufügen des folgenden Objekts. Weitere Informationen zu den allgemeinenObjekten finden Sie unter Ausführen eines Build (AWS CLI) (p. 284).

Ändern Sie diese Datei, um alle Build-Überschreibungen hinzuzufügen und Ihre Ergebnisse zuspeichern.

"buildBatchConfigOverride": { "combineArtifacts": combineArtifacts, "restrictions": { "computeTypesAllowed": [ allowedComputeTypes ], "maximumBuildsAllowed": maximumBuildsAllowed

API-Version 2016-10-06288

Page 296: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAusführen eines Build ()

}, "serviceRole": "batchServiceRole", "timeoutInMins": batchTimeout }

Die buildBatchConfigOverride Objekt ist ein projectbuildbatchconfig Struktur, die Batch Build-Konfigurationskonfiguration für diese Build-Erstellung enthält.

combineArtifacts

Ein Boolescher, der spezifiziert, ob die Build-Artefakte für die Stapelerstellung in einen einzelnenArtefaktstandort kombiniert werden sollten.

allowedComputeTypes

Eine Reihe von Strings, die Berechnungstypen angeben, die für die Stapelerstellung zulässig sind.Siehe Erstellen von Umgebungen mit Umgebungsberechnung für diese Werte.

maximumBuildsAllowed

Gibt die maximale Anzahl an Builds an, die zulässig sind.batchServiceRole

Legt die Servicerolle ARN für das Batch Build Projekt fest.batchTimeout

Gibt die maximale Zeit in Minuten an, in der die Stapelerstellung abgeschlossen sein muss.5. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie den

Befehl start-build erneut aus:

aws codebuild start-build-batch --cli-input-json file://start-build.json

6. Wenn sie erfolgreich sind, wird die JSON-Darstellung eines Buildbatch Objekt erscheint imKonsolenausgang. Siehe StartbuildBatch-Antwortsyntax für ein Beispiel dieser Daten.

Ausführung von Builds automatisch starten (AWS CLI)Wenn Ihr Quellcode in einem GitHub- oder GitHub Enterprise Server-Repository gespeichert ist, könnenSie GitHub-Webhooks verwenden, damit AWS CodeBuild Ihren Quellcode neu erstellt, sobald eineCodeänderung an das Repository übergeben wird.

Führen Sie den Befehl create-webhook wie folgt aus:

aws codebuild create-webhook --project-name <project-name>

<project-name> ist der Name des Build-Projekts, das den Quellcode enthält, der neu aufgebaut werdensoll.

Für GitHub werden Informationen wie die Folgenden in der Ausgabe angezeigt:

{ "webhook": { "url": "<url>" }}

<url> ist die URL zum Github-Webhook.API-Version 2016-10-06

289

Page 297: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Build-Details

Für GitHub Enterprise Server werden Informationen wie die Folgenden in der Ausgabe angezeigt:

1. Kopieren Sie den geheimen Schlüssel und Nutzlast-URL aus der Ausgabe. Sie brauchen sie, um einenWebhook in GitHub Enterprise Server hinzuzufügen.

2. Wählen Sie in GitHub Enterprise Server das Repository aus, in dem Ihr CodeBuild-Projekt gespeichertist. Wählen Sie Settings (Einstellungen), Hooks & services (Hooks und Services) und anschließend Addwebhook (Webhook hinzufügen) aus.

3. Geben Sie die Nutzlast-URL und den geheimen Schlüssels ein, übernehmen Sie dieStandardeinstellungen für die anderen Felder, und wählen Sie dann Add webhook.

Ausführung von Builds automatisch beenden (AWS CLI)Wenn Ihr Quellcode in einem GitHub- oder GitHub Enterprise Server-Repository gespeichert ist, könnenSie GitHub-Webhooks einrichten, damit AWS CodeBuild Ihren Quellcode neu erstellt, sobald eineCodeänderung an das Repository übergeben wird. Weitere Informationen finden Sie im Ausführung vonBuilds automatisch starten (AWS CLI) (p. 289).

Wenn Sie dieses Verhalten aktiviert haben, können Sie es ausschalten, indem Sie den delete-webhook-Befehl wie folgt ausführen:

aws codebuild delete-webhook --project-name <project-name>

• "where" <project-name> ist der Name des Build-Projekts, das den Quellcode enthält, der neuaufgebaut werden soll.

Ist dieser Befehl erfolgreich, werden in der Ausgabe keine Informationen und Fehler angezeigt.

Note

Dies löscht den Webhook nur aus Ihrem CodeBuild-Projekt. Sie sollten den Webhook auch ausIhrem GitHub- oder GitHub Enterprise Server-Repository löschen.

Ausführen eines Build (AWS-SDKs)Um CodePipeline für die Ausführung eines Build mit AWS CodeBuild zu verwenden, überspringenSie diese Schritte und folgen Sie stattdessen den Anweisungen im Abschnitt Verwenden von AWSCodePipeline mit AWS CodeBuild zum Testen von Codes und zum Ausführen von Builds (p. 407).

Informationen zur Verwendung von CodeBuild mit den AWS-SDKs finden Sie unter AWS SDKs- und Tools-Referenz (p. 404).

Anzeigen von Build-Details in AWS CodeBuildSie können über die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs Details zu von CodeBuildverwalteten Builds anzeigen.

API-Version 2016-10-06290

Page 298: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Build-Details

Themen• Anzeigen von Build-Details (Konsole) (p. 291)• Anzeigen von Build-Details (AWS CLI) (p. 291)• Anzeigen von Build-Details (AWS-SDKs) (p. 292)• Übergang von Build-Phasen (p. 292)

Anzeigen von Build-Details (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Führen Sie eine der folgenden Aufgaben aus:

• Wählen Sie im Navigationsbereich Build history aus. Wählen Sie in der Liste der Builds in der SpalteBuild run (Build-Ausführung) den Link für den gewünschten Build aus.

• Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie in der Liste der Build-Projekte in der Spalte Name den Link mit dem Namen für das gewünschte Build-Projekt aus. WählenSie dann in der Liste der Builds in der Spalte Build run (Build-Ausführung) den Link für den Buildaus.

Note

In der Standardeinstellung werden nur die letzten 10 Builds oder Build-Projekte angezeigt. ZurAnzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einenanderen Wert für Builds per page (Builds je Seite) oder Projects per page (Projekte je Seite)aus oder verwenden Sie die Vorwärts- und Rückwärtspfeile.

Anzeigen von Build-Details (AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Führen Sie den Befehl batch-get-builds aus:

aws codebuild batch-get-builds --ids ids

Ersetzen die folgenden Platzhalter:

• ids: Erforderliche Zeichenfolge. Ein oder mehrere IDs, deren Details angezeigt werden können. Ummehr als ein Build-ID anzugeben, fügen Sie zwischen den einzelnen Build-IDs ein Leerzeichen ein. Siekönnen bis zu 100 Build-IDs angeben. Weitere Informationen zum Abrufen einer Liste mit Build-IDsfinden Sie in den folgenden Themen:• Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI) (p. 296)

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild batch-get-builds --ids codebuild-demo-project:e9c4f4df-3f43-41d2-ab3a-60fe2EXAMPLE codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE my-other-project:813bb6c6-891b-426a-9dd7-6d8a3EXAMPLE

Kann der Befehl erfolgreich ausgeführt werden, werden Daten wie die in So zeigen Sie eineZusammenfassung der Build-Informationen an (p. 26) beschriebenen in der Ausgabe angezeigt.

API-Version 2016-10-06291

Page 299: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Build-Details

Anzeigen von Build-Details (AWS-SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Übergang von Build-PhasenBuilds in AWS CodeBuild setzen sich in Phasen fort:

Important

Die UPLOAD_ARTIFACTS-Phase wird immer angestrebt, auch wenn die BUILD-Phase fehlschlägt.

API-Version 2016-10-06292

Page 300: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-IDs ()

Anzeigen einer Liste mit Build-IDs in AWS CodeBuildSie können über die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs eine Liste mit Build-IDs fürBuilds anzeigen, die von CodeBuild verwaltet werden.

Themen• Anzeigen einer Liste von Build-IDs (Konsole) (p. 293)• Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293)• Eine Liste der Batch-Build-Ids anzeigen (AWS CLI) (p. 294)• Anzeigen einer Liste mit Build-IDs (AWS SDKs) (p. 295)

Anzeigen einer Liste von Build-IDs (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Build history aus.

Note

In der Standardeinstellung werden nur die letzten 10 Builds angezeigt. Zur Anzeige vonweiteren Builds wählen Sie das Zahnradsymbol und einen anderen Wert für Builds per page(Builds je Seite) aus oder verwenden die Vorwärts- und Rückwärtspfeile.

Anzeigen einer Liste mit Build-IDs (AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

• Führen Sie den Befehl list-builds aus.

aws codebuild list-builds --sort-order sort-order --next-token next-token

Ersetzen Sie im Befehl oben die folgenden Platzhalter:

• sort-order: Optionale Zeichenfolge zum Anzeigen der Erstellung der Build-Ids. Gültige Werte sindASCENDING und DESCENDING.

• next-token: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben,zusammen mit einer eindeutigen Zeichenfolge namens next token. Führen Sie diesen Befehl erneutaus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen.Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgenden "nexttoken" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild list-builds --sort-order ASCENDING

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==", "ids": [

API-Version 2016-10-06293

Page 301: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-IDs ()

"codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE" "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE" ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE" ]}

Wenn Sie diesen Befehl erneut ausführen:

aws codebuild list-builds --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "ids": [ "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE", "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE", ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE" ]}

Eine Liste der Batch-Build-Ids anzeigen (AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

• Führen Sie den Befehl list-build-batches aus.

aws codebuild list-build-batches --sort-order sort-order --next-token next-token

Ersetzen Sie im Befehl oben die folgenden Platzhalter:

• sort-order: Optionale Zeichenfolge zum Anzeigen der Batch-Build-Ids. Gültige Werte sindASCENDING und DESCENDING.

• next-token: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben,zusammen mit einer eindeutigen Zeichenfolge namens next token. Führen Sie diesen Befehl erneutaus, um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen.Um alle Elemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgenden "nexttoken" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild list-build-batches --sort-order ASCENDING

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==", "ids": [ "codebuild-demo-project:815e755f-bade-4a7e-80f0-efe51EXAMPLE" "codebuild-demo-project:84a7f3d1-d40e-4956-b4cf-7a9d4EXAMPLE" ... The full list of build IDs has been omitted for brevity ...

API-Version 2016-10-06294

Page 302: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-IDs für ein Build-Projekt ()

"codebuild-demo-project:931d0b72-bf6f-4040-a472-5c707EXAMPLE" ]}

Wenn Sie diesen Befehl erneut ausführen:

aws codebuild list-build-batches --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==

Sollte die Ausgabe folgendermaßen oder ähnlich aussehen:

{ "ids": [ "codebuild-demo-project:49015049-21cf-4b50-9708-df115EXAMPLE", "codebuild-demo-project:543e7206-68a3-46d6-a4da-759abEXAMPLE", ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:c282f198-4582-4b38-bdc0-26f96EXAMPLE" ]}

Anzeigen einer Liste mit Build-IDs (AWS SDKs)Weitere Informationen zur Verwendung von CodeBuild mit den AWS-SDKs finden Sie unter AWS SDKs-und Tools-Referenz (p. 404).

Anzeigen einer Liste mit Build-IDs für ein Build-Projektin AWS CodeBuildZum Anzeigen einer Liste mit Build-IDs für ein Build-Projekt in CodeBuild können Sie die AWS CodeBuild-Konsole, die AWS CLI oder AWS-SDKs verwenden.

Themen• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (Konsole) (p. 295)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI) (p. 296)• Eine Liste der Batch-Build-Ids für ein Build-Projekt anzeigen (AWS CLI) (p. 297)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS-SDKs) (p. 298)

Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (Konsole)1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie in der Liste der Build-Projekte

in der Spalte Name das gewünschte Build-Projekt aus.

Note

In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. ZurAnzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einenanderen Wert für Builds per page (Builds je Seite) oder Projects per page (Projekte je Seite) ausoder verwenden Sie die Vorwärts- und Rückwärtspfeile.

API-Version 2016-10-06295

Page 303: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-IDs für ein Build-Projekt ()

Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Führen Sie den Befehl list-builds-for-project wie folgt aus:

aws codebuild list-builds-for-project --project-name project-name --sort-order sort-order --next-token next-token

Ersetzen Sie im Befehl oben die folgenden Platzhalter:

• project-name: Erforderliche Zeichenfolge, um den Namen des Build-Projekts anzuzeigen, der erstelltwerden soll, um Ids für zu erstellen. Informationen zum Abrufen einer Liste von Build-Projekten finden Sieunter Anzeigen einer Liste mit Build-Projektnamen (AWS CLI) (p. 232).

• sort-order: Optionale Zeichenfolge zum Anzeigen der Erstellung der Build-Ids. Gültige Werte sindASCENDING und DESCENDING.

• next-token: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben,zusammen mit einer eindeutigen Zeichenfolge namens next token. Führen Sie diesen Befehl erneut aus,um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alleElemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgend zurückgegebenen"next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie beispielsweise folgenden Befehl ausführen:

aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING

Sollte die Ausgabe etwa wie folgt aussehen:

{ "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==", "ids": [ "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE" "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE" ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE" ]}

Wenn Sie diesen Befehl erneut ausführen:

aws codebuild list-builds-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==

Die Ausgabe sollte etwa wie folgt aussehen:

{ "ids": [ "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE" "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE" ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE" ]}

API-Version 2016-10-06296

Page 304: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen einer Liste mit Build-IDs für ein Build-Projekt ()

Eine Liste der Batch-Build-Ids für ein Build-Projekt anzeigen(AWS CLI)Weitere Informationen zur Verwendung der AWS CLI mit AWS CodeBuild finden Sie unterBefehlszeilenreferenz (p. 403).

Führen Sie den Befehl list-build-batches-for-project wie folgt aus:

aws codebuild list-build-batches-for-project --project-name project-name --sort-order sort-order --next-token next-token

Ersetzen Sie im Befehl oben die folgenden Platzhalter:

• project-name: Erforderliche Zeichenfolge, um den Namen des Build-Projekts anzuzeigen, der erstelltwerden soll, um Ids für zu erstellen. Informationen zum Abrufen einer Liste von Build-Projekten finden Sieunter Anzeigen einer Liste mit Build-Projektnamen (AWS CLI) (p. 232).

• sort-order: Optionale Zeichenfolge zum Anzeigen der Erstellung der Build-Ids. Gültige Werte sindASCENDING und DESCENDING.

• next-token: Optionale Zeichenfolge. Falls während einer vorherigen Ausführung mehr als100 Elemente in der Liste enthalten waren, werden nur die ersten 100 Elemente zurückgegeben,zusammen mit einer eindeutigen Zeichenfolge namens next token. Führen Sie diesen Befehl erneut aus,um das nächste Token hinzuzufügen und den nächsten Stapel von Listenelementen abzurufen. Um alleElemente in der Liste abzurufen, führen Sie diesen Befehl mit jedem nachfolgend zurückgegebenen"next token" aus, bis keine weiteren nächsten Token zurückgegeben werden.

Wenn Sie beispielsweise folgenden Befehl ausführen:

aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING

Sollte die Ausgabe etwa wie folgt aussehen:

{ "nextToken": "4AEA6u7J...The full token has been omitted for brevity...MzY2OA==", "ids": [ "codebuild-demo-project:9b175d16-66fd-4e71-93a0-50a08EXAMPLE" "codebuild-demo-project:a9d1bd09-18a2-456b-8a36-7d65aEXAMPLE" ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:fe70d102-c04f-421a-9cfa-2dc15EXAMPLE" ]}

Wenn Sie diesen Befehl erneut ausführen:

aws codebuild list-build-batches-for-project --project-name codebuild-demo-project --sort-order ASCENDING --next-token 4AEA6u7J...The full token has been omitted for brevity...MzY2OA==

Die Ausgabe sollte etwa wie folgt aussehen:

{ "ids": [ "codebuild-demo-project:98253670-7a8a-4546-b908-dc890EXAMPLE" "codebuild-demo-project:ad5405b2-1ab3-44df-ae2d-fba84EXAMPLE" ... The full list of build IDs has been omitted for brevity ... "codebuild-demo-project:f721a282-380f-4b08-850a-e0ac1EXAMPLE"

API-Version 2016-10-06297

Page 305: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchStoppen eines Builds

]}

Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS-SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Stoppen eines Builds in AWS CodeBuildZum Stoppen eines Builds in AWS CodeBuild können Sie die AWS CodeBuild-Konsole, die AWS CLI oderAWS-SDKs verwenden.

Themen• Stoppen eines Builds (Konsole) (p. 298)• Stoppen eines Builds (AWS CLI) (p. 298)• Stoppen eines Builds (AWS-SDKs) (p. 299)

Stoppen eines Builds (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Führen Sie eine der folgenden Aufgaben aus:

• Wenn die Seite build-project-name:build-ID angezeigt wird, wählen Sie Stop build (Buildstoppen).

• Wählen Sie im Navigationsbereich Build history aus. Wählen Sie in der Liste der Builds dasKontrollkästchen für den Build aus und klicken Sie dann auf Stop build (Build stoppen).

• Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie in der Liste der Build-Projekte in der Spalte Name den Link mit dem Namen für das gewünschte Build-Projekt aus. WählenSie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf Stop build(Build stoppen).

Note

In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. ZurAnzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einenanderen Wert für Builds per page (Builds je Seite) oder Projects per page (Projekte je Seite) ausoder verwenden Sie die Vorwärts- und Rückwärtspfeile.Wenn AWS CodeBuild einen Build nicht stoppen kann (wenn der Build-Prozess beispielsweisebereits abgeschlossen ist), ist die Schaltfläche Stop (Stopp) deaktiviert oder wird nicht angezeigt.

Stoppen eines Builds (AWS CLI)• Führen Sie den Befehl stop-build aus:

aws codebuild stop-build --id id

Ersetzen Sie im Befehl oben den folgenden Platzhalter:

• id: Erforderliche Zeichenfolge. Die ID des zu stoppenden Builds. Weitere Informationen zumAbrufen einer Liste mit Build-IDs finden Sie in den folgenden Themen:

API-Version 2016-10-06298

Page 306: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBatch-Aufbau stoppen

• Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI) (p. 296)

Falls AWS CodeBuild den Build erfolgreich stoppt, lautet der Wert für buildStatus im Objekt buildin der Ausgabe STOPPED.

Falls CodeBuild den Build nicht stoppen kann (wenn der Build-Prozess beispielsweise bereitsabgeschlossen ist), ist der Wert für buildStatus im Objekt build in der Ausgabe der endgültigeBuild-Status (z. B. SUCCEEDED).

Stoppen eines Builds (AWS-SDKs)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Batch-Build abbrechen AWS CodeBuildSie können die AWS CodeBuild Konsole, AWS CLI,oder AWS sdks, um eine Stapelerstellung zu stoppenAWS CodeBuild.

Themen• Stoppen Sie eine Stapelerstellung (Konsole) (p. 299)• Stoppen Sie eine Batch-Erstellung (AWS CLI) (p. 299)• Stoppen Sie eine Batch-Erstellung (AWS sdks) (p. 300)

Stoppen Sie eine Stapelerstellung (Konsole)1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Führen Sie eine der folgenden Aufgaben aus:

• Wenn das Symbol build-project-name:build-ID Seite angezeigt wird, wählen Sie Aufbaubeenden.

• Wählen Sie im Navigationsbereich Build history aus. Wählen Sie in der Liste der Builds dasKontrollkästchen für den Build aus und klicken Sie dann auf Stop build (Build stoppen).

• Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie in der Liste der Build-Projekte in der Spalte Name den Link mit dem Namen für das gewünschte Build-Projekt aus. WählenSie in der Liste der Builds das Kontrollkästchen für den Build aus und klicken Sie dann auf Stop build(Build stoppen).

Note

In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. ZurAnzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einenanderen Wert für Builds per page (Builds je Seite) oder Projects per page (Projekte je Seite) ausoder verwenden Sie die Vorwärts- und Rückwärtspfeile.Wenn AWS CodeBuild kann nicht erfolgreich eine Batch-Erstellung stoppen (z. B. wenn der Build-Prozess bereits abgeschlossen ist), der Aufbau beenden Taste ist deaktiviert.

Stoppen Sie eine Batch-Erstellung (AWS CLI)• Führen Sie den Befehl stop-build-batch aus.

API-Version 2016-10-06299

Page 307: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchEine Build-Funktion erneut versuchen

aws codebuild stop-build-batch --id <batch-build-id>

Ersetzen Sie im Befehl oben den folgenden Platzhalter:

• <batch-build-id>Erforderliche Zeichenfolge. Die Kennung des Batch-Builds, um anzuhalten.Eine Liste der Chargenerstellungs-Identifikatoren finden Sie in den folgenden Themen:• Eine Liste der Batch-Build-Ids anzeigen (AWS CLI) (p. 294)• Eine Liste der Batch-Build-Ids für ein Build-Projekt anzeigen (AWS CLI) (p. 297)

Wenn AWS CodeBuild die Batch-Erstellung erfolgreich gestoppt, der buildBatchStatus Wert imbuildBatch Objekt im Ausgang ist STOPPED.

Wenn CodeBuild die Batch-Erstellung nicht erfolgreich gestoppt (z. B. wenn der Batch-Build bereitsabgeschlossen ist), der buildBatchStatus Wert im buildBatch Objekt im Ausgang ist derendgültige Build-Status (zum Beispiel: SUCCEEDED).

Stoppen Sie eine Batch-Erstellung (AWS sdks)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Ein Build erneut versuchen AWS CodeBuildSie können die AWS CodeBuild Konsole, AWS CLI,oder AWS sdks, um entweder eine einzelne Build- oderBatch-Erstellung zu wiederholen AWS CodeBuild.

Themen• Eine Build-Funktion (Konsole) wiederholen (p. 300)• Eine Build-Funktion (AWS CLI) (p. 301)• Eine Build-Funktion (AWS sdks) (p. 301)

Eine Build-Funktion (Konsole) wiederholen1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Führen Sie eine der folgenden Aufgaben aus:

• Wenn das Symbol build-project-name:build-ID Seite angezeigt wird, wählen Sie Build-Build.• Wählen Sie im Navigationsbereich Build history aus. Wählen Sie in der Liste der Builds das Feld für

die Erstellung aus, und wählen Sie dann Build-Build.• Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie in der Liste der Build-

Projekte in der Spalte Name den Link mit dem Namen für das gewünschte Build-Projekt aus. WählenSie in der Liste der Builds das Feld für die Erstellung aus, und wählen Sie dann Build-Build.

Note

In der Standardeinstellung werden nur die letzten 100 Builds oder Build-Projekte angezeigt. ZurAnzeige von weiteren Builds oder Build-Projekten wählen Sie das Zahnradsymbol und einenanderen Wert für Builds per page (Builds je Seite) oder Projects per page (Projekte je Seite) ausoder verwenden Sie die Vorwärts- und Rückwärtspfeile.

API-Version 2016-10-06300

Page 308: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSession Manager

Eine Build-Funktion (AWS CLI)• Führen Sie den Befehl retry-build aus.

aws codebuild retry-build --id <build-id> --idempotency-token <idempotencyToken>

Ersetzen Sie im Befehl oben den folgenden Platzhalter:

• <build-id>Erforderliche Zeichenfolge. Die ID des Build- oder Batch-Builds, um erneut zuversuchen. Weitere Informationen zum Abrufen einer Liste mit Build-IDs finden Sie in den folgendenThemen:• Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293)• Eine Liste der Batch-Build-Ids anzeigen (AWS CLI) (p. 294)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI) (p. 296)• Eine Liste der Batch-Build-Ids für ein Build-Projekt anzeigen (AWS CLI) (p. 297)

• --idempotency-token: (Optional) Wenn Sie die retry-build mit der Option, einer eindeutigenfallsensitiven Kennung oder einem Token, ist das retry-build Anfrage. Das Token istnach der -Anforderung 5 Minuten gültig. Wenn Sie die retry-build-Anforderung mit demToken wiederholen, jedoch einen Parameter ändern, gibt CodeBuild einen Fehler wegen desabweichenden Parameters zurück.

Eine Build-Funktion (AWS sdks)Weitere Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWSSDKs- und Tools-Referenz (p. 404).

Eine Laufbahn im Sitzungsmanager anzeigenin AWS CodeBuild, Sie können eine laufende Baustelle anhalten und dann AWS Systems ManagerSession Manager (Sitzungsmanager), um den Behälter zu verbinden und den Zustand des Behältersanzuzeigen.

Themen• Prerequisites (p. 301)• Unterbrechen Sie den Aufbau (p. 303)• Starten Sie den Build (p. 303)• Mit dem Baubehälter verbinden (p. 303)• Den Build fortsetzen (p. 304)

PrerequisitesUm den Sitzungsmanager zu aktivieren, der mit der Build-Sitzung verwendet wird, müssen Sie dieSitzungsverbindung für die Erstellung aktivieren. Es gibt zwei Voraussetzungen:

• CodeBuild Linux Standard-Bilder haben bereits die SSM Agent installiert und der SSM-Agent-Containermodus aktiviert.

Wenn Sie ein benutzerdefiniertes Bild für Ihre Erstellung verwenden, gehen Sie wie folgt vor:

1. Installieren des SSM-Agenten Weitere Informationen finden Sie unter SSM Agent manuell auf EC2-Instanzen für Linux installieren im AWS Systems Manager-Benutzerhandbuch.

API-Version 2016-10-06301

Page 309: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSession Manager

2. Datei kopieren https://github.com/aws/aws-codebuild-docker-images/blob/master/ubuntu/standard/4.0/amazon-ssm-agent.json zum /etc/amazon/ssm/ Verzeichnis in Ihrem Bild. Dadurch wird derContainermodus im SSM Agent.

• Die CodeBuild die Servicerolle muss Folgendes haben: SSM Richtlinie:

{ "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*"}

Sie können über die CodeBuild die Konsole automatisch an Ihre Servicerolle anhängen, wenn Sie denBuild starten. Sie können diese Richtlinie auch manuell an Ihre Servicerolle anhängen.

• Wenn Sie haben Prüfung und Protokollierung der Sitzung aktiviert in Systems Manager Präferenzen, dieCodeBuild Die Servicerolle muss außerdem zusätzliche Berechtigungen enthalten. Die Berechtigungensind unterschiedlich, je nachdem, wo die Protokolle gespeichert sind.CloudWatch Logs

Bei Verwendung von CloudWatch Logs um Ihre Protokolle zu speichern, fügen Sie die folgendeBerechtigung zum CodeBuild Servicerolle:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "arn:aws:logs:<region-id>:<account-id>:log-group:*:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region-id>:<account-id>:log-group:<log-group-name>:*" } ]}

Amazon S3

Bei Verwendung von Amazon S3 um Ihre Protokolle zu speichern, fügen Sie die folgendeBerechtigung zum CodeBuild Servicerolle:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration", "s3:PutObject" ],

API-Version 2016-10-06302

Page 310: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSession Manager

"Resource": [ "arn:aws:s3:::<bucket-name>", "arn:aws:s3:::<bucket-name>/*" ] } ]}

Weitere Informationen finden Sie unter Prüfung und Protokollierung der Sitzung im AWS SystemsManager-Benutzerhandbuch.

Unterbrechen Sie den AufbauUm die Erstellung zu unterbrechen, fügen Sie das codebuild-breakpoint Befehl in einer derErstellungsphasen in Ihrer Buildspec-Datei. Die Build-Funktion wird an diesem Punkt unterbrochen,wodurch Sie mit dem Baucontainer verbinden und den Behälter in seinem aktuellen Zustand anzeigenkönnen.

Fügen Sie die folgenden Schritte zum Erstellen der Objektgruppen in Ihrer Buildspec-Datei hinzu.

phases: pre_build: commands: - echo Entered the pre_build phase... - echo "Hello World" > /tmp/hello-world - codebuild-breakpoint

Dieser Code erstellt die /tmp/hello-world Datei und pausiert dann die Build-Funktion.

Starten Sie den BuildUm den Sitzungsmanager zu aktivieren, der mit der Build-Sitzung verwendet wird, müssen SieSitzungsverbindungen für die Erstellung aktivieren. Befolgen Sie dazu beim Starten der Erstellung diefolgenden Schritte:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im linken Navigationsbereich Build projects aus. Wählen Sie das Build-Projekt aus und

wählen Sie dann Start build.3. Wählen Sie Advanced build overrides (Erweiterter Build überschreibt).4. Im Umgebung und wählen Sie den Sitzungsverbindung aktivieren Option. Wenn diese Option nicht

ausgewählt ist, alle codebuild-breakpoint und codebuild-resume Befehle werden ignoriert.5. Im Umgebung und wählen Sie den AWS Codebuild erlauben, diese Servicerolle zu ändern, damit

sie mit diesem Build-Projekt verwendet werden kann Option, um die Option CodeBuild Konsole, umdie Richtlinie für die Sitzungsverwaltung automatisch an Ihre Servicerolle anzuhängen. Wenn Sie dieRichtlinie für die Sitzung des Sitzungsmanagers bereits hinzugefügt haben, müssen Sie diese Optionnicht auswählen.

6. Nehmen Sie andere gewünschte Änderungen vor und wählen Sie Aufbau starten.7. Überwachen Sie den Build-Status in der Konsole. Wenn die Sitzung verfügbar ist, AWS Session

Manager Link erscheint im Status erstellen Abschnitt.

Mit dem Baubehälter verbindenSie können mit dem Baucontainer auf eine der folgenden Arten verbinden:

API-Version 2016-10-06303

Page 311: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLöschen von Builds

CodeBuild-Konsole

Öffnen Sie in einem Webbrowser die AWS Session Manager Link zum Herstellen desVerbindungsbehälters. Eine Terminalsitzung öffnet sich, mit der Sie den Baucontainer durchsuchenund steuern können.

AWS (CLI)Note

Ihr lokales Gerät muss über das Session Manager-Plugin verfügen, das für dieses Verfahreninstalliert wurde. Weitere Informationen finden Sie unter Installieren des Session ManagerPlugin für die AWS CLI im AWS Systems Manager-Benutzerhandbuch.

1. Rufen Sie den batch-get-builds API mit der Erstellungs-ID, um Informationen über die Erstellungzu erhalten.

aws codebuild batch-get-builds --ids <buildID> --region <region>

2. Kopieren Sie die sessionTarget Eigenschaftswert.3. Verwenden Sie den folgenden Befehl, um mit dem Baucontainer zu verbinden.

aws ssm start-session --target <sessionTarget> --region <region>

Stellen Sie für dieses Beispiel sicher, dass /tmp/hello-world Datei existiert und enthält den TextHello World.

Den Build fortsetzenNachdem Sie den Baucontainer geprüft haben, geben Sie die codebuild-resume Befehl vomBehältergehäuse.

$ codebuild-resume

Löschen von Builds in AWS CodeBuildSie können die AWS CLI oder die AWS SDKs verwenden, um Builds in AWS CodeBuild zu löschen.

Löschen von Builds (AWS CLI)Führen Sie den Befehl batch-delete-builds aus:

aws codebuild batch-delete-builds --ids ids

Ersetzen Sie im Befehl oben den folgenden Platzhalter:

• ids: Erforderliche Zeichenfolge. Die ID des zu löschenden Builds. Um mehrere Builds anzugeben, fügenSie zwischen den einzelnen Build-IDs ein Leerzeichen ein. Weitere Informationen zum Abrufen einerListe mit Build-IDs finden Sie in den folgenden Themen:• Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293)• Anzeigen einer Liste mit Build-IDs für ein Build-Projekt (AWS CLI) (p. 296)

Wenn erfolgreich, erscheint ein buildsDeleted-Array in der Ausgabe, der den Amazon-Ressourcennamen (ARN) der einzelnen erfolgreich gelöschten Builds enthält. Informationen zu Builds, die

API-Version 2016-10-06304

Page 312: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchLöschen von Builds

nicht erfolgreich gelöscht werden konnten, werden in der Ausgabe innerhalb eines buildsNotDeleted-Arrays angezeigt.

Wenn Sie z. B. den folgenden Befehl ausführen:

aws codebuild batch-delete-builds --ids my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX

Die Informationen in der Ausgabe ähneln den folgenden:

{ "buildsNotDeleted": [ { "id": "arn:aws:codebuild:us-west-2:123456789012:build/my-demo-build-project:f8b888d2-5e1e-4032-8645-b115195648EX", "statusCode": "BUILD_IN_PROGRESS" } ], "buildsDeleted": [ "arn:aws:codebuild:us-west-2:123456789012:build/my-other-demo-build-project:a18bc6ee-e499-4887-b36a-8c90349c7eEX" ]}

Löschen von Builds (AWS SDKs)Informationen zur Verwendung von AWS CodeBuild mit den AWS-SDKs finden Sie unter AWS SDKs- undTools-Referenz (p. 404).

API-Version 2016-10-06305

Page 313: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Arbeiten mit Testberichten in AWSCodeBuild

Sie können Berichte in CodeBuild erstellen, die Details zu Tests enthalten, die während der Erstellungvon Builds ausgeführt werden. Sie können Tests wie Komponententests, Konfigurationstests undFunktionstests erstellen.

Die folgenden Dateiformate für Testberichte werden unterstützt:

• Cucumber JSON• JUnit XML• NUnit XML• NEinheit3 XML• TestNG XML• Visual Studio TRX

Erstellen Sie Ihre Testfälle mit einem beliebigen Test-Framework, das Testberichtdateien in einem dieserFormate erstellen kann (zum Beispiel Surefire JUnit-Plugin, TestNG oder Cucumber).

Um einen Testbericht zu erstellen, fügen Sie der buildspec-Datei eines Build-Projekts einenBerichtsgruppennamen mit Informationen zu Ihren Testfällen hinzu. Wenn Sie das Build-Projekt ausführen,werden die Testfälle ausgeführt und ein Testbericht erstellt. Sie müssen keine Berichtsgruppe erstellen,bevor Sie die Tests ausführen. Wenn Sie einen Berichtsgruppennamen angeben, erstellt CodeBuild beimAusführen der Berichte eine Berichtsgruppe. Wenn Sie eine bereits vorhandene Berichtsgruppe verwendenmöchten, geben Sie deren ARN in der buildspec-Datei an.

Sie können einen Testbericht verwenden, um ein Problem während einer Build-Ausführung zu beheben.Wenn Sie viele Testberichte aus mehreren Builds eines Build-Projekts haben, können Sie Ihre Testberichteverwenden, um Trends und Test- und Ausfallraten anzuzeigen, um Builds zu optimieren.

Ein Bericht läuft 30 Tage nach seiner Erstellung ab. Sie können einen abgelaufenen Testberichtnicht anzeigen. Wenn Sie Testberichte länger als 30 Tage aufbewahren möchten, können Sie dieRohdatendateien der Testergebnisse in einen Amazon S3-Bucket exportieren. Exportierte Testdateienlaufen nicht ab. Informationen zum S3-Bucket werden beim Erstellen der Berichtsgruppe angegeben.

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladen zumS3-Bucket verwendet.

Themen• Erstellen eines Testberichts (p. 307)• Arbeiten mit Berichtsgruppen (p. 307)• Arbeiten mit Berichten (p. 324)• Arbeiten mit Testberichtberechtigungen (p. 324)

API-Version 2016-10-06306

Page 314: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen eines Testberichts

• Anzeigen von Testberichten (p. 327)• Testberichte mit Test-Frameworks (p. 328)• Codeabdeckungsberichte (p. 332)

Erstellen eines TestberichtsUm einen Testbericht zu erstellen, führen Sie ein Build-Projekt aus, das mit einer bis fünf Berichtsgruppenin der buildspec-Datei konfiguriert ist. Während des Laufs wird ein Testbericht erstellt. Dieser enthält dieErgebnisse der Testfälle, die für die Berichtsgruppen angegeben sind. Für jeden nachfolgenden Build, derdieselbe buildspec-Datei verwendet, wird ein neuer Testbericht generiert.

So erstellen Sie einen Testbericht:

1. Erstellen eines Build-Projekts () Weitere Informationen finden Sie unter Erstellen eines Build-Projektsin AWS CodeBuild (p. 206).

2. Konfigurieren Sie die buildspec-Datei Ihres Projekts mit Testberichtinformationen:

a. Hinzufügen eines reports: und geben Sie den Namen für Ihre Berichtsgruppe an. CodeBuilderstellt eine Berichtsgruppe für Sie unter Verwendung Ihres Projektnamens und des Namens,den Sie im Format angegeben haben project-name-report-group-name-in-buildspec.(z. B..) Wenn Sie bereits über eine Berichtsgruppe verfügen, die Sie verwenden möchten, gebenSie ihren ARN an. (Wenn Sie seinen Namen anstelle seines ARN verwenden, CodeBuild erstellteine neue Berichtsgruppe.) Weitere Informationen finden Sie unter Reports syntax in the buildspecfile.

b. Geben Sie unter der Berichtsgruppe den Speicherort der Dateien an, in denen die Testergebnissegespeichert werden. Wenn Sie mehr als eine Berichtsgruppe verwenden, geben Sie dieSpeicherorte der Testergebnisdatei für jede Berichtsgruppe an. Jedes Mal, wenn Ihr Build-Projektausgeführt wird, wird ein neuer Testbericht erstellt. Weitere Informationen finden Sie im Angebender Testdateien (p. 314).

c. Geben Sie im commands-Abschnitt der Sequenz build oder post_build die Befehle an,mit denen die Testfälle ausgeführt werden, die Sie für Ihre Berichtsgruppen angegeben haben.Weitere Informationen finden Sie im Angeben der Testbefehle (p. 314).

3. Führen Sie einen Build des Build-Projekts aus. Weitere Informationen finden Sie im Ausführen einesBuild in AWS CodeBuild (p. 279).

4. Wenn der Build abgeschlossen ist, wählen Sie den neuen Build Run unter Build history (Build-Verlauf)auf Ihrer Projektseite aus. Wählen Sie Reports (Berichte), um den Testbericht anzuzeigen. WeitereInformationen finden Sie im Anzeigen von Testberichten für einen Build (p. 327).

Arbeiten mit BerichtsgruppenEine Berichtsgruppe enthält Testberichte und gibt gemeinsame Einstellungen an. Mit der buildspec-Dateigeben Sie die Testfälle an, die ausgeführt werden sollen, und die Befehle, die beim Erstellen auszuführensind. Für jede Berichtsgruppe, die in einem Build-Projekt konfiguriert ist, erstellt ein Lauf des Build-Projektseinen Testbericht. Mehrere Läufe eines Build-Projekts, das mit einer Berichtsgruppe konfiguriert wurde,erstellen mehrere Testberichte in dieser Berichtsgruppe, wobei jeweils Ergebnisse der gleichen Testfälleenthalten sind, die für diese Berichtsgruppe angegeben wurden.

Die Testfälle werden für eine Berichtsgruppe in der buildspec-Datei eines Build-Projekts angegeben. Siekönnen bis zu fünf Berichtsgruppen in einem Build-Projekt angeben. Wenn Sie einen Build ausführen,werden alle Testfälle ausgeführt. Ein neuer Testbericht wird mit den Ergebnissen jedes Testfalls erstellt,

API-Version 2016-10-06307

Page 315: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Berichtsgruppe

der für eine Berichtsgruppe angegeben ist. Jedes Mal, wenn Sie einen neuen Build ausführen, werden dieTestfälle ausgeführt und ein neuer Testbericht mit den neuen Testergebnissen erstellt.

Berichtsgruppen können in mehr als einem Build-Projekt verwendet werden. Alle Testberichte, diemit einer Berichtsgruppe erstellt wurden, haben dieselbe Konfiguration, wie die Exportoption und dieBerechtigungen, auch wenn die Testberichte mit unterschiedlichen Build-Projekten erstellt werden.Testberichte, die mit einer Berichtsgruppe in mehreren Build-Projekten erstellt wurden, können die ausAusführungen verschiedener Sätze von Testfällen enthalten (ein Satz von Testfällen für jedes Build-Projekt). Dies liegt daran, dass Sie verschiedene Testfalldateien für die Berichtsgruppe in der buildspec-Datei jedes Projekts angeben können. Sie können die Testfalldateien für eine Berichtsgruppe in einemBuild-Projekt auch ändern, indem Sie die buildspec-Datei bearbeiten. Nachfolgende Build-Durchläufeerstellen neue Testberichte, die die Ergebnisse der Testfalldateien in der aktualisierten buildspec-Dateienthalten.

Themen• Erstellen einer Berichtsgruppe (p. 308)• Aktualisieren einer Berichtsgruppe (p. 311)• Angeben der Testdateien (p. 314)• Angeben der Testbefehle (p. 314)• Benennung von Berichtsgruppen (p. 314)• Markieren von Berichtsgruppen in AWS CodeBuild (p. 315)• Arbeiten mit freigegebenen Berichtsgruppen. (p. 320)

Erstellen einer BerichtsgruppeSie können die CodeBuild-Konsole, die AWS CLI oder eine buildspec-Datei verwenden, um eineBerichtsgruppe zu erstellen. Ihre IAM-Rolle muss über die Berechtigungen verfügen, die zumErstellen einer Berichtsgruppe erforderlich sind. Weitere Informationen finden Sie im Arbeiten mitTestberichtberechtigungen (p. 324).

Themen• Erstellen einer Berichtsgruppe (Buildspec) (p. 308)• Erstellen einer Berichtsgruppe (CLI) (p. 309)• Erstellen einer Berichtsgruppe (Konsole) (p. 310)• Erstellen einer Berichtsgruppe (AWS CloudFormation) (p. 311)

Erstellen einer Berichtsgruppe (Buildspec)Eine mit der buildspec-Datei erstellte Berichtsgruppe exportiert keine rohen Testergebnisdateien. Siekönnen die Berichtsgruppe anzeigen und Exporteinstellungen festlegen. Weitere Informationen finden Sieim Aktualisieren einer Berichtsgruppe (p. 311).

So erstellen Sie eine Berichtsgruppe mit einer buildspec-Datei:

1. Wählen Sie einen Berichtsgruppennamen aus, der keiner Berichtsgruppe in Ihrem AWS-Kontozugeordnet ist.

2. Konfigurieren Sie den reports-Abschnitt der buildspec-Datei mit diesem Namen. In diesem Beispielist der Name der Berichtsgruppe new-report-group und die Verwendungstestfälle werden mit demJUnit-Framework erstellt:

reports: new-report-group: #surefire junit reports

API-Version 2016-10-06308

Page 316: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Berichtsgruppe

files: - '**/*' base-directory: 'surefire/target/surefire-reports'

Weitere Informationen finden Sie unter Angeben der Testdateien (p. 314) und Reports syntax in thebuildspec file.

3. Geben Sie im commands-Abschnitt den Befehl zum Ausführen der Tests an. Weitere Informationenfinden Sie im Angeben der Testbefehle (p. 314).

4. Führen Sie den Build aus. Wenn der Build abgeschlossen ist, wird eine neue Berichtsgruppe mit einemNamen erstellt, der das Format verwendet project-name-report-group-name. (z. B.. WeitereInformationen finden Sie unter Benennung von Berichtsgruppen (p. 314).

Erstellen einer Berichtsgruppe (CLI)So erstellen Sie einen Testbericht:

1. Erstellen Sie eine Datei namens CreateReportGroup.json.2. Kopieren Sie je nach Ihren Anforderungen eines der folgenden JSON-Code-Snippets in

CreateReportGroup.json:

• Verwenden Sie das folgende JSON, um anzugeben, dass Ihre Testberichtsgruppe Roh-Testergebnisdateien in einen Amazon S3-Bucket exportiert.

{"name": "report-name", "type": "TEST", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "bucket-name", "path": "path", "packaging": "NONE | ZIP", "encryptionDisabled": "false", "encryptionKey": "your-key" }, "tags": [ { "key": "tag-key", "value": "tag-value" } ]}

Ersetzen Sie bucket-name durch Ihren S3-Bucket-Namen und path durch den Pfad inIhrem S3-Bucket, zu dem Sie die Dateien exportieren möchten. Wenn Sie die exportiertenDateien komprimieren möchten, für packaging, angeben ZIP. (z. B..) Andernfalls geben SieNONE. (z. B..) Verwenden encryptionDisabled um anzugeben, ob die exportierten Dateienverschlüsselt werden sollen. Wenn Sie die exportierten Dateien verschlüsseln, geben Sie IhrenKundenmasterschlüssel (CMK) ein. Weitere Informationen finden Sie im Aktualisieren einerBerichtsgruppe (p. 311).

• Verwenden Sie den folgenden JSON, um anzugeben, dass der Testbericht keine rohen Testdateienexportiert:

{ "name": "report-name", "type": "TEST", "exportConfig": {

API-Version 2016-10-06309

Page 317: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Berichtsgruppe

"exportConfigType": "NO_EXPORT" }}

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladenzum S3-Bucket verwendet.

3. Führen Sie den folgenden Befehl aus.

aws codebuild create-report-group \--cli-input-json file://CreateReportGroupInput.json \--region us-east-2

Erstellen einer Berichtsgruppe (Konsole)So erstellen Sie einen Testbericht:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Report Groups (Berichtsgruppen) aus.3. Wählen Sie Create report group (Berichtsgruppe erstellen) aus.4. Geben Sie unter Report group name (Berichtsgruppenname) einen Namen für die Berichtsgruppe ein.5. (Optional) Geben Sie unter Tags Namen und Werte für Tags ein, die in unterstützten AWS-Services

verwendet werden sollen. Verwenden Sie Add row, um ein Tag hinzuzufügen. Sie können bis zu 50Tags hinzufügen.

6. Wenn Sie die Rohdaten Ihrer Testberichtsergebnisse in einen Amazon S3-Bucket hochladen möchten:

a. Wählen Sie Backup to Amazon S3 (Sichern auf) aus.b. Geben Sie für S3 bucket name (S3-Bucket-Name) den Namen des S3-Buckets ein.c. Geben Sie unter Path prefix (Pfad-Präfix) den Pfad zu dem S3-Bucket ein, in den Sie die

Testergebnisse hochladen möchten.d. Wählen Sie Compress test result data in a zip file (Testergebnisdaten in einer ZIP-Datei

komprimieren) aus, um die Testergebnisdatendateien zu komprimieren.e. Erweitern Sie Additional configuration (Zusätzliche Konfiguration), um Verschlüsselungsoptionen

anzuzeigen. Wählen Sie eine der folgenden Optionen aus:

• Default AWS managed key (Standardschlüssel) zur Verwendung einesKundenmasterschlüssels (CMK) für Amazon S3, der von der AWS Key ManagementService verwaltet wird. Eingebucht CodeBuild, der Standard-CMK ist für Amazon S3 undverwendet das Format aws/S3. (z. B.. Weitere Informationen finden Sie unter Vom Kundenverwaltete CMKs in der AWS Key Management Service Benutzerhandbuch. Dies ist dieStandardverschlüsselungsoption.

• Wählen Sie einen benutzerdefinierten Schlüssel aus, um einen CMK zu verwenden,den Sie erstellen und konfigurieren. Geben Sie für AWS KMS Encryption key(Verschlüsselungsschlüssel) den ARN Ihres Verschlüsselungsschlüssels ein. Das Format ist arn:aws:kms:region-id:aws-account-id:key/key-id. (z. B.. Weitere Informationenfinden Sie unter Erstellen von KMS-Schlüsseln in der AWS Key Management ServiceBenutzerhandbuch.

• Deaktivieren Sie die Artefaktverschlüsselung, um die Verschlüsselung zu deaktivieren. Siekönnen diese Option wählen, wenn Sie Ihre Testergebnisse freigeben oder auf einer statischenWebsite veröffentlichen möchten. (Eine dynamische Website kann Code ausführen, umTestergebnisse zu entschlüsseln.)

API-Version 2016-10-06310

Page 318: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAktualisieren einer Berichtsgruppe

Weitere Informationen zur Verschlüsselung von Daten im Ruhezustand finden Sie unterDatenverschlüsselung (p. 358).

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladenzum S3-Bucket verwendet.

7. Wählen Sie Create report group (Berichtsgruppe erstellen) aus.

Erstellen einer Berichtsgruppe (AWS CloudFormation)So erstellen Sie einen Testbericht mithilfe der AWS CloudFormation Vorlage

Sie können eine AWS CloudFormation-Vorlagendatei verwenden, um eine Berichtsgruppe zu erstellen undbereitzustellen. Weitere Informationen finden Sie im AWS CloudFormation-Benutzerhandbuch.

Die folgende AWS CloudFormation-YAML-Vorlage erstellt eine Berichtsgruppe, die keine rohenTestergebnisdateien exportiert.

Resources: CodeBuildReportGroup: Type: AWS::CodeBuild::ReportGroup Properties: Name: my-report-group-name Type: TEST ExportConfig: ExportConfigType: NO_EXPORT

Die folgende AWS CloudFormation-YAML-Vorlage erstellt eine Berichtsgruppe, die Roh-Testergebnisdateien in einen Amazon S3-Bucket exportiert.

Resources: CodeBuildReportGroup: Type: AWS::CodeBuild::ReportGroup Properties: Name: my-report-group-name Type: TEST ExportConfig: ExportConfigType: S3 S3Destination: Bucket: my-s3-bucket-name Path: path-to-folder-for-exported-files Packaging: ZIP EncryptionKey: my-KMS-encryption-key EncryptionDisabled: false

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladen zumS3-Bucket verwendet.

Aktualisieren einer BerichtsgruppeSie können Informationen dazu angeben, ob die Roh-Testergebnisdaten zu Dateien in einem AmazonS3-Bucket exportiert werden sollen. Wenn Sie in einen S3-Bucket exportieren möchten, können Sie beimErstellen der Berichtsgruppe Folgendes angeben:

API-Version 2016-10-06311

Page 319: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAktualisieren einer Berichtsgruppe

• Ob die rohen Testergebnisdateien in einer ZIP-Datei komprimiert werden.• Ob die rohen Testergebnisdateien verschlüsselt sind. Sie können die Verschlüsselung mit einer der

folgenden Optionen angeben:• Ein Kundenmasterschlüssel (CMK) für Amazon S3, der vom AWS Key Management Service verwaltet

wird.• Ein CMK, den Sie erstellen und konfigurieren.

Weitere Informationen finden Sie im Datenverschlüsselung (p. 358).

Wenn Sie die AWS CLI verwenden, um eine Berichtsgruppe zu aktualisieren, können Sie auch Tagsaktualisieren oder hinzufügen. Weitere Informationen finden Sie im Markieren von Berichtsgruppen in AWSCodeBuild (p. 315).

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladen zumS3-Bucket verwendet.

Themen• Aktualisieren einer Berichtsgruppe (Konsole) (p. 312)• Aktualisieren einer Berichtsgruppe (CLI) (p. 313)

Aktualisieren einer Berichtsgruppe (Konsole)So aktualisieren Sie eine Berichtsgruppe:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Report Groups (Berichtsgruppen) aus.3. Wählen Sie die Berichtsgruppe aus, die Sie aktualisieren möchten.4. Wählen Sie Edit aus.5. Wählen oder deaktivieren Sie Backup to Amazon S3 (Sichern auf). Wenn Sie diese Option ausgewählt

haben, geben Sie die Exporteinstellungen an:

a. Geben Sie für S3 bucket name (S3-Bucket-Name) den Namen des S3-Buckets ein.b. Geben Sie unter Path prefix (Pfad-Präfix) den Pfad zu dem S3-Bucket ein, in den Sie die

Testergebnisse hochladen möchten.c. Wählen Sie Compress test result data in a zip file (Testergebnisdaten in einer ZIP-Datei

komprimieren) aus, um die Testergebnisdatendateien zu komprimieren.d. Erweitern Sie Additional configuration (Zusätzliche Konfiguration), um Verschlüsselungsoptionen

anzuzeigen. Wählen Sie eine der folgenden Optionen aus:

• Default AWS managed key (Standardschlüssel) zur Verwendung einesKundenmasterschlüssels (CMK) für Amazon S3, der von der AWS Key ManagementService verwaltet wird. Eingebucht CodeBuild, der Standard-CMK ist für Amazon S3 undverwendet das Format aws/S3. (z. B..) Weitere Informationen finden Sie unter Vom Kundenverwaltete CMKs in der AWS Key Management Service Benutzerhandbuch. Dies ist dieStandardverschlüsselungsoption.

• Wählen Sie einen benutzerdefinierten Schlüssel aus, um einen CMK zu verwenden,den Sie erstellen und konfigurieren. Geben Sie für AWS KMS Encryption key(Verschlüsselungsschlüssel) den ARN Ihres Verschlüsselungsschlüssels ein. Das Format ist arn:aws:kms:region-id:aws-account-id:key/key-id. (z. B..) Weitere Informationenfinden Sie unter Erstellen von KMS-Schlüsseln in der AWS Key Management ServiceBenutzerhandbuch.

API-Version 2016-10-06312

Page 320: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAktualisieren einer Berichtsgruppe

• Deaktivieren Sie die Artefaktverschlüsselung, um die Verschlüsselung zu deaktivieren. Siekönnen diese Option wählen, wenn Sie Ihre Testergebnisse freigeben oder auf einer statischenWebsite veröffentlichen möchten. (Eine dynamische Website kann Code ausführen, umTestergebnisse zu entschlüsseln.)

Aktualisieren einer Berichtsgruppe (CLI)So aktualisieren Sie eine Berichtsgruppe:

1. Erstellen Sie eine Datei namens UpdateReportGroupInput.json.2. Kopieren Sie Folgendes in UpdateReportGroupInput.json:

{ "arn": "", "exportConfig": { "exportConfigType": "S3", "s3Destination": { "bucket": "bucket-name", "path": "path", "packaging": "NONE | ZIP", "encryptionDisabled": "false", "encryptionKey": "your-key" } }, "tags": [ { "key": "tag-key", "value": "tag-value" } ]}

3. Geben Sie den ARN Ihrer Berichtsgruppe in die arn-Zeile ein (z. B."arn":"arn:aws:codebuild:region:123456789012:report-group/report-group-1")

4. Aktualisieren Sie UpdateReportGroupInput.json mit den Aktualisierungen, die Sie auf IhreBerichtsgruppe anwenden möchten.

• Wenn Sie Ihre Berichtsgruppe aktualisieren möchten, um rohe Testergebnisdateien in einenS3-Bucket zu exportieren, aktualisieren Sie den exportConfig-Abschnitt. Ersetzen Siebucket-name durch Ihren S3-Bucket-Namen und path durch den Pfad in Ihrem S3-Bucket,zu dem Sie die Dateien exportieren möchten. Wenn Sie die exportierten Dateien komprimierenmöchten, für packaging, angeben ZIP. (z. B..) Andernfalls geben Sie NONE. (z. B. VerwendenencryptionDisabled um anzugeben, ob die exportierten Dateien verschlüsselt werden sollen.Wenn Sie die exportierten Dateien verschlüsseln, geben Sie Ihren Kundenmasterschlüssel (CMK)ein.

• Wenn Sie Ihre Berichtsgruppe so aktualisieren möchten, dass keine rohen Testergebnisdateien ineinen S3-Bucket exportiert werden, aktualisieren Sie den exportConfig-Abschnitt mit folgendemJSON:

{ "exportConfig": { "exportConfigType": "NO_EXPORT" }}

• Wenn Sie die Tags der Berichtsgruppe aktualisieren möchten, aktualisieren Sie den tags-Abschnitt.Sie können Tags ändern, hinzufügen oder entfernen. Wenn Sie alle Tags entfernen möchten,aktualisieren Sie sie mit dem folgenden JSON:

API-Version 2016-10-06313

Page 321: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAngeben der Testdateien

"tags": []

5. Führen Sie den folgenden Befehl aus.

aws codebuild upate-report-group \--cli-input-json file://UpdateReportGroupInput.json

Angeben der TestdateienSie geben die Testergebnisdateien und deren Speicherort für jede Berichtsgruppe im reports-Abschnittder buildspec-Datei Ihres Build-Projekts an. Weitere Informationen finden Sie im Reports syntax in thebuildspec file.

Im Folgenden finden Sie einen reports-Beispielabschnitt, der zwei Berichtsgruppen für ein Build-Projektangibt. Einer wird mit seinem ARN angegeben, der andere mit einem Namen. Der files-Abschnitt gibtdie Dateien an, die die Testfallergebnisse enthalten. Der optionale base-directory-Abschnitt gibt dasVerzeichnis an, in dem sich die Testfalldateien befinden. Der optionale Abschnitt discard-paths gibt an,ob Pfade zu Testergebnisdateien, die in einen Amazon S3-Bucket hochgeladen wurden, verworfen werden.

reports: arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1: #surefire junit reports files: - '**/*' base-directory: 'surefire/target/surefire-reports' discard-paths: false sampleReportGroup: #Cucumber reports from json plugin files: - 'cucumber-json/target/cucumber-json-report.json' file-format: CUCUMBERJSON #Type of the report, defaults to JUNITXML

Angeben der TestbefehleDie Befehle, die Ihre Testfälle ausführen, geben Sie im commands-Abschnitt Ihrer buildspec-Datei an. Mitdiesen Befehlen werden die Testfälle ausgeführt, die für Ihre Berichtsgruppen im reports-Abschnitt Ihrerbuildspec-Datei angegeben sind. Im Folgenden finden Sie einen commands-Beispielabschnitt, der Befehlezum Ausführen der Tests in Testdateien enthält:

commands: - echo Running tests for surefire junit - mvn test -f surefire/pom.xml -fn - echo - echo Running tests for cucumber with json plugin - mvn test -Dcucumber.options="--plugin json:target/cucumber-json-report.json" -f cucumber-json/pom.xml -fn

Benennung von BerichtsgruppenWenn Sie die AWS CLI oder die AWS CodeBuild-Konsole zum Erstellen einer Berichtsgruppe verwenden,geben Sie einen Namen für die Berichtsgruppe an. Wenn Sie die Build-Spezifikation verwenden, um eineneue Berichtsgruppe zu erstellen, wird sie mit dem Format benannt project-name-report-group-name-specified-in-buildspec. (z. B..) Alle Berichte, die durch Ausführen von Builds dieses Build-Projekts erstellt wurden, gehören zu der neuen Berichtsgruppe mit dem neuen Namen.

API-Version 2016-10-06314

Page 322: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren einer Berichtgruppe

Wenn Sie keine neue Berichtsgruppe von CodeBuild erstellen lassen möchten, geben Sie den ARN derBerichtsgruppe in der buildspec-Datei eines Build-Projekts an. Sie können den ARN einer Berichtsgruppein mehreren Build-Projekten angeben. Nach der Ausführung jedes Build-Projekts enthält die BerichtsgruppeTestberichte, die von jedem Build-Projekt erstellt wurden.

Wenn Sie beispielsweise eine Berichtsgruppe mit dem Namen my-report-group erstellen und dannihren Namen in zwei verschiedenen Build-Projekten verwenden, die als my-project-1 und my-project-2 benannt sind, und einen Build beider Projekte erstellen, werden zwei neue Berichtsgruppenerstellt. Das Ergebnis sind drei Berichtsgruppen mit folgenden Namen:

• my-report-group: : Hat keine Testberichte.• my-project-1-my-report-group: Enthält Berichte mit Ergebnissen von Tests, die vom Build-Projekt

mit dem Namen my-project-1.• my-project-2-my-report-group: Enthält Berichte mit Ergebnissen von Tests, die vom Build-Projekt

mit dem Namen my-project-2.

Wenn Sie den ARN der Berichtsgruppe mit dem Namen my-report-group in beiden Projektenverwenden und dann Builds für jedes Projekt ausführen, haben Sie immer noch eine Berichtsgruppe (my-report-group). Diese Berichtsgruppe enthält Testberichte mit Ergebnissen von Tests, die von beidenBuild-Projekten ausgeführt werden.

Wenn Sie einen Berichtsgruppennamen auswählen, der nicht zu einer Berichtsgruppe in Ihrem AWS-Kontogehört, und diesen Namen dann für eine Berichtsgruppe in einer buildspec-Datei verwenden und einenBuild des Build-Projekts ausführen, wird eine neue Berichtsgruppe erstellt. Das Format des Namens derneuen Berichtsgruppe ist project-name-new-group-name. (z. B.. Wenn sich beispielsweise keineBerichtsgruppe in Ihrem AWS Konto mit dem Namen new-report-groupund geben Sie es in einemBuild-Projekt mit dem Namen an. test-project, eine Build-Ausführung erstellt eine neue Berichtsgruppemit dem Namen test-project-new-report-group.

Markieren von Berichtsgruppen in AWS CodeBuildEin Tag ist eine benutzerdefinierte Attributbezeichnung, die Sie oder AWS einer AWS-Ressource zuweisen.Jedes AWS-Tag besteht aus zwei Teilen:

• einem Tag-Schlüssel (z. B. CostCenter, Environment, Project oder Secret). Tag-Schlüsselnunterscheiden zwischen Groß- und Kleinschreibung.

• einem optionalen Feld, das als Tag-Wert bezeichnet wird (z. B. 111122223333, Production oderein Team-Name). Ein nicht angegebener Tag-Wert entspricht einer leeren Zeichenfolge. Wie bei Tag-Schlüsseln wird auch bei Tag-Werten zwischen Groß-/Kleinschreibung unterschieden.

Dies wird als Schlüssel-Wert-Paar bezeichnet. Informationen zu den Limits in Bezug auf die Anzahl derTags für eine Berichtsgruppe und zu den Einschränkungen in Bezug auf Tag-Schlüssel und -Werte findenSie unter Tags (p. 447).

Tags helfen Ihnen, Ihre AWS-Ressourcen zu identifizieren und zu organisieren. Viele AWS-Servicesunterstützen das Markieren mit Tags (kurz: Tagging). So können Ressourcen aus verschiedenen Servicesdenselben Tag zuweisen, um anzugeben, dass die Ressourcen verbunden sind. Sie können beispielsweisedas gleiche Tag einer CodeBuild-Berichtsgruppe zuweisen, das Sie auch einem Amazon S3-Bucketzuweisen. Weitere Informationen zur Verwendung von Tags finden Sie im Whitepaper Bewährte Methodenfür die Markierung.

In CodeBuild sind die primären Ressourcen die Berichtsgruppe und das Projekt. Sie können dieCodeBuild-Konsole, die AWS CLI, CodeBuild-APIs oder AWS-SDKs verwenden, um Tags für eineBerichtsgruppe hinzuzufügen, zu verwalten und zu entfernen. Zusätzlich zum Identifizieren, Organisierenund Nachverfolgen Ihrer Berichtsgruppe mit Tags können Sie Tags in IAM-Richtlinien verwenden,

API-Version 2016-10-06315

Page 323: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren einer Berichtgruppe

um zu steuern, wer Ihr Repository anzeigen und mit ihm interagieren kann. Beispiele für Tag-basierteZugriffsrichtlinien finden Sie unter Verwenden von Tags zur Steuerung des Zugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Themen• Hinzufügen eines Tags zu einer Berichtsgruppe (p. 316)• Anzeigen von Tags für eine Berichtsgruppe (p. 317)• Bearbeiten von Tags für eine Berichtsgruppe (p. 318)• Entfernen eines Tags aus einer Berichtsgruppe (p. 319)

Hinzufügen eines Tags zu einer BerichtsgruppeDas Hinzufügen von Tags zu einer Berichtsgruppe kann Ihnen helfen, Ihre AWS-Ressourcen zuidentifizieren und zu organisieren und den Zugriff auf sie zu verwalten. Fügen Sie zunächst ein odermehrere Tags (Schlüssel-Wert-Paare) zu einer Berichtsgruppe hinzu. Denken Sie daran, dass es Limitsin Bezug auf die Anzahl der Tags für eine Berichtsgruppe gibt. Es gibt Einschränkungen im Hinblick aufdie Zeichen, die Sie in die Felder für Schlüssel und Wert eingeben können. Weitere Informationen findenSie unter Tags (p. 447). Nach der Erstellung der Tags können Sie IAM-Richtlinien für die Verwaltung desZugriffs auf die Berichtsgruppe basierend auf diesen Tags erstellen. Sie können die CodeBuild-Konsoleoder die AWS CLI verwenden, um Tags zu einer Berichtsgruppe hinzuzufügen.

Important

Das Hinzufügen von Tags zu einer Berichtsgruppe kann sich auf den Zugriff auf dieseBerichtsgruppe auswirken. Bevor Sie ein Tag zu einer Berichtsgruppe hinzufügen, müssen Siealle IAM-Richtlinien überprüfen, die möglicherweise Tags für die Steuerung des Zugriffs aufRessourcen wie z. B. Berichtsgruppen verwenden. Beispiele für Tag-basierte Zugriffsrichtlinienfinden Sie unter Verwenden von Tags zur Steuerung des Zugriffs auf AWS CodeBuild-Ressourcen (p. 386).

Weitere Informationen zum Hinzufügen von Tags zu einer Berichtsgruppe während ihrer Erstellung findenSie unter Erstellen einer Berichtsgruppe (Konsole) (p. 310).

Themen• Hinzufügen eines Tags zu einer Berichtsgruppe (Konsole) (p. 316)• Hinzufügen eines Tags zu einer Berichtsgruppe (AWS CLI) (p. 317)

Hinzufügen eines Tags zu einer Berichtsgruppe (Konsole)

Sie können die CodeBuild-Konsole verwenden, um zu einer CodeBuild-Berichtsgruppe ein oder mehrereTags hinzuzufügen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Report groups (Berichtsgruppen) den Namen der Berichtsgruppe aus, der Sie Tags

hinzufügen möchten.3. Klicken Sie im Navigationsbereich auf Settings.4. Wenn der Berichtsgruppe noch keine Tags hinzugefügt wurden, wählen Sie Add tag (Tag hinzufügen)

aus. Sie können auch Edit (Bearbeiten) und anschließend Add tag (Tag hinzufügen) auswählen.5. Geben Sie für Key (Schlüssel) einen Namen für das Tag ein. Sie können einen optionalen Wert für das

Tag unter Value (Wert) hinzufügen.6. (Optional) Zum Hinzufügen eines weiteren Tags wählen Sie Add tag (Tag hinzufügen) erneut aus.7. Wenn Sie mit dem Hinzufügen von Tags fertig sind, klicken Sie auf Submit (Übermitteln).

API-Version 2016-10-06316

Page 324: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren einer Berichtgruppe

Hinzufügen eines Tags zu einer Berichtsgruppe (AWS CLI)

Informationen zum Hinzufügen eines Tags zu einer Berichtsgruppe bei ihrer Erstellung finden Sie unterErstellen einer Berichtsgruppe (CLI) (p. 309). Fügen Sie Ihre Tags in CreateReportGroup.json hinzu.

Informationen zum Hinzufügen von Tags zu einer vorhandenen Berichtsgruppe findenSie unter Aktualisieren einer Berichtsgruppe (CLI) (p. 313). Fügen Sie Ihre Tags inUpdateReportGroupInput.json hinzu.

Bei diesen Schritten wird davon ausgegangen, dass Sie bereits eine aktuelle Version der AWS CLIinstalliert oder eine Aktualisierung auf die aktuelle Version vorgenommen haben. Weitere Informationenfinden Sie unter Installieren der AWS Command Line Interface.

Anzeigen von Tags für eine BerichtsgruppeTags helfen Ihnen, Ihre AWS-Ressourcen zu identifizieren und den Zugriff auf diese zu verwalten. WeitereInformationen zur Verwendung von Tags finden Sie im Whitepaper Bewährte Methoden für die Markierung.Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Deny or allow actions on report groups basedon resource tags.

Anzeigen von Tags für eine Berichtsgruppe (Konsole)

Sie können die CodeBuild-Konsole verwenden, um die mit einer CodeBuild-Berichtsgruppe verknüpftenTags anzuzeigen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Report groups (Berichtsgruppen) den Namen der Berichtsgruppe aus, in der Sie Tags

anzeigen möchten.3. Klicken Sie im Navigationsbereich auf Settings.

Anzeigen von Tags für eine Berichtsgruppe (AWS CLI)

Führen Sie die folgenden Schritte aus, um über die AWS CLI die AWS-Tags für eine Berichtsgruppeanzuzeigen. Wenn keine Tags hinzugefügt wurden, ist die Liste der zurückgegebenen Tags leer.

1. Verwenden Sie die Konsole oder die AWS CLI, um den ARN Ihrer Berichtsgruppe zu suchen. NotierenSie diesen.

AWS CLI

Führen Sie den folgenden Befehl aus.

aws list-report-groups

Dieser Befehl gibt JSON-formatierte Informationen ähnlich den folgenden zurück:

{ "reportGroups": [ "arn:aws:codebuild:region:123456789012:report-group/report-group-1", "arn:aws:codebuild:region:123456789012:report-group/report-group-2", "arn:aws:codebuild:region:123456789012:report-group/report-group-3" ]}

Ein Berichtsgruppen-ARN endet mit dem Namen. Diesen können Sie verwenden, um den ARN fürIhre Berichtsgruppe zu identifizieren.

API-Version 2016-10-06317

Page 325: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren einer Berichtgruppe

Console

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Report groups (Berichtsgruppen) den Namen der Berichtsgruppe mit den Tags

aus, die Sie anzeigen möchten.3. Suchen Sie in Configuration (Konfiguration) den ARN Ihrer Berichtsgruppe.

2. Führen Sie den folgenden Befehl aus. Verwenden Sie den ARN, den Sie notiert haben, für denParameter --report-group-arns.

aws codebuild batch-get-report-groups --report-group-arns arn:aws:codebuild:region:123456789012:report-group/report-group-name

Bei erfolgreicher Ausführung gibt dieser Befehl JSON-formatierte Informationen mit einem tags-Abschnitt ähnlich dem folgenden zurück:

{ ... "tags": { "Status": "Secret", "Project": "TestBuild" } ...}

Bearbeiten von Tags für eine BerichtsgruppeSie können den Wert für ein Tag ändern, das mit einer Berichtsgruppe verknüpft ist. Sie können auch denNamen des Schlüssels ändern. Dies entspricht dem Entfernen des aktuellen Tags und dem Hinzufügeneines anderen Tags mit dem neuen Namen und demselben Wert wie dem des anderen. Denken Sie an dieEinschränkungen in Bezug auf die Zeichen, die Sie in den Schlüssel- und Wertfeldern verwenden können.Weitere Informationen finden Sie unter Tags (p. 447).

Important

Das Bearbeiten von Tags für eine Berichtsgruppe kann sich auf den Zugriff auf dieseBerichtsgruppe auswirken. Bevor Sie den Namen (Schlüssel) oder den Wert eines Tags füreine Berichtsgruppe bearbeiten, müssen Sie alle IAM-Richtlinien überprüfen, die den Schlüsseloder Wert eines Tags möglicherweise für die Steuerung des Zugriffs auf Ressourcen wie z. B.Berichtsgruppen verwenden. Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Deny orallow actions on report groups based on resource tags.

Bearbeiten eines Tags für eine Berichtsgruppe (Konsole)

Sie können die CodeBuild-Konsole verwenden, um die mit einer CodeBuild-Berichtsgruppe verknüpftenTags zu bearbeiten.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Report groups (Berichtsgruppen) den Namen der Berichtsgruppe aus, in der Sie Tags

bearbeiten möchten.3. Klicken Sie im Navigationsbereich auf Settings.4. Wählen Sie Edit (Bearbeiten) aus.5. Führen Sie eine der folgenden Aufgaben aus:

API-Version 2016-10-06318

Page 326: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchMarkieren einer Berichtgruppe

• Zum Ändern des Tags geben Sie einen neuen Namen unter Key (Schlüssel) ein. Das Ändern desNamens eines Tags entspricht dem Entfernen eines Tags und Hinzufügen eines neuen Tags mitdem neuen Schlüsselnamen.

• Geben Sie zum Ändern des Werts eines Tags einen neuen Wert ein. Wenn Sie den Wert in „kein“ändern möchten, löschen Sie den aktuellen Wert und lassen das Feld leer.

6. Wenn Sie mit dem Bearbeiten der Tags fertig sind, wählen Sie Submit (Übermitteln) aus.

Bearbeiten von Tags für eine Berichtsgruppe (AWS CLI)Informationen zum Hinzufügen, Ändern oder Löschen von Tags für eine Berichtsgruppe findenSie unter Aktualisieren einer Berichtsgruppe (CLI) (p. 313). Aktualisieren Sie die Tags inUpdateReportGroupInput.json.

Entfernen eines Tags aus einer BerichtsgruppeSie können ein oder mehrere Tags entfernen, die mit einer Berichtsgruppe verknüpft sind. Das Entferneneines Tags löscht nicht das Tag anderer AWS-Ressourcen, die mit diesem Tag verknüpft sind.

Important

Das Entfernen von Tags für eine Berichtsgruppe kann sich auf den Zugriff auf dieseBerichtsgruppe auswirken. Bevor Sie ein Tag aus einer Berichtsgruppe entfernen, müssen Siealle IAM-Richtlinien überprüfen, die den Schlüssel oder Wert eines Tags möglicherweise für dieSteuerung des Zugriffs auf Ressourcen wie z. B. Berichtsgruppen verwenden. Beispiele für Tag-basierte Zugriffsrichtlinien finden Sie unter Verwenden von Tags zur Steuerung des Zugriffs aufAWS CodeBuild-Ressourcen (p. 386).

Entfernen eines Tags aus einer Berichtsgruppe (Konsole)Sie können die CodeBuild-Konsole verwenden, um die Verknüpfung zwischen einem Tag und einerCodeBuild-Berichtsgruppe zu entfernen.

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie in Report groups (Berichtsgruppen) den Namen der Berichtgruppe aus, in der Sie Tags

entfernen möchten.3. Klicken Sie im Navigationsbereich auf Settings.4. Wählen Sie Edit (Bearbeiten) aus.5. Suchen Sie die Tags, die Sie entfernen möchten, und wählen Sie dann Remove tag (Tag entfernen)

aus.6. Wenn Sie die Tags entfernt haben, klicken Sie auf Submit (Übermitteln).

Entfernen eines Tags aus einer Berichtsgruppe (AWS CLI)Führen Sie die folgenden Schritte aus, um über die AWS CLI ein Tag aus einer CodeBuild-Berichtsgruppezu entfernen. Durch das Entfernen wird ein Tag nicht gelöscht, sondern lediglich die Verknüpfung zwischendem Tag und der Berichtsgruppe entfernt.

Note

Wenn Sie eine CodeBuild-Berichtsgruppe löschen, werden alle Tag-Verknüpfungen aus dergelöschten Berichtsgruppe entfernt. Sie müssen vor dem Löschen einer Berichtsgruppe keineTags entfernen.

Informationen zum Löschen eines oder mehrerer Tags aus einer Berichtsgruppe finden Sie unterBearbeiten von Tags für eine Berichtsgruppe (AWS CLI) (p. 319). Aktualisieren Sie den tags-Abschnitt

API-Version 2016-10-06319

Page 327: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Berichtsgruppen.

in den JSON-formatierten Daten mit einer aktualisierten Liste von Tags, die keine der Tags enthält, die Sielöschen möchten. Wenn Sie alle Tags löschen möchten, aktualisieren Sie den tags-Abschnitt zu:

"tags: []"

Arbeiten mit freigegebenen Berichtsgruppen.Mithilfe der Berichtsgruppenfreigabe können mehrere AWS-Konten oder Benutzer eine Berichtsgruppe,ihre nicht abgelaufenen Berichte und die Testergebnisse ihrer Berichte anzeigen. In diesem Modellverwendet das Konto, das die Berichtsgruppe besitzt (Eigentümer), eine Berichtsgruppe mit anderenKonten (Verbraucher). Ein Verbraucher kann keine Berichtsgruppe bearbeiten. Ein Bericht läuft 30 Tagenach seiner Erstellung ab.

Inhalt:• Voraussetzungen für die Freigabe von Berichtsgruppen (p. 320)• Voraussetzungen für den Zugriff auf für Sie freigegebene Berichtsgruppen (p. 320)• Zugehörige Services (p. 320)• Freigeben einer Berichtsgruppe (p. 321)• Aufheben der Freigabe einer freigegebenen Berichtsgruppe (p. 322)• Identifizieren einer freigegebenen Berichtsgruppe (p. 323)• Berechtigungen für freigegebene Berichtsgruppen (p. 323)

Voraussetzungen für die Freigabe von BerichtsgruppenUm eine Berichtsgruppe freizugeben, muss Ihr AWS-Konto Eigentümer dieser Gruppe sein. Sie könnenkeine Berichtsgruppe freigeben, die für Sie freigegeben wurde.

Voraussetzungen für den Zugriff auf für Sie freigegebeneBerichtsgruppenUm auf eine freigegebene Berichtsgruppe zuzugreifen, benötigt die IAM-Rolle eines Verbrauchers dieBatchGetReportGroups-Berechtigung. Sie können die folgende Richtlinie an ihre IAM-Rolle anfügen:

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:BatchGetReportGroups" ]}

Weitere Informationen finden Sie im Verwenden von identitätsbasierten Richtlinien für AWSCodeBuild (p. 364).

Zugehörige ServicesDie Berichtsgruppenfreigabe wird mit AWS Resource Access Manager (AWS RAM) integriert, einemService, der es Ihnen ermöglicht, Ihre AWS-Ressourcen für jedes AWS-Konto oder über AWSOrganizations freizugeben. Mit AWS RAM können Sie Ressourcen, deren Eigentümer Sie sind, freigeben,indem Sie eine Ressourcenfreigabe erstellen, die die Ressourcen und die Verbraucher angibt, für die sie

API-Version 2016-10-06320

Page 328: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Berichtsgruppen.

freigegeben werden sollen. Verbraucher können einzelne AWS-Konten oder Organisationseinheiten inAWS Organizations oder gesamte Organisationen in AWS Organizations sein.

Weitere Informationen finden Sie unter AWS RAM-Benutzerhandbuch.

Freigeben einer BerichtsgruppeWenn Sie eine Berichtsgruppe freigeben, erhält der Verbraucher schreibgeschützten Zugriff auf dieBerichtsgruppe und ihre Berichte. Der Verbraucher kann die AWS CLI verwenden, um die Berichtsgruppe,ihre Berichte und die Testfallergebnisse für jeden Bericht anzuzeigen. Der Verbraucher kann nicht:

• Eine freigegebene Berichtsgruppe oder ihre Berichte in der CodeBuild-Konsole anzeigen.• Eine freigegebene Berichtsgruppe bearbeiten.• Den ARN der freigegebenen Berichtsgruppe in einem Projekt verwenden, um einen Bericht auszuführen.

Ein Projekt-Build, der eine freigegebene Berichtsgruppe angibt, schlägt fehl.

Sie können die CodeBuild-Konsole verwenden, um einer vorhandenen Ressourcenfreigabe eineBerichtsgruppe hinzuzufügen. Wenn Sie die Berichtsgruppe einer neuen Ressourcenfreigabe hinzufügenmöchten, müssen Sie sie zuerst in der AWS RAM-Konsole erstellen.

Um eine Berichtsgruppe für Organisationseinheiten oder eine ganze Organisation freizugeben, müssen Siedie Freigabe für AWS Organizations aktivieren. Weitere Informationen finden Sie unter Freigabe für AWSOrganizations aktivieren im AWS RAM-Benutzerhandbuch.

Sie können die CodeBuild-Konsole, die AWS RAM-Konsole oder AWS CLI verwenden, umBerichtsgruppen freizugeben, deren Eigentümer Sie sind.

So geben Sie eine Berichtsgruppe frei, deren Eigentümer Sie sind (CodeBuild-Konsole):

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Report Groups (Berichtsgruppen) aus.3. Wählen Sie das Projekt aus, das Sie freigeben möchten, und klicken Sie dann auf Share (Freigeben).

Weitere Informationen finden Sie unter Erstellen einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So geben Sie Berichtsgruppen frei, deren Eigentümer Sie sind (AWS RAM-Konsole):

Vgl. Erstellen einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So geben Sie Berichtsgruppen frei, deren Eigentümer Sie sind (AWS RAM-Befehl):

Verwenden Sie den Befehl create-resource-share.

So teilen Sie eine Berichtsgruppe, die Sie besitzen (CodeBuild Befehl)

Verwenden Sie den Befehl put-resource-policy :

1. Erstellen Sie eine Datei mit dem Namen policy.json und kopieren Sie Folgendes in diese Datei.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"consumer-aws-account-id-or-user" }, "Action":[ "codebuild:BatchGetReportGroups", "codebuild:BatchGetReports",

API-Version 2016-10-06321

Page 329: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Berichtsgruppen.

"codebuild:ListReportsForReportGroup", "codebuild:DescribeTestCases"], "Resource":"arn-of-report-group-to-share" }] }

2. Aktualisieren Sie policy.json mit dem ARN der Berichtsgruppe und Bezeichnern für die Freigabe.Das folgende Beispiel gewährt Alice und dem Root-Benutzer schreibgeschützten Zugriff auf dieBerichtsgruppe mit dem ARN arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group für das von 123456789012 identifizierte AWS-Konto.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS": [ "arn:aws:iam:123456789012:user/Alice", "123456789012" ] }, "Action":[ "codebuild:BatchGetReportGroups", "codebuild:BatchGetReports", "codebuild:ListReportsForReportGroup", "codebuild:DescribeTestCases"], "Resource":"arn:aws:codebuild:us-west-2:123456789012:report-group/my-report-group" }] }

3. Führen Sie den folgenden Befehl aus.

aws codebuild put-resource-policy --resource-arn report-group-arn --policy file://policy.json

Aufheben der Freigabe einer freigegebenen BerichtsgruppeAuf eine nicht mehr freigegebene Berichtsgruppe, einschließlich ihrer Berichte und ihrer Testergebnisse,kann nur der Besitzer zugreifen. Wenn Sie die Freigabe einer Berichtsgruppe aufheben, kann jedes AWS-Konto oder jeder Benutzer, für das/den die Freigabe zuvor galt, nicht mehr auf die Berichtsgruppe, ihreBerichte oder die Ergebnisse von Testfällen in den Berichten zugreifen.

Um die Freigabe eines freigegebenen Berichtsgruppe, deren Eigentümer Sie sind, aufzuheben, müssenSie sie aus der Ressourcenfreigabe entfernen. Sie können dafür die AWS RAM-Konsole oder AWS CLIverwenden.

So heben Sie die Freigabe einer freigegebenen Berichtsgruppe auf, deren Eigentümer Sie sind (AWSRAM-Konsole):

Siehe Aktualisieren einer Ressourcenfreigabe im AWS RAM-Benutzerhandbuch.

So heben Sie die Freigabe einer freigegebenen Berichtsgruppe auf, deren Eigentümer Sie sind (AWSRAM-Befehl)

Verwenden Sie den Befehl disassociate-resource-share.

So heben Sie die Berichtsgruppe an, die Sie besitzen CodeBuild Befehl)

Führen Sie den Befehl delete-resource-policy aus und geben Sie den ARN der Berichtsgruppe an, derenFreigabe Sie aufheben möchten:

API-Version 2016-10-06322

Page 330: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit freigegebenen Berichtsgruppen.

aws codebuild delete-resource-policy --resource-arn report-group-arn

Identifizieren einer freigegebenen BerichtsgruppeEigentümer und Verbraucher können freigegebene Berichtsgruppen mit AWS CLI identifizieren.

Verwenden Sie die folgenden Befehle, um eine freigegebene Berichtsgruppe zu identifizieren undInformationen dazu und zu ihren Berichten abzurufen:

• Um die ARNs der für Sie freigegebenen Berichtsgruppen anzuzeigen, führen Sie list-shared-report-groups aus:

aws codebuild list-shared-report-groups

• Um die ARNs der Berichte in einer Berichtsgruppe anzuzeigen, führen Sie list-reports-for-report-group mit dem ARN der Berichtsgruppe aus:

aws codebuild list-reports-for-report-group --report-group-arn report-group-arn

• Um Informationen zu Testfällen in einem Bericht anzuzeigen, führen Sie describe-test-casesmithilfe des ARN des Berichts aus:

aws codebuild describe-test-cases --report-arn report-arn

Die Ausgabe sieht wie folgt aus.

{ "testCases": [ { "status": "FAILED", "name": "Test case 1", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" }, { "status": "SUCCEEDED", "name": "Test case 2", "expired": 1575916770.0, "reportArn": "report-arn", "prefix": "Cucumber tests for agent", "message": "A test message", "durationInNanoSeconds": 1540540, "testRawDataPath": "path-to-output-report-files" } ]}

Berechtigungen für freigegebene BerichtsgruppenBerechtigungen für BesitzerEin Besitzer der Berichtsgruppe kann die Berichtsgruppe bearbeiten und in einem Projekt angeben, umBerichte auszuführen.

API-Version 2016-10-06323

Page 331: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchArbeiten mit Berichten

Berechtigungen für KonsumentenEin Benutzer der Berichtsgruppe kann eine Berichtsgruppe, ihre Berichte und die Testfallergebnisse für dieBerichte anzeigen. Ein Verbraucher kann eine Berichtsgruppe oder ihre Berichte nicht bearbeiten und sienicht zum Erstellen von Berichten verwenden.

Arbeiten mit BerichtenEin Bericht enthält die Ergebnisse von Testfällen, die für eine Berichtsgruppe angegeben sind. EinTestbericht wird während der Ausführung eines Build-Projekts erstellt. Sie geben eine Berichtsgruppe,Testfalldateien und Befehle an, um die Testfälle in der buildspec-Datei auszuführen. Bei jeder Ausführungder Testfälle wird in der Berichtsgruppe ein neuer Testbericht erstellt.

Ein Testbericht läuft 30 Tage nach der Erstellung ab. Sie können einen abgelaufenen Testberichtnicht anzeigen, aber Sie können die Testergebnisse in rohe Testergebnisdateien in einem S3-Bucketexportieren. Exportierte Roh-Testdateien laufen nicht ab. Weitere Informationen finden Sie im Aktualisiereneiner Berichtsgruppe (p. 311).

Der Status eines Testberichts kann einer der folgenden sein:

• GENERATING: : Die Ausführung der Testfälle ist noch im Gange.• DELETING: : Der Testbericht wird gelöscht. Wenn ein Testbericht gelöscht wird, werden auch seine

Testfälle gelöscht. Roh-Testergebnis-Datendateien, die in einen S3-Bucket exportiert werden, werdennicht gelöscht.

• INCOMPLETE: : Der Testbericht wurde nicht abgeschlossen. Dieser Status kann aus einem der folgendenGründe angezeigt werden:• Ein Problem mit der Konfiguration der Berichtsgruppe, die die Testfälle dieses Berichts angibt.

Beispielsweise könnte der Pfad zu den Testfällen unter der Berichtsgruppe in der buildspec-Dateifalsch sein.

• Der IAM-Benutzer, der den Build ausgeführt hat, hat keine Berechtigungen zum Ausführen von Tests.Weitere Informationen finden Sie im Arbeiten mit Testberichtberechtigungen (p. 324).

• Der Build wurde aufgrund eines Fehlers nicht abgeschlossen, der nicht mit den Tests zusammenhängt.• SUCCEEDED: : Alle Testfälle waren erfolgreich.• FAILED: : Einige der Testfälle waren nicht erfolgreich.

Jeder Testfall gibt einen Status zurück. Der Status für einen Testfall kann einer der folgenden sein:

• SUCCEEDED: : Der Testfall wurde bestanden.• FAILED: : Der Testfall ist fehlgeschlagen.• ERROR: : Der Testfall führte zu einem unerwarteten Fehler.• SKIPPED: : Der Testfall wurde nicht ausgeführt.• UNKNOWN: Der Testfall hat einen anderen Status als SUCCEEDED, , und Sie haben die MöglichkeitFAILED, , und zwar ERROR, oder SKIPPED.

Ein Testbericht kann maximal 500 Testfallergebnisse haben. Wenn mehr als 500 Testfälle ausgeführtwerden, priorisiert CodeBuild Tests mit dem Status FAILED und kürzt die Testfallergebnisse.

Arbeiten mit TestberichtberechtigungenIn diesem Thema werden wichtige Informationen zu Berechtigungen für Testberichte beschrieben.

API-Version 2016-10-06324

Page 332: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Rolle für Testberichte

Themen• Erstellen einer Rolle für Testberichte (p. 325)• Berechtigungen für Testberichtoperationen (p. 326)• Beispiele für Testberichtberechtigungen (p. 326)

Erstellen einer Rolle für TestberichteUm einen Testbericht auszuführen und ein Projekt zu aktualisieren, um Testberichte einzuschließen,benötigt Ihre IAM-Rolle die folgenden Berechtigungen. Diese Berechtigungen sind in den vordefiniertenvon AWS verwalteten Richtlinien enthalten. Wenn Sie Testberichte zu einem vorhandenen Build-Projekthinzufügen möchten, müssen Sie diese Berechtigungen selbst hinzufügen.

• CreateReportGroup

• CreateReport

• UpdateReport

• BatchPutTestCases

Um einen Codeabdeckungsbericht auszuführen, IAM Rolle muss auch die BatchPutCodeCoveragesBerechtigung.

Note

BatchPutTestCases, , und Sie haben die Möglichkeit CreateReport, , und Sie habendie Möglichkeit UpdateReport, und BatchPutCodeCoverages sind keine öffentlichenBerechtigungen. Sie können keinen entsprechenden AWS CLI-Befehl oder eine entsprechendeSDK-Methode für diese Berechtigungen aufrufen.

Um sicherzustellen, dass Sie über diese Berechtigungen verfügen, können Sie Ihrer IAM-Rolle die folgendeRichtlinie anfügen:

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases", "codebuild:BatchPutCodeCoverages" ]}

Es wird empfohlen, diese Richtlinie nur auf die Berichtsgruppen zu beschränken, die Sie verwendenmüssen. Folgendes beschränkt die Berechtigungen nur auf die Berichtsgruppen mit den beiden ARNs inder Richtlinie:

{ "Effect": "Allow", "Resource": [ "arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1", "arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-2" ],

API-Version 2016-10-06325

Page 333: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBerechtigungen für Testberichtoperationen

"Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases", "codebuild:BatchPutCodeCoverages" ]}

Folgendes beschränkt die Berechtigungen nur auf Berichtsgruppen, die durch Ausführen von Builds einesProjekts mit dem Namen my-project erstellt wurden:

{ "Effect": "Allow", "Resource": [ "arn:aws:codebuild:your-region:your-aws-account-id:report-group/my-project-*" ], "Action": [ "codebuild:CreateReportGroup", "codebuild:CreateReport", "codebuild:UpdateReport", "codebuild:BatchPutTestCases", "codebuild:BatchPutCodeCoverages" ]}

Note

Die im Projekt angegebene CodeBuild-Servicerolle wird für Berechtigungen zum Hochladen zumS3-Bucket verwendet.

Berechtigungen für TestberichtoperationenSie können Berechtigungen für die folgenden Testbericht-CodeBuild-API-Vorgänge angeben:

• BatchGetReportGroups

• BatchGetReports

• CreateReportGroup

• DeleteReportGroup

• DeleteReport

• DescribeTestCases

• ListReportGroups

• ListReports

• ListReportsForReportGroup

• UpdateReportGroup

Weitere Informationen finden Sie im Referenz für AWS CodeBuild-Berechtigungen (p. 381).

Beispiele für TestberichtberechtigungenInformationen zu Beispielrichtlinien für Testberichte finden Sie in:

• Benutzern das Ändern einer Berichtsgruppe ermöglichen (p. 377)• Benutzern das Erstellen einer Berichtsgruppe ermöglichen (p. 375)

API-Version 2016-10-06326

Page 334: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Testberichten

• Benutzern das Löschen eines Berichts ermöglichen (p. 375)• Benutzern das Löschen einer Berichtsgruppe ermöglichen (p. 375)• Benutzern das Abrufen von Informationen über Berichtsgruppen ermöglichen (p. 374)• Benutzern das Abrufen von Informationen über Berichte ermöglichen (p. 374)• Benutzern das Abrufen einer Liste von Berichtsgruppen ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Berichten ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Berichten für eine Berichtsgruppe ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Testfällen für einen Bericht ermöglichen (p. 379)

Anzeigen von TestberichtenSie können Details zu einem Testbericht anzeigen, z. B. Informationen zu seinen Testfällen, zum Bestehenund Fehlschlagen sowie zur Dauer der Ausführung. Sie können Testberichte gruppiert nach Build-Lauf,Berichtsgruppe oder Ihrem AWS-Konto anzeigen. Wählen Sie einen Testbericht in der Konsole aus, um dieDetails und die Ergebnisse der Testfälle anzuzeigen.

Sie können Testberichte anzeigen, die nicht abgelaufen sind. Testberichte laufen 30 Tage nach ihrerErstellung ab. Sie können einen abgelaufenen Bericht in CodeBuild nicht anzeigen.

Themen• Anzeigen von Testberichten für einen Build (p. 327)• Anzeigen der Testberichte für eine Berichtsgruppe (p. 327)• Anzeigen von Testberichten in Ihrem AWS-Konto (p. 328)

Anzeigen von Testberichten für einen BuildSo zeigen Sie Testberichte für einen Build an:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Suchen Sie den Build, den Sie anzeigen möchten. Wenn Sie das Projekt kennen, das den Build

ausgeführt hat, der den Testbericht erstellt hat:

1. Wählen Sie im Navigationsbereich Build projects (Build-Projekte) und dann das Projekt mit demBuild aus, der den Testbericht ausgeführt hat, den Sie anzeigen möchten.

2. Wählen Sie Build history (Build-Verlauf) und wählen Sie dann den Build aus, der die Berichte erstellthat, die Sie anzeigen möchten.

Sie können den Build auch im Build-Verlauf für Ihr AWS-Konto finden:

1. Wählen Sie im Navigationsbereich die Option Build history (Build-Verlauf) und dann den Build aus,der die Testberichte erstellt hat, die Sie anzeigen möchten.

3. Wählen Sie auf der Build-Seite Reports (Berichte) aus, und wählen Sie dann einen Testbericht aus, umdie Details anzuzeigen.

Anzeigen der Testberichte für eine BerichtsgruppeSo zeigen Sie Testberichte in einer Berichtsgruppe an:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

API-Version 2016-10-06327

Page 335: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Testberichten in Ihrem AWS-Konto

2. Wählen Sie im Navigationsbereich Report Groups (Berichtsgruppen) aus.3. Wählen Sie die Berichtsgruppe aus, die die Testberichte enthält, die Sie anzeigen möchten.4. Wählen Sie einen Testbericht, um die Details anzuzeigen.

Anzeigen von Testberichten in Ihrem AWS-KontoSo zeigen Sie Testberichte in Ihrem AWS-Konto an:

1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.2. Wählen Sie im Navigationsbereich Report history (Berichtsverlauf) aus.3. Wählen Sie einen Testbericht, um die Details anzuzeigen.

Testberichte mit Test-FrameworksDie Themen in diesem Abschnitt veranschaulichen, wie Sie Testberichte in AWS CodeBuild fürverschiedene Test-Frameworks einrichten.

Themen• Einrichten von Testberichten mit Jasmine (p. 328)• Einrichten von Testberichten mit Jest (p. 330)• Einrichten von Testberichten mit Pytest (p. 331)• Einrichten von Testberichten mit RSpec (p. 331)

Einrichten von Testberichten mit JasmineDas folgende Verfahren veranschaulicht, wie Testberichte in AWS CodeBuild mit dem JasmineBDD-Test-Framework eingerichtet werden.

Das Verfahren erfordert die folgenden Voraussetzungen:

• Sie haben ein bestehendes AWS CodeBuild-Projekt.• Ihr Projekt ist ein Node.js-Projekt, das so eingerichtet ist, dass das Jasmine-Test-Framework verwendet

werden kann.

Fügen Sie das jasmine-reporters-Paket dem Abschnitt devDependencies der package.json-Projektdatei hinzu. Dieses Paket enthält eine Sammlung von JavaScript-Reporter-Klassen, die mit Jasmineverwendet werden können.

npm install --save-dev jasmine-reporters

Wenn es noch nicht vorhanden ist, fügen Sie das test-Skript der package.json-Projektdatei hinzu. Dastest-Skript stellt sicher, dass Jasmine aufgerufen wird, wenn npm test ausgeführt wird.

{ "scripts": { "test": "npx jasmine" }}

API-Version 2016-10-06328

Page 336: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBerichterstellung mit Jasmine

AWS CodeBuild unterstützt die folgenden Jasmine-Test-Reporter:

JUnitXmlReporter

Wird verwendet, um Berichte im JunitXml-Format zu generieren.NUnitXmlReporter

Wird verwendet, um Berichte im NunitXml-Format zu generieren.

Ein Node.js-Projekt mit Jasmine hat standardmäßig ein spec-Unterverzeichnis, das die Jasmine-Konfiguration und Testskripte enthält.

Um Jasmine so zu konfigurieren, dass Berichte im JunitXML-Format generiert werden, instanziieren Sieden JUnitXmlReporter-Reporter, indem Sie den folgenden Code zu Ihren Tests hinzufügen.

var reporters = require('jasmine-reporters');

var junitReporter = new reporters.JUnitXmlReporter({ savePath: <test report directory>, filePrefix: <report filename>, consolidateAll: true});

jasmine.getEnv().addReporter(junitReporter);

Um Jasmine so zu konfigurieren, dass Berichte im NunitXML-Format generiert werden, instanziieren Sieden NUnitXmlReporter-Reporter, indem Sie den folgenden Code zu Ihren Tests hinzufügen.

var reporters = require('jasmine-reporters');

var nunitReporter = new reporters.NUnitXmlReporter({ savePath: <test report directory>, filePrefix: <report filename>, consolidateAll: true});

jasmine.getEnv().addReporter(nunitReporter)

Die Testberichte werden in die von angegebene Datei exportiert <test report directory>/<reportfilename>.

Aktualisieren Sie die folgenden Abschnitte in Ihrer buildspec.yml-Datei oder fügen Sie sie hinzu.

version: 0.2

phases: pre_build: commands: - npm install build: commands: - npm build - npm test

reports: jasmine_reports: files: - <report filename> file-format: JUNITXML base-directory: <test report directory>

API-Version 2016-10-06329

Page 337: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBerichterstellung mit Jest

Wenn Sie das NunitXml-Berichtsformat verwenden, ändern Sie den file-format-Wert in den folgendenWert.

file-format: NUNITXML

Einrichten von Testberichten mit JestDas folgende Verfahren veranschaulicht, wie Testberichte in AWS CodeBuild mit dem Jest-Test-Framework eingerichtet werden.

Das Verfahren erfordert die folgenden Voraussetzungen:

• Sie haben ein bestehendes AWS CodeBuild-Projekt.• Ihr Projekt ist ein Node.js-Projekt, das so eingerichtet ist, dass das Jest-Test-Framework verwendet

werden kann.

Fügen Sie das jest-junit-Paket dem Abschnitt devDependencies der package.json-Projektdateihinzu. AWS CodeBuild verwendet dieses Paket, um Berichte im JunitXml-Format zu generieren.

npm install --save-dev jest-junit

Wenn es noch nicht vorhanden ist, fügen Sie das test-Skript der package.json-Projektdatei hinzu. Dastest-Skript stellt sicher, dass Jest aufgerufen wird, wenn npm test ausgeführt wird.

{ "scripts": { "test": "jest" }}

Konfigurieren Sie Jest, um den JunitXml-Reporter zu verwenden, indem Sie der Jest-KonfigurationsdateiFolgendes hinzufügen. Wenn Ihr Projekt keine Jest-Konfigurationsdatei enthält, erstellen Sie eine Dateimit dem Namen jest.config.js im Stammverzeichnis Ihres Projekts und fügen Sie Folgendes hinzu.Die Testberichte werden in die von angegebene Datei exportiert <test report directory>/<reportfilename>.

module.exports = { reporters: [ 'default', [ 'jest-junit', { outputDirectory: <test report directory>, outputName: <report filename>, } ] ]};

Aktualisieren Sie die folgenden Abschnitte in Ihrer buildspec.yml-Datei oder fügen Sie sie hinzu.

version: 0.2

phases: pre_build: commands: - npm install build: commands:

API-Version 2016-10-06330

Page 338: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBerichterstellung mit Pytest

- npm build - npm test

reports: jest_reports: files: - <report filename> file-format: JUNITXML base-directory: <test report directory>

Einrichten von Testberichten mit PytestDas folgende Verfahren veranschaulicht, wie Testberichte AWS CodeBuild mit dem Pytest-Test-Frameworkeingerichtet werden.

Das Verfahren erfordert die folgenden Voraussetzungen:

• Sie haben ein bestehendes AWS CodeBuild-Projekt.• Ihr Projekt ist ein Python-Projekt, das so eingerichtet ist, dass das Pytest-Test-Framework verwendet

werden kann.

Fügen Sie den folgenden Eintrag entweder der build oder post_build-Phase Ihrer buildspec.yml-Datei hinzu. Dieser Code erkennt automatisch Tests im aktuellen Verzeichnis und exportiert dieTestberichte in die von angegebene Datei <test report directory>/<report filename>DerBericht verwendet das JunitXml-Format.

- python -m pytest --junitxml=<test report directory>/<report filename>

Aktualisieren Sie die folgenden Abschnitte in Ihrer buildspec.yml-Datei oder fügen Sie sie hinzu.

version: 0.2

phases: install: runtime-versions: python: 3.7 commands: - pip3 install pytest build: commands: - python -m pytest --junitxml=<test report directory>/<report filename>

reports: pytest_reports: files: - <report filename> base-directory: <test report directory> file-format: JUNITXML

Einrichten von Testberichten mit RSpecDas folgende Verfahren veranschaulicht, wie Testberichte in AWS CodeBuild mit dem RSpec-Test-Framework eingerichtet werden.

Das Verfahren erfordert die folgenden Voraussetzungen:

• Sie haben ein bestehendes AWS CodeBuild-Projekt.

API-Version 2016-10-06331

Page 339: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeabdeckungsberichte

• Ihr Projekt ist ein Ruby-Projekt, das so eingerichtet ist, dass das RSpec-Testframework zu verwendetwerden kann.

Aktualisieren Sie die folgenden Abschnitte in Ihrer buildspec.yml-Datei oder fügen Sie sie hinzu. DieserCode führt die Tests in der <test source directory> und exportiert die Testberichte in die Datei, dievon <test report directory>/<report filename>Der Bericht verwendet das JunitXml-Format.

version: 0.2

phases: install: runtime-versions: ruby: 2.6 pre_build: commands: - gem install rspec - gem install rspec_junit_formatter build: commands: - rspec <test source directory>/* --format RspecJunitFormatter --out <test report directory>/<report filename>reports: rspec_reports: files: - <report filename> base-directory: <test report directory> file-format: JUNITXML

CodeabdeckungsberichteCodeBuild Mit können Sie Codeabdeckungsberichte für Ihre Tests erstellen. Die folgendenCodeabdeckungsberichte werden bereitgestellt:

Leitungsabdeckung

Die Zeilenabdeckung misst, wie viele Aussagen Ihre Tests abdecken. Eine Anweisung ist eine einzelneAnweisung, die keine Kommentare oder Bedingungen enthält.

line coverage = (total lines covered)/(total number of lines)

Niederlassungsabdeckung

Die Filialabdeckung misst, wie viele Filialen, die Ihre Tests abdecken, aus jedem möglichen Zweigeiner Kontrollstruktur, wie z. B. if oder case Erklärung.

branch coverage = (total branches covered)/(total number of branches)

Folgende Dateiformate für Codeabdeckungsberichte werden unterstützt:

• JaCoCo-XML-Datei• EinfachesCov-JSON¹• XML-Datei kopieren• Cobertura-XML-Datei

¹

API-Version 2016-10-06332

Page 340: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchEinen Codeabdeckungsbericht erstellen

Einen Codeabdeckungsbericht erstellenUm einen Codeabdeckungsbericht zu erstellen, führen Sie ein Build-Projekt aus, das mit mindestenseiner Codeabdeckungsberichtsgruppe in seiner Build-Spezifikationsdatei konfiguriert ist. AWS CodeBuildinterpretiert die Ergebnisse der Codeabdeckung und stellt einen Codeabdeckungsbericht für dieAusführung bereit. Für jeden nachfolgenden Build, der dieselbe buildspec-Datei verwendet, wird ein neuerTestbericht generiert.

So erstellen Sie einen Testbericht:

1. Erstellen eines Build-Projekts () Weitere Informationen finden Sie unter Erstellen eines Build-Projektsin AWS CodeBuild (p. 206).

2. Konfigurieren Sie die Build-Spezifikationsdatei Ihres Projekts mit Testberichtsinformationen:

a. Hinzufügen eines reports: und geben Sie den Namen für Ihre Berichtsgruppe an. AWSCodeBuild erstellt eine Berichtsgruppe für Sie unter Verwendung Ihres Projektnamens und desNamens, den Sie im Format angegeben haben project-name-report-group-name-in-buildspec. (z. B.. Wenn Sie bereits über eine Berichtsgruppe verfügen, die Sie verwendenmöchten, geben Sie ihren ARN an. Wenn Sie den Namen anstelle des ARN verwenden, AWSCodeBuild erstellt eine neue Berichtsgruppe. Weitere Informationen finden Sie im Reports syntaxin the buildspec file.

b. Geben Sie unter der Berichtsgruppe den Speicherort der Dateien an, dieCodeabdeckungsergebnisse enthalten. Wenn Sie mehr als eine Berichtsgruppe verwenden,geben Sie die Speicherorte der Ergebnisdateien für jede Berichtsgruppe an. Jedes Mal, wennIhr Build-Projekt ausgeführt wird, wird ein neuer Codeabdeckungsbericht erstellt. WeitereInformationen finden Sie im Angeben der Testdateien (p. 314).

Dies ist ein Beispiel, das einen Codeabdeckungsbericht für eine JaCoCo XML-Ergebnisdateigeneriert, die sich in Test-results/jacoco-coverage-report.xml.

reports: jacoco-report: files: - 'test-results/jacoco-coverage-report.xml' file-format: 'JACOCOXML'

c. Im Fenster commands Abschnitt der build oder post_build Sequenz, geben Sie die Befehlean, die Codeabdeckungsanalyse ausführen. Weitere Informationen finden Sie im Angeben derTestbefehle (p. 314).

3. Führen Sie einen Build des Build-Projekts aus. Weitere Informationen finden Sie im Ausführen einesBuild in AWS CodeBuild (p. 279).

4. Wenn der Build abgeschlossen ist, wählen Sie den neuen Build Run unter Build history (Build-Verlauf)auf Ihrer Projektseite aus. Auswählen Berichte um den Codeabdeckungsbericht anzuzeigen. WeitereInformationen finden Sie im Anzeigen von Testberichten für einen Build (p. 327).

API-Version 2016-10-06333

Page 341: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchProtokollieren von AWS CodeBuild-

API-Aufrufen mit AWS CloudTrail

Protokollierung und Überwachung inAWS CodeBuild

Die Überwachung ist ein wichtiger Teil der Aufrechterhaltung der Zuverlässigkeit, Verfügbarkeit undLeistung von AWS CodeBuild und Ihrer AWS-Lösungen. Sammeln Sie Überwachungsdaten allerBestandteile Ihrer AWS-Lösung, damit Sie Ausfälle an mehreren Punkten leichter debuggen können, sofernsie auftreten. AWS bietet die folgenden Tools für die Überwachung Ihrer CodeBuild-Ressourcen und -Builds und für die Reaktion auf potenzielle Vorfälle.

Themen• Protokollieren von AWS CodeBuild-API-Aufrufen mit AWS CloudTrail (p. 334)• Überwachung von AWS CodeBuild (p. 336)

Protokollieren von AWS CodeBuild-API-Aufrufen mitAWS CloudTrail

AWS CodeBuild ist in AWS CloudTrail integriert. Dies ist ein Service, der die Aktionen eines Benutzers,einer Rolle oder eines AWS-Service in CodeBuild aufzeichnet. CloudTrail erfasst alle API-Aufrufe fürCodeBuild als Ereignisse, einschließlich Aufrufen von der CodeBuild-Konsole und von Code-Aufrufenan die CodeBuild-APIs. Wenn Sie einen Trail erstellen, können Sie die kontinuierliche Bereitstellung vonCloudTrail-Ereignissen an einen S3-Bucket, einschließlich von Ereignissen für CodeBuild, aktivieren. Auchwenn Sie keinen Trail konfigurieren, können Sie die neuesten Ereignisse in der CloudTrail-Konsole in Eventhistory (Ereignisverlauf) anzeigen. Mit den von CloudTrail gesammelten Informationen können Sie die anCodeBuild gestellte Anfrage, die IP-Adresse, von der die Anfrage gestellt wurde, den Initiator der Anfrage,den Zeitpunkt der Anfrage und weitere Angaben bestimmen.

Weitere Informationen zu CloudTrail finden Sie im AWS CloudTrail User Guide.

AWS CodeBuild-Informationen in CloudTrailCloudTrail wird beim Erstellen Ihres AWS-Kontos für Sie aktiviert. Die in CodeBuild auftretenden Aktivitätenwerden als CloudTrail-Ereignis zusammen mit anderen AWS-Serviceereignissen in Event history(Ereignisverlauf) aufgezeichnet. Sie können die neusten Ereignisse in Ihrem AWS-Konto anzeigen, suchenund herunterladen. Weitere Informationen finden Sie unter Anzeigen von Ereignissen mit dem CloudTrail-Ereignisverlauf im AWS CloudTrail User Guide.

Erstellen Sie für eine fortlaufende Aufzeichnung der Ereignisse in Ihrem AWS-Konto, darunter Ereignissefür CodeBuild, einen Trail. Ein Trail ermöglicht CloudTrail die Übermittlung von Protokolldateien an einenS3-Bucket. Wenn Sie einen Pfad in der Konsole anlegen, gilt dieser standardmäßig für alle Regionen.Der Trail protokolliert Ereignisse aus allen Regionen in der AWS-Partition und stellt die Protokolldateien indem S3-Bucket bereit, den Sie angeben. Sie können andere AWS-Services konfigurieren, um die in denCloudTrail-Protokollen erfassten Ereignisdaten weiter zu analysieren und entsprechend zu agieren. WeitereInformationen finden Sie unter:

• Übersicht zum Erstellen eines Trails• In CloudTrail unterstützte Services und Integrationen

API-Version 2016-10-06334

Page 342: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchGrundlagen zu AWS CodeBuild-Protokolldateieinträgen

• Konfigurieren von Amazon SNS-Benachrichtigungen für CloudTrail• Empfangen von CloudTrail-Protokolldateien aus mehreren Regionen und Empfangen von CloudTrail-

Protokolldateien aus mehreren Konten

Alle CodeBuild-Aktionen werden von CloudTrail protokolliert und in der CodeBuild-API-Referenzdokumentiert. Beispielsweise werden durch Aufrufe der Aktionen CreateProject (in der AWS CLIcreate-project), StartBuild (in der AWS CLI start-project) und UpdateProject (in der AWSCLI update-project) Einträge in den CloudTrail-Protokolldateien generiert.

Jedes Event oder jeder Protokolleintrag enthält Informationen über den Ersteller der Anfrage. Anhand derIdentitätsinformationen zur Benutzeridentität können Sie Folgendes bestimmen:

• Ob die Anforderung mit Root- oder IAM-Benutzeranmeldeinformationen ausgeführt wurde.• Ob die Anforderung mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen

föderierten Benutzer ausgeführt wurde.• Ob die Anforderung von einem anderen AWS-Service getätigt wurde.

Weitere Informationen finden Sie unter CloudTrail-Element userIdentity im AWS CloudTrail User Guide.

Grundlagen zu AWS CodeBuild-ProtokolldateieinträgenEin Trail ist eine Konfiguration, durch die Ereignisse an den von Ihnen angegebenen S3-Bucketübermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten. EinEreignis repräsentiert eine einzelne Anforderung aus einer beliebigen Quelle und enthält unter anderemInformationen über die angeforderte Aktion, das Datum und die Uhrzeit der Aktion sowie über dieAnforderungsparameter. CloudTrail-Protokolldateien sind kein geordnetes Stacktrace der öffentlichen API-Aufrufe und erscheinen daher nicht in einer bestimmten Reihenfolge.

Note

Zum Schutz vertraulicher Informationen wird in CodeBuild-Protokollen Folgendes ausgeblendet:

• AWS-Zugriffsschlüssel-IDs. Weitere Informationen finden Sie unter Verwalten derZugriffsschlüssel für IAM-Benutzer im AWS Identity and Access Management-Benutzerhandbuch.

• Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unterSystems Manager Parameter Store und in den Anleitungen zur Systems Manager ParameterStore-Konsole im Amazon EC2 Systems Manager Benutzerhandbuch.

• Mit dem AWS Secrets Manager angegebene Zeichenfolgen. Weitere Informationen finden Sieunter Schlüsselverwaltung (p. 359).

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die Erstellung eines Build-Projekts inCodeBuild demonstriert.

{ "eventVersion": "1.05", "userIdentity": { "type": "FederatedUser", "principalId": "account-ID:user-name", "arn": "arn:aws:sts::account-ID:federated-user/user-name", "accountId": "account-ID", "accessKeyId": "access-key-ID", "sessionContext": { "attributes": {

API-Version 2016-10-06335

Page 343: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÜberwachung von AWS CodeBuild

"mfaAuthenticated": "false", "creationDate": "2016-09-06T17:59:10Z" }, "sessionIssuer": { "type": "IAMUser", "principalId": "access-key-ID", "arn": "arn:aws:iam::account-ID:user/user-name", "accountId": "account-ID", "userName": "user-name" } } }, "eventTime": "2016-09-06T17:59:11Z", "eventSource": "codebuild.amazonaws.com", "eventName": "CreateProject", "awsRegion": "region-ID", "sourceIPAddress": "127.0.0.1", "userAgent": "user-agent", "requestParameters": { "awsActId": "account-ID" }, "responseElements": { "project": { "environment": { "image": "image-ID", "computeType": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "name": "codebuild-demo-project", "description": "This is my demo project", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project:project-ID", "encryptionKey": "arn:aws:kms:region-ID:key-ID", "timeoutInMinutes": 10, "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket", "type": "S3", "packaging": "ZIP", "outputName": "MyOutputArtifact.zip" }, "serviceRole": "arn:aws:iam::account-ID:role/CodeBuildServiceRole", "lastModified": "Sep 6, 2016 10:59:11 AM", "source": { "type": "GITHUB", "location": "https://github.com/my-repo.git" }, "created": "Sep 6, 2016 10:59:11 AM" } }, "requestID": "9d32b228-745b-11e6-98bb-23b67EXAMPLE", "eventID": "581f7dd1-8d2e-40b0-aeee-0dbf7EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "account-ID" }

Überwachung von AWS CodeBuildSie können Amazon CloudWatch verwenden, um Ihre Builds zu überwachen, Fehler zu melden undgegebenenfalls automatisch Maßnahmen zu ergreifen. Sie können Ihre Builds auf zwei Ebenenüberwachen:

API-Version 2016-10-06336

Page 344: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCloudWatch-Metriken.

Projektebene

Diese Metriken sind für alle im angegebenen Projekt erstellt. Um die Metriken für ein Projektanzuzeigen, geben Sie ProjectName für die Dimension in CloudWatch an.

AWS Kontoebene

Diese Metriken sind für alle erstellt, die in einem Konto erstellt werden. Um Metriken auf der AWS-Kontoebene anzuzeigen, geben Sie keine Dimension in CloudWatch ein. Die Metriken für dieRessourcennutzung werden nicht im AWS Kontoebene.

CloudWatch-Metriken zeigen das Verhalten Ihres Builds im Verlauf der Zeit. Beispielsweise können SieFolgendes überwachen:

• Wie viele Builds in einem Build-Projekt oder einem AWS-Konto im Laufe der Zeit versucht wurden.• Wie viele Builds in einem Build-Projekt oder einem AWS-Konto im Laufe der Zeit erfolgreich erstellt

wurden.• Wie viele Builds in einem Build-Projekt oder einem AWS-Konto im Laufe der Zeit fehlgeschlagen haben.• Wie viel Zeit CodeBuild zur Ausführung von Builds in einem Build-Projekt oder einem AWS-Konto im

Laufe der Zeit aufgewendet hat.• Ressourcennutzung für Build oder ein gesamtes Build-Projekt erstellen. Die Erstellung von Metriken für

die Ressourcennutzung beinhaltet Metriken wie CPU, Speicher und Speicherauslastung.

Weitere Informationen finden Sie im Überwachung CodeBuild Metriken (p. 341).

CloudWatch-Metriken von CodeBuildDie folgenden Metriken können nachverfolgt werden pro AWS Konto oder Bauprojekt.

Aufbaudauer

Misst die Dauer der BUILD-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââBuilds

Misst die Anzahl der ausgelösten Builds.

Einheiten: Count

Gültig CloudWatch Statistiken: Sum (Summe)Downloaddauer

Misst die Dauer der DOWNLOAD_SOURCE-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââDuration (Dauer)

Misst die Dauer aller Builds im Laufe der Zeit.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), Mââ

API-Version 2016-10-06337

Page 345: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCloudWatch-Metriken.

FailedBuilds

Misst die Anzahl der Builds, die aufgrund des Clientfehlers oder einer Zeitüberschreitungfehlgeschlagen sind.

Einheiten: Count

Gültig CloudWatch Statistiken: Sum (Summe)EndgültigDauer

Misst die Dauer der FINALIZING-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââDauer der Rate

Misst die Dauer der INSTALL-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââNachbau

Misst die Dauer der POST_BUILD-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââVorbildung

Misst die Dauer der PRE_BUILD-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââBereitstellungsdauer

Misst die Dauer der PROVISIONING-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââWarteschlangendauer

Misst die Dauer der QUEUED-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââVormittenDauer

Misst die Dauer der SUBMITTED-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââSucceededBuilds

Misst die Anzahl der erfolgreichen Builds.

API-Version 2016-10-06338

Page 346: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCloudWatch Ressourcennutzungsmetriken

Einheiten: Count

Gültig CloudWatch Statistiken: Sum (Summe)UploadArtefaktsDauer

Misst die Dauer der UPLOAD_ARTIFACTS-Phase des Builds.

Einheiten: Seconds (Sekunden)

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), Mââ

CodeBuild CloudWatch RessourcennutzungsmetrikenDie folgenden Metriken zur Ressourcenauslastung können verfolgt werden.

Note

CodeBuild Ressourcennutzungsmetriken sind nur in den folgenden Regionen verfügbar:

• Region Asien-Pazifik (Tokio)• Region Asien-Pazifik (Seoul)• Region Asien-Pazifik (Mumbai)• Region Asien-Pazifik (Singapur)• Region Asien-Pazifik (Sydney)• Region Kanada (Zentral)• Region Europa (Frankfurt)• Region Europa (Irland)• Region Europa (London)• Region Europa (Paris)• Region Südamerika (São Paulo)• Region USA Ost (N.-Virginia)• Region USA Ost (Ohio)• Region USA West (Nordkalifornien)• Region USA West (Oregon)

cpuused

Die Anzahl der CPU-Einheiten der zugewiesenen Verarbeitung, die vom Baucontainer verwendetwerden.

Einheiten: CPU-Einheiten

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââcpuutilizedProzent

Der Prozentsatz der zugewiesenen Verarbeitung, die vom Baucontainer verwendet wird.

Einheiten: Prozent

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââSpeicherverwendet

Die Anzahl der Speicher des Speichers, die vom Baucontainer verwendet werden.

API-Version 2016-10-06339

Page 347: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCloudWatch-Dimensionen

Einheiten: Megabytes

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââMemoryutilizedProzent

Der Prozentsatz des zugewiesenen Speichers, der vom Baucontainer verwendet wird.

Einheiten: Prozent

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââStoragereadbytes

Die vom Baucontainer verwendete Speichergeschwindigkeit.

Einheiten: Bytes/Sekunde

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), MââSpeicherplatzbytes

Die vom Baucontainer verwendete Speicherschreibgeschwindigkeit.

Einheiten: Bytes/Sekunde

Gültig CloudWatch Statistiken: Mêèmìîcààl (rêèmêèndêèd), Mââ

CloudWatch-Dimensionen von CodeBuildCodeBuild bietet Folgendes CloudWatch Metrikdimensionen. Wenn keine dieser Optionen festgelegt sind,sind die Metriken für den aktuellen AWS Konto.

Buildid, Buildnumber, Projectname

Metriken werden für eine Build-Kennung, Build-Nummer und Projektname bereitgestellt.ProjectName

Metriken werden für einen Projektnamen bereitgestellt.

CloudWatch-Alarme von CodeBuildSie können die CloudWatch-Konsole verwenden, um Alarme basierend auf CodeBuild-Metriken zuerstellen. Auf diese Weise können Sie reagieren, wenn ein Problem mit Ihren Builds auftritt. Die beidenpraktischsten Metriken mit Alarmen sind:

• FailedBuild. Sie können einen Alarm erstellen, der ausgelöst wird, wenn eine bestimmte Anzahlfehlgeschlagener Builds innerhalb einer vorgegebenen Anzahl von Sekunden erkannt wird. inCloudWatch, Sie geben die Anzahl der Sekunden an und wie viele Fehler beim Erstellen von Auslösernerzeugt werden.

• Duration. Sie können einen Alarm erstellen, der ausgelöst wird, wenn ein Build länger als erwartetdauert. Sie geben an, wie viele Sekunden vergehen müssen, nachdem ein Build gestartet wurde undbevor ein Build abgeschlossen wurde, bevor der Alarm ausgelöst wird.

Weitere Informationen zum Erstellen von Alarmen für CodeBuild-Metriken finden Sie unter Überwachen vonBuilds mit CloudWatch-Alarmen (p. 350). Weitere Informationen über Alarme finden Sie unter Erstellenvon Amazon CloudWatch-Alarmen im Amazon CloudWatch-Benutzerhandbuch.

API-Version 2016-10-06340

Page 348: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Metriken.

Überwachung CodeBuild MetrikenAWS CodeBuild überwacht Funktionen für Sie und meldet Metriken über Amazon CloudWatch. DieseMetriken umfassen die Anzahl der gesamten Builds, fehlgeschlagene Builds, erfolgreiche Builds und dieDauer des Builds.

Sie können Metriken für CodeBuild mithilfe der CodeBuild-Konsole oder der CloudWatch-Konsoleüberwachen. Die folgenden Verfahren zeigt, wie Sie auf Metriken zugreifen.

Themen• Zugriff auf Build-Metriken (CodeBuild-Konsole) (p. 341)• Zugriff auf Build-Metriken (Amazon CloudWatch-Konsole) (p. 341)

Zugriff auf Build-Metriken (CodeBuild-Konsole)Note

Sie können die Metriken oder die Diagramme nicht anpassen, die sie im CodeBuild Konsole.Wenn Sie die Anzeige anpassen möchten, verwenden Sie die Amazon CloudWatch die Konsole,um Ihre Metriken zu erstellen.

Metriken auf Kontoebene

So greifen Sie auf AWS-Metriken auf Konto-Ebene zu

1. Melden Sie sich an der AWS Management Console an und öffnen Sie die AWS CodeBuild-Konsoleunter https://console.aws.amazon.com/codesuite/codebuild/home.

2. Wählen Sie im Navigationsbereich Account metrics (Konto-Metriken) aus.

Metriken auf Projektebene

Zugriff auf Metriken auf Projektebene

1. Melden Sie sich an der AWS Management Console an und öffnen Sie die AWS CodeBuild-Konsoleunter https://console.aws.amazon.com/codesuite/codebuild/home.

2. Wählen Sie im linken Navigationsbereich Build projects aus.3. Wählen Sie in der Liste der Build-Projekte in der Spalte Name das Projekt aus, in dem Sie die Metriken

anzeigen möchten.4. Wählen Sie die Registerkarte Metrics aus.

Zugriff auf Build-Metriken (Amazon CloudWatch-Konsole)Sie können die Metriken und die Diagramme, die verwendet werden, um sie mit der CloudWatch Konsole.

Metriken auf Kontoebene

So greifen Sie auf -Metriken auf Konto-Ebene zu

1. Melden Sie sich bei der AWS Management Console an. Öffnen Sie die CloudWatch-Konsole unterhttps://console.aws.amazon.com/cloudwatch/.

2. Wählen Sie im Navigationsbereich Metrics aus.3. Wählen Sie auf der Registerkarte All metrics (Alle Metriken) auf CodeBuild.

API-Version 2016-10-06341

Page 349: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Metriken.

API-Version 2016-10-06342

Page 350: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Metriken.

4. Wählen Sie Account Metrics (Konto-Metriken) aus.5. Wählen Sie ein oder mehrere Projekte und eine oder mehrere Metriken. Sie können für jedes Projekt

die Metriken SucceededBuilds, FailedBuilds, Builds und Duration auswählen. Alle ausgewähltenProjekt- und Metrik-Kombinationen werden in dem Diagramm auf der Seite angezeigt.

Metriken auf Projektebene

Zugriff auf Metriken auf Projektebene

1. Melden Sie sich bei der AWS Management Console an. Öffnen Sie die CloudWatch-Konsole unterhttps://console.aws.amazon.com/cloudwatch/.

2. Wählen Sie im Navigationsbereich Metrics aus.3. Wählen Sie auf der Registerkarte All metrics (Alle Metriken) auf CodeBuild.

API-Version 2016-10-06343

Page 351: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Metriken.

API-Version 2016-10-06344

Page 352: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild Ressourcennutzungsmetriken

4. Wählen Sie By Project (Nach Projekt).5. Wählen Sie eine oder mehrere Projekt- und Metrikkombinationen. Sie können für jedes Projekt die

Metriken SucceededBuilds, FailedBuilds, Builds und Duration auswählen. Alle ausgewählten Projekt-und Metrik-Kombinationen werden in dem Diagramm auf der Seite angezeigt.

6. (Optional) Sie können Ihre Metriken und Diagramme anpassen. Aus der Dropdown-Liste in derDropdown-Liste Statistik , können Sie eine andere Statistik auswählen, die angezeigt werden soll.Alternativ können Sie auch aus dem Dropdown-Menü in der Spalte Period (Zeitraum) einen anderenZeitraum für die Überwachung der Metriken auswählen.

Weitere Informationen erhalten Sie unter Darstellen von Metriken in grafischer Form und Anzeigen derverfügbaren Metriken im Amazon CloudWatch-Benutzerhandbuch.

Überwachung CodeBuildRessourcennutzungsmetrikenAWS CodeBuild überwachen die Ressourcennutzung in Ihrem Auftrag und berichten Metriken überAmazon CloudWatch. Dazu gehören Metriken wie CPU, Speicher und Speicherauslastung.

Sie können die CodeBuild Konsole oder CloudWatch Konsole zur Überwachung der Ressourcenauslastungfür CodeBuild. Die folgenden Verfahren zeigen Ihnen, wie Sie auf Ihre Ressourcen-Nutzungsmetrikenzugreifen.

Note

CodeBuild Ressourcennutzungsmetriken sind nur in den folgenden Regionen verfügbar:

• Region Asien-Pazifik (Tokio)• Region Asien-Pazifik (Seoul)• Region Asien-Pazifik (Mumbai)• Region Asien-Pazifik (Singapur)• Region Asien-Pazifik (Sydney)• Region Kanada (Zentral)• Region Europa (Frankfurt)• Region Europa (Irland)• Region Europa (London)• Region Europa (Paris)• Region Südamerika (São Paulo)• Region USA Ost (N.-Virginia)• Region USA Ost (Ohio)• Region USA West (Nordkalifornien)• Region USA West (Oregon)

Themen• Zugriff auf Ressourcennutzungsmetriken (CodeBuild Konsole) (p. 346)• Zugriff auf Ressourcennutzungsmetriken (Amazon CloudWatch Konsole) (p. 346)

API-Version 2016-10-06345

Page 353: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild Ressourcennutzungsmetriken

Zugriff auf Ressourcennutzungsmetriken (CodeBuild Konsole)Note

Sie können die Metriken oder die Diagramme nicht anpassen, die sie im CodeBuild Konsole.Wenn Sie die Anzeige anpassen möchten, verwenden Sie die Amazon CloudWatch die Konsole,um Ihre Metriken zu erstellen.

Ressourcenauslastung auf Projektebene

So greifen Sie auf Metriken auf Projektebene zu

1. Melden Sie sich an der AWS Management Console an und öffnen Sie die AWS CodeBuild-Konsoleunter https://console.aws.amazon.com/codesuite/codebuild/home.

2. Wählen Sie im linken Navigationsbereich Build projects aus.3. In der Liste der Build-Projekte in der Name die Spalte, die Sie die Nutzungsmetriken für anzeigen

möchten.4. Wählen Sie die Registerkarte Metrics aus. Die Metriken der Ressourcenauslastung werden im

Ressourcennutzungsmetriken Abschnitt.5. So zeigen Sie die Metriken für Ressourcenauslastung auf Projektebene im Bereich CloudWatch

Konsole, wählen Sie In Cloudwatch anzeigen im Ressourcennutzungsmetriken Abschnitt.

Metriken zur Ressourcennutzung auf Build-Ebene

So greifen Sie auf Metriken zur Ressourcenauslastung auf Build-Ebene zu

1. Melden Sie sich an der AWS Management Console an und öffnen Sie die AWS CodeBuild-Konsoleunter https://console.aws.amazon.com/codesuite/codebuild/home.

2. Wählen Sie im Navigationsbereich Build history aus.3. In der Liste der Builds in der Lauf erstellen die Spalte, die Sie auswählen möchten, um die

Nutzungsmetriken für anzuzeigen.4. Wählen Sie die Ressourcennutzung Registerkarte.5. So zeigen Sie die Metriken für die Ressourcenauslastung auf Build-Ebene an CloudWatch Konsole,

wählen Sie In Cloudwatch anzeigen im Ressourcennutzungsmetriken Abschnitt.

Zugriff auf Ressourcennutzungsmetriken (Amazon CloudWatchKonsole)Die Amazon CloudWatch Konsole kann verwendet werden, um CodeBuild Ressourcennutzungsmetriken.

Ressourcenauslastung auf Projektebene

So greifen Sie auf Metriken auf Projektebene zu

1. Melden Sie sich bei der AWS Management Console an. Öffnen Sie die CloudWatch-Konsole unterhttps://console.aws.amazon.com/cloudwatch/.

2. Wählen Sie im Navigationsbereich Metrics aus.3. Wählen Sie auf der Registerkarte All metrics (Alle Metriken) auf CodeBuild.

API-Version 2016-10-06346

Page 354: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild Ressourcennutzungsmetriken

API-Version 2016-10-06347

Page 355: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild Ressourcennutzungsmetriken

4. Wählen Sie By Project (Nach Projekt).5. Wählen Sie ein oder mehrere Projekt- und Metrikkombinationen, die zum Diagramm hinzugefügt

werden sollen. Alle ausgewählten Projekt- und Metrik-Kombinationen werden in dem Diagramm auf derSeite angezeigt.

6. (Optional) Sie können Ihre Metriken und Diagramme vom Grafisch dargestellte Metriken Registerkarte.Aus der Dropdown-Liste in der Dropdown-Liste Statistik , können Sie eine andere Statistik auswählen,die angezeigt werden soll. Alternativ können Sie auch aus dem Dropdown-Menü in der Spalte Period(Zeitraum) einen anderen Zeitraum für die Überwachung der Metriken auswählen.

Weitere Informationen finden Sie unter Grafische Darstellung von Metriken und Verfügbare Metrikenanzeigen im Amazon CloudWatch Benutzerhandbuch.

Metriken zur Ressourcennutzung auf Build-Ebene

So greifen Sie auf Metriken zur Ressourcenauslastung auf Build-Ebene zu

1. Melden Sie sich bei der AWS Management Console an. Öffnen Sie die CloudWatch-Konsole unterhttps://console.aws.amazon.com/cloudwatch/.

2. Wählen Sie im Navigationsbereich Metrics aus.3. Wählen Sie auf der Registerkarte All metrics (Alle Metriken) auf CodeBuild.

API-Version 2016-10-06348

Page 356: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild Ressourcennutzungsmetriken

API-Version 2016-10-06349

Page 357: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

4. Wählen Buildid, Buildnumber, Projectname.5. Wählen Sie eine oder mehrere Build- und Metrikkombinationen, die zum Diagramm hinzugefügt

werden sollen. Alle ausgewählten Build- und Metrikkombinationen werden im Diagramm auf der Seiteangezeigt.

6. (Optional) Sie können Ihre Metriken und Diagramme vom Grafisch dargestellte Metriken Registerkarte.Aus der Dropdown-Liste in der Dropdown-Liste Statistik , können Sie eine andere Statistik auswählen,die angezeigt werden soll. Alternativ können Sie auch aus dem Dropdown-Menü in der Spalte Period(Zeitraum) einen anderen Zeitraum für die Überwachung der Metriken auswählen.

Weitere Informationen finden Sie unter Grafische Darstellung von Metriken und Verfügbare Metrikenanzeigen im Amazon CloudWatch Benutzerhandbuch.

Überwachen von Builds mit CloudWatch-AlarmenSie können einen CloudWatch-Alarm für Ihre Builds erstellen. Ein Alarm überwacht eine Metrik über einenbestimmten, von Ihnen definierten Zeitraum und führt eine oder mehrere Aktionen durch, die vom Wertder Metrik im Verhältnis zu einem bestimmten Schwellenwert in einer Reihe von Zeiträumen abhängt.Mit der nativen CloudWatch-Alarmfunktionalität können Sie eine der von CloudWatch unterstütztenAktionen angeben, die ausgeführt werden soll, wenn ein Schwellenwert überschritten wird. Sie könnenbeispielsweise festlegen, dass eine Amazon SNS-Benachrichtigung gesendet wird, wenn mehr als dreiBuilds in Ihrem Konto innerhalb von 15 Minuten fehlschlagen.

So erstellen Sie einen CloudWatch-Alarm für eine CodeBuild-Metrik

1. Melden Sie sich bei der AWS Management Console an. Öffnen Sie die CloudWatch-Konsole unterhttps://console.aws.amazon.com/cloudwatch/.

2. Klicken Sie im Navigationsbereich auf Alarme.3. Wählen Sie Create Alarm aus.4. Wählen Sie unter CloudWatch Metrics by Category (CloudWatch-Metriken nach Kategorie) die Option

CodeBuild aus. Wenn Sie wissen, dass Sie nur Metriken auf Projektebene benötigen, wählen Sie ByProject (Nach Projekt). Wenn Sie wissen, dass Sie nur Metriken auf Kontoebene benötigen, wählenSie Account Metrics (Kontometriken).

API-Version 2016-10-06350

Page 358: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

API-Version 2016-10-06351

Page 359: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

5. Wählen Sie unter Create Alarm (Alarm erstellen) Select Metric (Metrik auswahlen), falls es noch nichtausgewählt ist.

6. Wählen Sie eine Metrik aus, für die Sie einen Alarm erstellen möchten. Die Optionen sind By Project(Nach Projekt) oder Account Metrics (Konto-Metriken).

API-Version 2016-10-06352

Page 360: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

API-Version 2016-10-06353

Page 361: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

7. Wählen Sie Next (Weiter) und anschließend Define Alarm (Alarm definieren), und erstellen Sie dannIhren Alarm. Weitere Informationen finden Sie unter Erstellen von Amazon CloudWatch-Alarmen imAmazon CloudWatch-Benutzerhandbuch. Weitere Informationen zum Einrichten von Amazon SNS-Benachrichtigungen, wenn ein Alarm ausgelöst wird, finden Sie unter Einrichten von Amazon SNS-Benachrichtigungen im Amazon SNS-Entwicklerhandbuch.

Das folgende Beispiel zeigt einen Alarm, der eine Amazon SNS-Benachrichtigung an eine Liste mitdem Namen codebuild-sns-notifications sendet, wenn ein oder mehrere fehlgeschlagene Buildsinnerhalb von 15 Minuten erkannt werden. Die 15 Minuten werden berechnet, indem der Fünf-Minuten-Zeitraum mit den drei angegebenen Datenpunkten multipliziert wird. Die für einen Alarm aufgrundfehlgeschlagener Builds angezeigten Informationen sind für Projektebene und Kontoebene identisch.

API-Version 2016-10-06354

Page 362: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

API-Version 2016-10-06355

Page 363: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCodeBuild-Alarme

8. Wählen Sie Create Alarm aus.

API-Version 2016-10-06356

Page 364: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDatenschutz

Sicherheit in AWS CodeBuildCloud-Sicherheit hat bei AWS höchste Priorität. Als AWS-Kunde profitieren Sie von einer Rechenzentrums-und Netzwerkarchitektur, die zur Erfüllung der Anforderungen von Organisationen entwickelt wurden, fürdie Sichherheit eine kritische Bedeutung hat.

Sicherheit und Compliance stellen eine gemeinsame Verantwortung von AWS und Ihnen dar. Diesesgemeinsame Modell kann für Sie eine Erleichterung des Betriebs bedeuten, da AWS die Komponentenvom Host-Betriebssystem und der Virtualisierungsebene bis hin zur physischen Sicherheit der Service-Einrichtungen betreibt, verwaltet und steuert. Sie übernehmen die Verantwortung und die Verwaltung fürdas Gastbetriebssystem (einschließlich Updates und Sicherheits-Patches) und andere damit verbundeneAnwendungssoftware. Sie sind auch zuständig für die Konfiguration der von AWS bereitgestellten Firewallfür die Sicherheitsgruppe. Ihre Aufgaben sind je nach genutzten Services, deren Integration in Ihre IT-Umgebung sowie den geltenden Gesetzen und Vorschriften unterschiedlich. Aus diesem Grund sollten Siesich gut überlegen, welche Services in Ihrer Organisation verwendet werden sollen. Weitere Informationenfinden Sie unter Modell der geteilten Verantwortung.

Mehr Informationen dazu, wie Sie Ihre CodeBuild-Ressourcen schützen, finden Sie in den folgendenThemen.

Themen• Datenschutz in AWS CodeBuild (p. 357)• Identity and Access Management in AWS CodeBuild (p. 359)• Compliance-Validierung für AWS CodeBuild (p. 389)• Ausfallsicherheit in AWS CodeBuild (p. 389)• Sicherheit der Infrastruktur in AWS CodeBuild (p. 390)

Datenschutz in AWS CodeBuildAWS CodeBuild entspricht dem AWS-Modell der übergreifenden Verantwortlichkeit, das Vorschriften undRichtlinien zum Datenschutz enthält. AWS ist für den Schutz der globalen Infrastruktur verantwortlich, in deralle AWS-Services ausgeführt werden. AWS behält die Kontrolle über die in dieser Infrastruktur gehostetenDaten, einschließlich der Sicherheitskonfigurationskontrollen für den Umgang mit Kundeninhalten undpersonenbezogenen Daten. AWS-Kunden und APN-Partner, die entweder als Datenverantwortliche oderDatenverarbeiter fungieren, sind für alle personenbezogenen Daten verantwortlich, die sie in die AWSCloud einstellen.

Zum Zweck des Datenschutzes empfehlen wir, die Anmeldeinformationen für das AWS-Konto zu schützenund individuelle Benutzerkonten mit AWS Identity and Access Management (IAM) einzurichten, damit jederBenutzer nur die Berechtigungen besitzt, die er für seine beruflichen Aufgaben benötigt. Außerdem solltenSie die Daten mit folgenden Methoden schützen:

• Verwenden Sie für jedes Konto die Multi-Factor Authentication (MFA).• Verwenden Sie TLS für die Kommunikation mit AWS-Ressourcen.• Richten Sie die API und die Protokollierung von Benutzeraktivitäten mitAWS CloudTrail ein.• Verwenden Sie AWS-Verschlüsselungslösungen zusammen mit allen Standardsicherheitskontrollen in

AWS-Services.• Verwenden Sie fortgeschrittene verwaltete Sicherheits-Services wie Amazon Macie, um Unterstützung

bei der Erkennung und beim Schutz von persönlichen Daten zu erhalten, die in Amazon S3 gespeichertsind.

API-Version 2016-10-06357

Page 365: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDatenverschlüsselung

Wir empfehlen dringend, in Freitextfeldern wie z. B. im Feld Name keine sensiblen, identifizierendenInformationen wie Kontonummern von Kunden einzugeben. Dies gilt auch, wenn Sie mit CodeBuildoder anderen AWS-Services arbeiten und dabei Konsole, API, AWS CLI oder AWS-SDKs verwenden.Alle Daten, die Sie in CodeBuild oder andere Services eingeben, können in Diagnoseprotokolleaufgenommen werden. Wenn Sie eine URL für einen externen Server bereitstellen, schließen Sie keineAnmeldeinformationen zur Validierung Ihrer Anforderung an den betreffenden Server in die URL ein.

Zum Schutz vertraulicher Informationen wird in CodeBuild-Protokollen Folgendes ausgeblendet:

• AWS-Zugriffsschlüssel-IDs. Weitere Informationen finden Sie unter Verwalten der Zugriffsschlüssel fürIAM-Benutzer im AWS Identity and Access Management-Benutzerhandbuch.

• Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unter SystemsManager Parameter Store und in den Anleitungen zur Systems Manager Parameter Store-Konsole imAmazon EC2 Systems Manager Benutzerhandbuch.

• Mit dem AWS Secrets Manager angegebene Zeichenfolgen. Weitere Informationen finden Sie imSchlüsselverwaltung (p. 359).

Weitere Informationen zum Datenschutz enthält der Blog-Beitrag AWS Shared Responsibility Model andGDPR im AWS-Sicherheitsblog.

Themen:• Datenverschlüsselung (p. 358)• Schlüsselverwaltung (p. 359)• Datenschutz für Datenverkehr (p. 359)

DatenverschlüsselungVerschlüsselung ist ein wichtiger Teil der CodeBuild-Sicherheit. Manche Verschlüsselungen, wie z. B.für Daten in der Übertragung, werden standardmäßig bereitgestellt – Sie müssen nichts zu tun. AndereVerschlüsselungsmöglichkeiten, wie z. B. für Daten im Ruhezustand, können Sie konfigurieren, wenn Sieein Projekt erstellen oder aufbauen.

• Verschlüsselung von Daten im Ruhezustand – Build-Artefakte, wie z. B. ein Cache, Protokolle,exportierte Raw-Testberichtsdaten-Dateien und Build-Ergebnisse, werden standardmäßig mithilfe vonKunden-Master-Schlüsseln (CMKs) für Amazon S3 verschlüsselt, die von der AWS Key ManagementService verwaltet werden. Wenn Sie diese CMKs nicht verwenden möchten, müssen Sie einen vomKunden verwalteten CMK erstellen und konfigurieren. Weitere Informationen finden Sie unter Erstellenvon KMS-Schlüsseln und AWS Key Management Service-Konzepte im AWS Key Management Service-Benutzerhandbuch.• Sie können die ID des AWS-KMS-Schlüssels speichern, den CodeBuild zum Verschlüsseln des

Build-Ausgabeartefakts in der CODEBUILD_KMS_KEY_ID-Umgebungsvariable verwendet. WeitereInformationen finden Sie unter Umgebungsvariablen in Build-Umgebungen (p. 182).

• Sie können einen vom Kunden verwalteten CMK angeben, wenn Sie ein Build-Projekt erstellen.Weitere Informationen finden Sie unter Set the Encryption Key Using the Console und VerschlüsselnSie den Verschlüsselungsschlüssel mit der CLI.

Die Amazon Elastic Block Store-Volumes Ihrer Build-Flotte werden standardmäßig mithilfe von CMKsverschlüsselt, die von AWS verwaltet werden.

• Verschlüsselung von Daten in der Übertragung – Die gesamte Kommunikation zwischen Kunden undCodeBuild und zwischen CodeBuild und seinen nachgelagerten Abhängigkeiten wird mithilfe vonTLS-Verbindungen geschützt, die mit dem Signature Version 4-Signiervorgang signiert werden. AlleCodeBuild-Endpunkte verwenden SHA-256-Zertifikate, die von Private Zertifizierungsstelle für AWSCertificate Manager verwaltet werden. Weitere Informationen finden Sie unter Signaturprozess mitSignaturversion 4 und Was ist ACM PCA?.

API-Version 2016-10-06358

Page 366: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSchlüsselverwaltung

• Build-Artefaktverschlüsselung – CodeBuild erfordert den Zugriff auf einen AWS-KMS-CMK, um seineBuild-Ausgabeartefakte zu verschlüsseln. CodeBuild verwendet standardmäßig einen AWS KeyManagement Service-CMK für Amazon S3 in Ihrem AWS-Konto. Wenn Sie diesen CMK nicht verwendenmöchten, müssen Sie einen vom Kunden verwalteten CMK erstellen und konfigurieren. WeitereInformationen finden Sie unter Erstellen von Schlüsseln.

SchlüsselverwaltungSie können Ihre Inhalte durch Verschlüsselung vor unberechtigtem Zugriff schützen. Speichern Sie IhreVerschlüsselungsschlüssel in AWS Secrets Manager und geben Sie dann CodeBuild die Berechtigungzum Abrufen der Verschlüsselungsschlüssel von Ihrem Secrets Manager-Konto. Weitere Informationenfinden Sie unter Erstellen und Konfigurieren eines AWS KMS-CMK für CodeBuild (p. 400), Erstelleneines Build-Projekts in AWS CodeBuild (p. 206), Ausführen eines Build in AWS CodeBuild (p. 279), undLernprogramm: Speichern und Abrufen eines Geheimnisses.

Verwenden Sie die CODEBUILD_KMS_KEY-Umgebungsvariable in einem Build-Befehl für Ihren AWS KMS-Schlüssel. Weitere Informationen finden Sie im Umgebungsvariablen in Build-Umgebungen (p. 182).

Sie können Secrets Manager verwenden, um Anmeldeinformationen für eine private Registrierung zuschützen, die ein Docker-Image speichert, das für Ihre Laufzeitumgebung verwendet wird. WeitereInformationen finden Sie im Beispiel einer privaten Registrierung mit AWS Secrets Manager fürCodeBuild (p. 142).

Datenschutz für DatenverkehrSie können die Sicherheit von Builds erhöhen, indem Sie CodeBuild so konfigurieren, dass ein VPC-Schnittstellenendpunkt verwendet wird. Dafür benötigen Sie kein Internet-Gateway, kein NAT-Gerät undkein virtuelles privates Gateway. Es ist auch nicht erforderlich, PrivateLink zu konfigurieren, es wird jedochempfohlen. Weitere Informationen finden Sie im Verwenden von VPC-Endpunkten (p. 190). WeitereInformationen zu PrivateLink und VPC-Endpunkten finden Sie unter AWS-PrivateLink und Zugriff auf AWS-Services über PrivateLink.

Identity and Access Management in AWSCodeBuild

Für den Zugriff auf AWS CodeBuild sind Anmeldeinformationen erforderlich. Diese Anmeldeinformationenmüssen mit Zugriffsberechtigungen für AWS-Ressourcen, z. B. für das Speichern und Abrufen von Build-Artefakten in S3-Buckets und das Anzeigen von Amazon CloudWatch Logs für Builds, ausgestattet sein. Inden folgenden Abschnitten wird beschrieben, wie Sie mithilfe von AWS Identity and Access Management(IAM) und CodeBuild sicheren Zugriff auf Ihre Ressourcen erhalten können:

• Authentication (p. 359)• Zugriffskontrolle (p. 361)

AuthenticationSie können mit einer der folgenden Identitäten auf AWS zugreifen:

• AWS-Konto Root-Benutzer – Wenn Sie sich bei AWS anmelden, geben Sie eine E-Mail-Adresse und einPasswort an, die mit Ihrem AWS-Konto verknüpft sind. Dies sind Ihre Root-Anmeldeinformationen. Siebieten vollständigen Zugriff auf alle Ihre AWS-Ressourcen.

API-Version 2016-10-06359

Page 367: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAuthentication

Important

Aus Sicherheitsgründen empfehlen wir, die Root-Anmeldeinformationen nur zum Erstelleneines Administrator-Benutzers zu verwenden. Hierbei handelt es sich um einen IAM-Benutzermit vollständigen Berechtigungen für Ihr AWS-Konto. Anschließend können Sie mit diesemAdministratorbenutzer andere IAM-Benutzer und -Rollen mit eingeschränkten Berechtigungenerstellen. Weitere Informationen finden Sie unter Bewährte Methoden für IAM und Erstelleneines Admin-Benutzers und einer Gruppe im IAM-Benutzerhandbuch.

• IAM-Benutzer – Ein IAM-Benutzer ist eine Identität in Ihrem AWS-Konto mit bestimmtenbenutzerdefinierten Berechtigungen (z. B. Berechtigungen zum Erstellen von Projekten in CodeBuild).Sie können einen IAM-Benutzernamen und ein Passwort für die Anmeldung bei sicheren AWS-Webseiten verwenden. Dazu zählen beispielsweise die AWS Management Console, AWS-Diskussionsforen und das AWS Support Center.

Zusätzlich zu einem Benutzernamen und Passwort können Sie Zugriffsschlüssel für jeden Benutzererstellen. Verwenden Sie diese Schlüssel, wenn Sie über eines der verschiedenen AWS-SDKs oder überdie AWS Command Line Interface (AWS CLI) programmgesteuert auf AWSAWS-Services zugreifen. DasAWS-SDK und die AWS CLI-Tools verwenden die Zugriffsschlüssel, um Ihre Anfrage verschlüsselt zusignieren. Wenn Sie die AWS-Tools nicht nutzen, müssen Sie die Anfrage selbst signieren. CodeBuildunterstützt Signature Version 4, ein Protokoll für die Authentifizierung eingehender API-Anfragen.Weitere Informationen zur Authentifizierung von Anfragen finden Sie unter Signature Version 4-Signaturprozess im AWS General Reference.

• IAM-Rolle – Eine IAM-Rolle ähnelt einem IAM-Benutzer, ist aber nicht mit einer bestimmtenPerson verknüpft. Eine IAM-Rolle ermöglicht Ihnen, temporäre Zugriffsschlüssel zu erhalten, mitdenen Sie auf die AWS-Services und -Ressourcen zugreifen können. IAM-Rollen mit temporärenAnmeldeinformationen sind in folgenden Situationen hilfreich:• Verbundener Benutzerzugriff – Statt einen IAM-Benutzer zu erstellen, können Sie bereits vorhandene

Benutzeridentitäten von AWS Directory Service, dem Benutzerverzeichnis Ihres Unternehmens, odervon einem Web-Identitätsanbieter verwenden. Diese werden als verbundene Benutzer bezeichnet.AWS weist einem verbundenen Benutzer eine Rolle zu, wenn der Zugriff über einen Identitätsanbieterangefordert wird. Weitere Informationen zu verbundenen Benutzern finden Sie unter VerbundeneBenutzer und Rollen im IAM-Benutzerhandbuch.

• Kontenübergreifender Zugriff – Sie können eine IAM-Rolle in Ihrem Konto verwenden, um einemanderen AWS-Konto Berechtigungen für den Zugriff auf die Ressourcen Ihres Kontos zu erteilen. EinBeispiel hierfür finden Sie unter Lernprogramm: Zugriff delegieren über AWS Konten verwenden IAMRollen im IAM-Benutzerhandbuch.

• Zugriff auf AWS-Services – Sie können eine IAM-Rolle in Ihrem Konto verwenden, um einem AWS-Service Berechtigungen für den Zugriff auf die Ressourcen Ihres Konto zu erteilen. Sie könnenbeispielsweise eine Rolle erstellen, mit der Amazon Redshift in Ihrem Namen auf einen S3-Bucketzugreifen und die in dem Bucket gespeicherten Daten in einen Amazon Redshift-Cluster laden kann.Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen aneinen AWS-Service im IAM-Benutzerhandbuch.

• Anwendungen in Amazon EC2 – Anstatt Zugriffsschlüssel in der Amazon EC2-Instance zu speichern,die von den dort ausgeführten Anwendungen zum Senden von AWS-API-Anforderungen verwendetwerden, können Sie eine IAM-Rolle nutzen, um temporäre Anmeldeinformationen für dieseAnwendungen zu verwalten. Erstellen Sie ein Instance-Profil, das an die Instance angefügt ist, um eineAWS-Rolle zu einer Amazon EC2-Instance zuzuweisen und die Rolle für sämtliche Anwendungen derInstance bereitzustellen. Ein Instance-Profil enthält die Rolle und ermöglicht, dass Programme, die inder Amazon EC2-Instance ausgeführt werden, temporäre Anmeldeinformationen erhalten. WeitereInformationen finden Sie unter Verwenden von Rollen für Anwendungen in Amazon EC2 im IAM-Benutzerhandbuch.

API-Version 2016-10-06360

Page 368: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugriffskontrolle

ZugriffskontrolleAuch wenn Sie über gültige Anmeldeinformationen zur Authentifizierung Ihrer Anforderungen verfügen,können die AWS CodeBuild-Ressourcen nur mit entsprechenden Berechtigungen erstellen oder daraufzugreifen. Sie benötigen beispielsweise Berechtigungen zum Erstellen, Anzeigen oder Löschen von Build-Projekten sowie zum Starten, Stoppen oder Anzeigen von Builds.

In den folgenden Abschnitten wird die Verwaltung von Berechtigungen für CodeBuild beschrieben: Wirempfehlen Ihnen, zunächst die Übersicht zu lesen.

• Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre AWS CodeBuild-Ressourcen (p. 361)

• Verwenden von identitätsbasierten Richtlinien für AWS CodeBuild (p. 364)• Referenz für AWS CodeBuild-Berechtigungen (p. 381)• Anzeigen von Ressourcen in der Konsole (p. 388)

Übersicht über die Verwaltung vonZugriffsberechtigungen für Ihre AWS CodeBuild-RessourcenJede AWS-Ressource ist Eigentum eines AWS-Kontos und die Berechtigungen für die Erstellung einerRessource oder den Zugriff darauf werden durch Berechtigungsrichtlinien geregelt. Ein Kontoadministratorkann IAM-Identitäten (Benutzer, Gruppen und Rollen) Berechtigungsrichtlinien zuweisen.

Note

Ein Kontoadministrator (oder Administratorbenutzer) ist ein Benutzer mit Administratorrechten.Weitere Informationen finden Sie unter Bewährte Methoden für IAM im IAM-Benutzerhandbuch.

Beim Erteilen von Berechtigungen entscheiden Sie, wer die Berechtigungen erhält, für welche Ressourcendiese gelten und welche Aktionen an diesen Ressourcen gestattet werden sollen.

Themen• AWS CodeBuild-Ressourcen und -Operationen (p. 361)• Grundlegendes zum Eigentum an Ressourcen (p. 362)• Verwalten des Zugriffs auf Ressourcen (p. 363)• Festlegen von Richtlinienelementen: Handlungen, Auswirkungen und Prinzipien (p. 364)

AWS CodeBuild-Ressourcen und -OperationenIn AWS CodeBuild ist die primäre Ressource ein Build-Projekt. In einer Richtlinie identifizieren Sie dieRessource, für welche die Richtlinie gilt, mithilfe eines Amazon-Ressourcennamens (ARN). Builds sindebenfalls Ressourcen und haben einen zugeordneten ARN. Weitere Informationen finden Sie unterAmazon-Ressourcennamen (ARN) und AWS Service-Namespaces im Allgemeine Amazon Web Services-Referenz.

Resource type(Ressourcentyp)

ARN-Format

Build-Projekt arn:aws:codebuild:region-ID:account-ID:project/project-name

API-Version 2016-10-06361

Page 369: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÜbersicht über die Verwaltung von Zugriffsberechtigungen

Resource type(Ressourcentyp)

ARN-Format

Entwicklung arn:aws:codebuild:region-ID:account-ID:build/build-ID

Berichtsgruppe arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

Bericht arn:aws:codebuild:region-ID:account-ID:report/report-ID

Alle CodeBuild-Ressourcen

arn:aws:codebuild:*

Alle CodeBuild-Ressourcen, die zu einembestimmten Konto inder angegebenen AWS-Region gehören

arn:aws:codebuild:region-ID:account-ID:*

Note

Die meisten AWS-Services behandeln einen Doppelpunkt (:) oder einen Schrägstrich (/) inARNs als genau dieses Zeichen. CodeBuild verwendet jedoch eine genaue Übereinstimmung inRessourcenmustern und Regeln. Verwenden Sie also die richtigen Zeichen zum Erstellen vonEreignismustern, sodass sie mit der ARN-Syntax in der Ressource übereinstimmen.

Sie können beispielsweise ein spezifisches Build-Projekt anzeigen (myBuildProject) in Ihrer Erklärungunter Verwendung des ARN wie folgt:

"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"

Wenn Sie alle Ressourcen angeben möchten oder wenn eine API-Aktion keine ARNs unterstützt,verwenden Sie das Platzhalterzeichen (*) im Resource-Element, wie folgt:

"Resource": "*"

Einige CodeBuild API-Aktionen akzeptieren mehrere Ressourcen (z. B. BatchGetProjects). Ummehrere Ressourcen in einer einzigen Anweisung anzugeben, trennen Sie ihre ARNs mit Kommas wiefolgt.

"Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject", "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"]

CodeBuild bietet eine Reihe von Operationen, um mit den CodeBuild-Ressourcen zu arbeiten. Eine Listefinden Sie hier: Referenz für AWS CodeBuild-Berechtigungen (p. 381).

Grundlegendes zum Eigentum an RessourcenDas AWS-Konto ist Eigentümer aller Ressourcen, die innerhalb des Kontos erstellt werden, unabhängigdavon, wer sie erstellt. Genauer gesagt ist das AWS-Konto der Prinzipal-Entität (d. h. das Root-Konto,ein IAM-Benutzer oder eine IAM-Rolle), welche die Ressourcenerstellungsanforderung authentifiziert, derRessourceneigentümer. Die Funktionsweise wird anhand der folgenden Beispiele deutlich:

• Wenn Sie die Root-Konto-Anmeldeinformationen für Ihr AWS-Konto verwenden, um eine Regel zuerstellen, ist Ihr AWS-Konto der Eigentümer der CodeBuild-Ressource.

API-Version 2016-10-06362

Page 370: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchÜbersicht über die Verwaltung von Zugriffsberechtigungen

• Wenn Sie einen IAM-Benutzer in Ihrem AWS-Konto erstellen und diesem Berechtigungen zum Erstellenvon CodeBuild-Ressourcen erteilen, kann dieser Benutzer CodeBuild-Ressourcen erstellen. Jedoch istIhr AWS-Konto, dem der Benutzer angehört, der Eigentümer der CodeBuild-Ressourcen.

• Wenn Sie in Ihrem AWS-Konto eine IAM-Rolle mit Berechtigungen zum Erstellen von CodeBuild-Ressourcen einrichten, kann jeder Benutzer, der die Rolle übernimmt, CodeBuild-Ressourcen erstellen.Ihr AWS-Konto, dem die Rolle angehört, ist der Eigentümer der CodeBuild-Ressourcen.

Verwalten des Zugriffs auf RessourcenEine Berechtigungsrichtlinie beschreibt, wer Zugriff auf welche Ressourcen hat.

Note

Dieser Abschnitt beschäftigt sich mit der Verwendung von IAM in AWS CodeBuild. Er enthält keinedetaillierten Informationen über den IAM-Service. Eine umfassende IAM-Dokumentation finden Sieim Thema Was ist IAM? im IAM-Benutzerhandbuch. Informationen über die IAM-Richtliniensyntaxund Beschreibungen finden Sie in der AWS IAM Policy Reference (AWS IAM-Richtlinienreferenz)im IAM-Benutzerhandbuch.

An eine IAM-Identität angefügte Richtlinien werden als identitätsbasierte Richtlinien (oder IAM-Richtlinien)bezeichnet. An Ressourcen angefügte Berechtigungsrichtlinien werden als ressourcenbasierte Richtlinienbezeichnet. CodeBuild unterstützt nur identitätsbasierte (IAM-) Richtlinien.

Identitätsbasierte RichtlinienRichtlinien können IAM-Identitäten zugewiesen werden.

• Eine Berechtigungsrichtlinie an einen Benutzer oder eine Gruppe in Ihrem Konto anfügen – Um eineBenutzerberechtigung zum Anzeigen von Build-Projekten und anderen AWS CodeBuild-Ressourcenin der AWS CodeBuild-Konsole zu erteilen, können Sie an einen Benutzer oder eine Gruppe, der derBenutzer angehört, eine Berechtigungsrichtlinie anfügen.

• Anfügen einer Berechtigungsrichtlinie an eine Rolle (Erteilen kontoübergreifender Berechtigungen) – Siekönnen einer IAM-Rolle eine identitätsbasierte Berechtigungsrichtlinie anfügen, um kontoübergreifendeBerechtigungen zu erteilen. Beispielsweise kann der Administrator in Konto A eine Rolle erstellen, umeinem anderen AWS-Konto (z. B. Konto B) oder einem AWS-Service kontoübergreifende Berechtigungenzu erteilen. Dazu geht er folgendermaßen vor:1. Der Administrator von Konto A erstellt eine IAM-Rolle und weist ihr eine Berechtigungsrichtlinie zu, die

Berechtigungen für Ressourcen in Konto A erteilt.2. Der Administrator von Konto A fügt der Rolle eine Vertrauensrichtlinie an, die Konto B als den

Prinzipal identifiziert, der die Rolle übernehmen kann.3. Der Administrator von Konto B kann nun Berechtigungen zur Übernahme der Rolle an alle Benutzer in

Konto B delegieren. Daraufhin können die Benutzer in Konto B auf Ressourcen von Konto A zugreifen.Der Prinzipal in der Vertrauensrichtlinie muss auch ein AWS-Service-Prinzipal sein. Somit können Sieauch einem AWS-Service die Berechtigungen zur Übernahme der Rolle erteilen.

Weitere Informationen zum Delegieren von Berechtigungen mithilfe von IAM finden Sie unterZugriffsverwaltung im IAM-Benutzerhandbuch.

In CodeBuild werden identitätsbasierte Richtlinien verwendet, um Berechtigungen für die Ressourcen zuerteilen, die dem Bereitstellungsprozess zugeordnet sind. Sie können beispielsweise den Zugriff auf Build-Projekte kontrollieren.

Sie können IAM-Richtlinien erstellen, um die Aufrufe und Ressourcen zu beschränken, auf die Benutzer inIhrem Konto Zugriff haben, und dann diese Richtlinien den IAM-Benutzern zuweisen. Weitere Informationenzum Erstellen von IAM-Rollen und Beispiele für IAM-Richtlinienanweisungen für CodeBuild finden Sie unterÜbersicht über die Verwaltung von Zugriffsberechtigungen für Ihre AWS CodeBuild-Ressourcen (p. 361).

API-Version 2016-10-06363

Page 371: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

Sicherer Zugriff auf S3-Buckets

Es wird nachdrücklich empfohlen, Ihrer IAM-Rolle die folgenden Berechtigungen zu erteilen, um zuüberprüfen, ob Sie oder eine vertrauenswürdige Person der Eigentümer des Ihrem CodeBuild-Projektzugeordneten S3-Buckets sind. Diese Berechtigungen sind in verwalteten AWS-Richtlinien und -Rollennicht enthalten. Sie müssen sie selbst hinzufügen.

• s3:GetBucketACL

• s3:GetBucketLocation

Wenn der Besitzer eines für Ihr Projekt verwendeten S3-Buckets geändert wird, müssen Sie überprüfen,ob Sie weiter Besitzer des Buckets sind. Wenn dies nicht der Fall ist, müssen Sie die Berechtigungenin Ihrer IAM-Rolle aktualisieren. Weitere Informationen finden Sie unter Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (p. 391) und Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

Festlegen von Richtlinienelementen: Handlungen, Auswirkungenund PrinzipienFür jede AWS CodeBuild-Ressource definiert der Dienst eine Reihe von API-Operationen. Zur Erteilungvon Berechtigungen für diese API-Operationen definiert CodeBuild Aktionen, die Sie in einer Richtlinieangeben können. Einige API-Operationen erfordern möglicherweise Berechtigungen für mehr als eineAktion, um die API-Operation auszuführen. Weitere Informationen finden Sie unter AWS CodeBuild-Ressourcen und -Operationen (p. 361) und Referenz für AWS CodeBuild-Berechtigungen (p. 381).

Grundlegende Richtlinienelemente:

• Ressource – Sie verwenden einen Amazon-Ressourcennamen (ARN), um die Ressource, für welche dieRichtlinie gilt, zu identifizieren.

• Aktion – Mit Aktionsschlüsselwörtern geben Sie die Ressourcenoperationen an, die Sie zulassen oderverweigern möchten. Die codebuild:CreateProject-Berechtigung erteilt dem Benutzer zum BeispielBerechtigungen zum Ausführen der CreateProject-Operation.

• Effekt – Die von Ihnen festgelegte Auswirkung (entweder Zugriffserlaubnis oder Zugriffsverweigerung),wenn ein Benutzer die Aktion anfordert. Wenn Sie den Zugriff auf eine Ressource nicht ausdrücklichgestatten („Allow“), wird er automatisch verweigert. Sie können den Zugriff auf eine Ressource auchexplizit verweigern. So können Sie zum Beispiel sicherstellen, dass Benutzer nicht auf eine Ressourcezugreifen können, auch wenn der Zugriff durch eine andere Richtlinie gestattet wird.

• Prinzipal – In identitätsbasierten Richtlinien (IAM-Richtlinien) ist der Benutzer, dem die Richtliniezugewiesen ist, automatisch der Prinzipal. In ressourcenbasierten Richtlinien müssen Sie den Benutzer,das Konto, den Service oder die sonstige Entität angeben, die die Berechtigungen erhalten soll.

Weitere Informationen zur IAM-Richtliniensyntax und entsprechende Beschreibungen enthält die AWS IAM-Richtlinienreferenz im IAM-Benutzerhandbuch.

Eine Tabellenliste mit allen CodeBuild-API-Aktionen und den Ressourcen, für die diese gelten, finden Sieunter Referenz für AWS CodeBuild-Berechtigungen (p. 381).

Verwenden von identitätsbasierten Richtlinien für AWSCodeBuildDieses Thema enthält Beispiele zu identitätsbasierten Richtlinien, die verdeutlichen, wie einKontoadministrator IAM-Identitäten (d. h. Benutzern, Gruppen und Rollen) Berechtigungsrichtlinien

API-Version 2016-10-06364

Page 372: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

zuweisen und somit Berechtigungen zur Durchführung von Operationen an AWS CodeBuild-Ressourcenerteilen kann.

Important

Wir empfehlen Ihnen, zunächst die einführenden Themen zu lesen, in denen die Grundkonzepteund verfügbaren Optionen zum Verwalten des Zugriffs auf Ihre CodeBuild-Ressourcenerläutert werden. Weitere Informationen finden Sie im Übersicht über die Verwaltung vonZugriffsberechtigungen für Ihre AWS CodeBuild-Ressourcen (p. 361).

Themen• Erforderliche Berechtigungen für die Verwendung der AWS CodeBuild-Konsole (p. 365)• Erforderliche Berechtigungen, damit die AWS CodeBuild-Konsole eine Verbindung zu Quellanbietern

herstellen kann (p. 366)• AWS-verwaltete (vordefinierte) Richtlinien für AWS CodeBuild (p. 366)• CodeBuild managed policies and notifications (p. 371)• Beispiele für vom Kunden verwaltete Richtlinien (p. 373)

Nachfolgend sehen Sie ein Beispiel für eine Berechtigungsrichtlinie, die einem Benutzer ermöglicht,Informationen über Build-Projekte nur in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

Erforderliche Berechtigungen für die Verwendung der AWSCodeBuild-KonsoleBenutzer, welche die AWS CodeBuild-Konsole verwenden möchten, benötigen einen Mindestsatz anBerechtigungen, die es ihnen erlauben, andere AWS-Ressourcen für das AWS-Konto zu beschreiben. Siebenötigen Berechtigungen für die folgenden Services:

• AWS CodeBuild• Amazon CloudWatch• CodeCommit (wenn Sie den Quellcode in einem AWS CodeCommit-Repository speichern)• Amazon Elastic Container Registry (Amazon ECR) (wenn Sie eine Build-Umgebung verwenden, die auf

einem Docker-Image in einem Amazon ECR-Repository basiert)• Amazon Elastic Container Service (Amazon ECS) (wenn Sie eine Build-Umgebung verwenden, die auf

einem Docker-Image in einem Amazon ECR-Repository basiert)• AWS Identity and Access Management (IAM)• AWS Key Management Service (AWS KMS)• Amazon Simple Storage Service (Amazon S3)

Wenn Sie eine IAM-Richtlinie erstellen, die auch die erforderlichen Mindestberechtigungen einschränkt,funktioniert die Konsole nicht wie erwartet.

API-Version 2016-10-06365

Page 373: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

Erforderliche Berechtigungen, damit die AWS CodeBuild-Konsoleeine Verbindung zu Quellanbietern herstellen kannDie AWS CodeBuild-Konsole nutzt die folgenden API-Aktionen, um eine Verbindung zu Quellanbietern (wiez. B. GitHub-Repositorys) herzustellen.

• codebuild:ListConnectedOAuthAccounts

• codebuild:ListRepositories

• codebuild:PersistOAuthToken

• codebuild:ImportSourceCredentials

Sie können Quellanbieter (z. B. GitHub-Repositorys) über die AWS CodeBuild-Konsole mit IhrenBuild-Projekten verknüpfen. Dazu müssen Sie zunächst die vorhergehenden API-Aktionen zu IAM-Zugriffsrichtlinien hinzufügen, die mit dem IAM-Benutzer verknüpft sind, über den Sie auf die AWSCodeBuild-Konsole zugreifen.

Die API-Aktionen ListConnectedOAuthAccounts, ListRepositories und PersistOAuthTokenwerden nicht von Ihrem Code aufgerufen. Deshalb sind diese API-Aktionen nicht in der AWS CLI und denAWS SDKs enthalten.

AWS-verwaltete (vordefinierte) Richtlinien für AWS CodeBuildDurch die Bereitstellung von eigenständigen IAM-Richtlinien, die von AWS erstellt und verwaltet werden,deckt AWS viele häufige Anwendungsfälle ab. Diese von AWS verwalteten Richtlinien erteilen dieerforderlichen Berechtigungen für viele häufige Anwendungsfälle, sodass Sie nicht mühsam ermittelnmüssen, welche Berechtigungen erforderlich sind. Die verwalteten Richtlinien für CodeBuild stellendarüber hinaus Berechtigungen für die Ausführung von Operationen in weiteren Services wie IAM, AWSCodeCommit,Amazon EC2, Amazon ECR Amazon SNS und Amazon CloudWatch Events bereit, wenndies für die Aufgaben der Benutzer erforderlich ist, denen die betreffende Richtlinie zugewiesen wurde.Beispielsweise handelt es sich bei der Richtlinie AWSCodeBuildAdminAccess um eine Benutzerrichtlinieauf Administratorebene. Sie ermöglicht Benutzern mit dieser Richtlinie die Erstellung und Verwaltungvon CloudWatch-Ereignisregeln für Projekt-Builds und Amazon SNS-Themen für Benachrichtigungen zuprojektbezogenen Ereignissen (Themen, deren Namen das Präfix arn:aws:codebuild: haben) sowiedie Administration von Projekten und Berichtsgruppen in CodeBuild. Weitere Informationen finden Sie unterAWS-verwaltete Richtlinien im IAM-Benutzerhandbuch.

Die folgenden von AWS verwalteten Richtlinien, die Sie an Benutzer in Ihrem Konto anhängen können, sindspezifisch für AWS CodeBuild:

• AWSCodeBuildAdminAccess – bietet vollständigen Zugriff auf CodeBuild, einschließlichAdministratorberechtigungen für CodeBuild-Build-Projekte.

• AWSCodeBuildDeveloperAccess – bietet Zugriff auf CodeBuild, jedoch ohneAdministratorberechtigungen für Build-Projekte.

• AWSCodeBuildReadOnlyAccess – bietet schreibgeschützten Zugriff auf CodeBuild.

Zum Zugriff auf die von CodeBuild erstellten Build-Ausgabeartefakte müssen Sie außerdem die verwalteteAWS-Richtlinie namens AmazonS3ReadOnlyAccess zuweisen.

Zum Erstellen und Verwalten von CodeBuild-Servicerollen müssen Sie die verwaltete AWS-Richtlinienamens IAMFullAccess zuweisen.

(Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen fürCodeBuild-Aktionen und -Ressourcen zu gewähren). Die benutzerdefinierten Richtlinien können Sie dannden IAM-Benutzern oder -Gruppen zuweisen, die diese Berechtigungen benötigen.

API-Version 2016-10-06366

Page 374: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

Themen• AWSCodeBuildAdminAccess (p. 367)• AWSCodeBuildDeveloperAccess (p. 368)• AWSCodeBuildReadOnlyAccess (p. 370)

AWSCodeBuildAdminAccess

AWSCodeBuildAdminAccess – Stellt den vollständigen Zugriff auf CodeBuild einschließlichAdministratorberechtigungen für CodeBuild-Build-Projekte bereit. Wenden Sie diese Richtlinie nur aufBenutzer auf Administratorebene an, um ihnen die vollständige Kontrolle über CodeBuild-Projekte,Berichtsgruppen und verwandte Ressourcen in Ihrem AWS-Konto zu erteilen, einschließlich derMöglichkeit, Projekte und Berichtsgruppen zu löschen.

Die Richtlinie AWSCodeBuildAdminAccess enthält die folgende Richtlinienanweisung:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codebuild:*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cloudwatch:GetMetricStatistics", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecr:DescribeRepositories", "ecr:ListImages", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*"

API-Version 2016-10-06367

Page 375: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

}, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" } ]}

AWSCodeBuildDeveloperAccess

AWSCodeBuildDeveloperAccess – Ermöglicht den Zugriff auf die gesamte Funktionalität von CodeBuildsowie projekt- und berichtsgruppenbezogene Ressourcen. Diese Richtlinie ermöglicht Benutzern nicht dasLöschen von CodeBuild-Projekten oder -Berichtsgruppen oder verwandter Ressourcen in anderen AWS-Services, z. B. CloudWatch-Ereignisse. Wir empfehlen, dass diese Richtlinie auf die meisten Benutzeranzuwenden.

Die Richtlinie AWSCodeBuildDeveloperAccess enthält die folgende Richtlinienanweisung:

{

API-Version 2016-10-06368

Page 376: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

"Statement": [ { "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes"

API-Version 2016-10-06369

Page 377: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

], "Resource": "*" } ], "Version": "2012-10-17"}

AWSCodeBuildReadOnlyAccess

AWSCodeBuildReadOnlyAccess – Erteilt schreibgeschützten Zugriff auf CodeBuild und verwandteRessourcen in anderen AWS-Services. Wenden Sie diese Richtlinie auf Benutzer an, die Builds anzeigenund ausführen, Projekte anzeigen und Berichtsgruppen anzeigen können, jedoch keine Änderungen für sieausführen dürfen.

Die Richtlinie AWSCodeBuildReadOnlyAccess enthält die folgende Richtlinienanweisung:

{ "Statement": [ { "Action": [ "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:List*", "codebuild:DescribeTestCases", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes" ], "Resource": "*" } ], "Version": "2012-10-17"}

API-Version 2016-10-06370

Page 378: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

CodeBuild managed policies and notificationsCodeBuild supports notifications, which can notify users of important changes to build projects. Managedpolicies for CodeBuild include policy statements for notification functionality. For more information, seeWhat are notifications?.

Permissions related to notifications in full access managed policies

The AWSCodeBuildFullAccess managed policy includes the following statements to allow full access tonotifications. Users with this managed policy applied can also create and manage Amazon SNS topics fornotifications, subscribe and unsubscribe users to topics, list topics to choose as targets for notification rules,and list AWS Chatbot clients configured for Slack.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations"

API-Version 2016-10-06371

Page 379: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

], "Resource": "*" }

Permissions related to notifications in read-only managed policiesThe AWSCodeBuildReadOnlyAccess managed policy includes the following statements to allow read-only access to notifications. Users with this managed policy applied can view notifications for resources, butcannot create, manage, or subscribe to them.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

Permissions related to notifications in other managed policiesThe AWSCodeBuildDeveloperAccess managed policy includes the following statements to allow usersto create, edit, and subscribe to notifications. Users cannot delete notification rules or manage tags forresources.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource",

API-Version 2016-10-06372

Page 380: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

"codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations" ], "Resource": "*" }

For more information about IAM and notifications, see Identity and Access Management for AWS CodeStarNotifications.

Beispiele für vom Kunden verwaltete RichtlinienIn diesem Abschnitt finden Sie Beispiele für Benutzerrichtlinien, die Berechtigungen für diverse AWSCodeBuild-Aktionen erteilen. Diese Richtlinien sind nur wirksam, wenn Sie CodeBuild- API, AWS-SDKsoder die AWS CLI verwenden. Bei Verwendung der Konsole müssen Sie zusätzliche konsolenspezifischeBerechtigungen erteilen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für dieVerwendung der AWS CodeBuild-Konsole (p. 365).

Sie können die folgenden IAM-Beispielrichtlinien zur Beschränkung des Zugriffs auf CodeBuild für Ihre IAM-Benutzer und -Rollen verwenden.

Themen• Benutzern das Abrufen von Informationen über Build-Projekte ermöglichen (p. 374)• Benutzern das Abrufen von Informationen über Berichtsgruppen ermöglichen (p. 374)• Benutzern das Abrufen von Informationen über Berichte ermöglichen (p. 374)• Benutzern das Erstellen von Build-Projekten ermöglichen (p. 375)• Benutzern das Erstellen einer Berichtsgruppe ermöglichen (p. 375)• Benutzern das Löschen einer Berichtsgruppe ermöglichen (p. 375)• Benutzern das Löschen eines Berichts ermöglichen (p. 375)• Benutzern das Löschen von Build-Projekten ermöglichen (p. 376)• Benutzern das Abrufen einer Liste mit Build-Projektnamen ermöglichen (p. 376)• Benutzern das Ändern von Informationen über Build-Projekte ermöglichen (p. 376)• Benutzern das Ändern einer Berichtsgruppe ermöglichen (p. 377)• Benutzern das Abrufen von Informationen über Builds ermöglichen (p. 377)• Benutzern das Abrufen einer Liste mit Build-IDs für ein Build-Projekt ermöglichen (p. 377)• Benutzern das Abrufen einer Liste mit Build-IDs ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Berichtsgruppen ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Berichten ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Berichten für eine Berichtsgruppe ermöglichen (p. 378)• Benutzern das Abrufen einer Liste von Testfällen für einen Bericht ermöglichen (p. 379)

API-Version 2016-10-06373

Page 381: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

• Benutzern das Ausführen eines Builds ermöglichen (p. 379)• Benutzern das Stoppen von Builds ermöglichen (p. 379)• Benutzern das Löschen von Builds ermöglichen (p. 380)• Benutzern das Abrufen von Informationen über von CodeBuild verwaltete Docker-Images

ermöglichen (p. 380)• CodeBuild Zugriff auf die zur Erstellung einer VPC-Netzwerkschnittstelle erforderlichen AWS-Services

erlauben (p. 380)• Verwenden von Deny-Anweisungen zum Verhindern der Trennung zwischen AWS CodeBuild und

Quellanbietern (p. 381)

Benutzern das Abrufen von Informationen über Build-Projekte ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht,Informationen über Build-Projekte in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

Benutzern das Abrufen von Informationen über Berichtsgruppen ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, Informationen zu Berichtsgruppenin der us-east-2-Region für das Konto 123456789012 abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Abrufen von Informationen über Berichte ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, Informationen zu Berichten in derus-east-2-Region für das Konto 123456789012 abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReports", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]

API-Version 2016-10-06374

Page 382: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

}

Benutzern das Erstellen von Build-Projekten ermöglichenNachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht,Build-Projekte mit einem beliebigen Namen zu erstellen, aber nur in der Region us-east-2 für Konto123456789012 und nur mit der angegebenen CodeBuild-Servicerolle:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam:123456789012:role/CodeBuildServiceRole" } ]}

Benutzern das Erstellen einer Berichtsgruppe ermöglichenDie folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der Regionus-east-2 für das Konto 123456789012 zu erstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Löschen einer Berichtsgruppe ermöglichenDie folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der us-east-2-Region für das Konto 123456789012 zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Löschen eines Berichts ermöglichenDie folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, einen Bericht in der us-east-2-Region für das Konto 123456789012 zu löschen:

API-Version 2016-10-06375

Page 383: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReport", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Löschen von Build-Projekten ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Build-Projekte in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namenmy beginnen, zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

Benutzern das Abrufen einer Liste mit Build-Projektnamen ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eineListe mit Build-Projektnamen für dasselbe Konto abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListProjects", "Resource": "*" } ]}

Benutzern das Ändern von Informationen über Build-Projekte ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht,Informationen über Build-Projekte mit einem beliebigen Namen zu ändern, aber nur in der Region us-east-2 für Konto 123456789012 und nur mit der angegebenen Servicerolle AWS CodeBuild:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, {

API-Version 2016-10-06376

Page 384: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

"Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam:123456789012:role/CodeBuildServiceRole" } ]}

Benutzern das Ändern einer Berichtsgruppe ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der us-east-2-Region für das Konto 123456789012 zu ändern:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Abrufen von Informationen über Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht,Informationen über Builds in der Region us-east-2 für Konto 123456789012 für Build-Projekte mit denNamen my-build-project und my-other-build-project abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetBuilds", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ]}

Benutzern das Abrufen einer Liste mit Build-IDs für ein Build-Projekt ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eineListe mit Build-IDs in der Region us-east-2 für Konto 123456789012 für Build-Projekte mit den Namenmy-build-project und my-other-build-project abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuildsForProject", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] }

API-Version 2016-10-06377

Page 385: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

]}

Benutzern das Abrufen einer Liste mit Build-IDs ermöglichenNachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eineListe aller Build-IDs für dasselbe Konto abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ]}

Benutzern das Abrufen einer Liste von Berichtsgruppen ermöglichenMit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste der Berichtsgruppen in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ]}

Benutzern das Abrufen einer Liste von Berichten ermöglichenMit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Berichten in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ]}

Benutzern das Abrufen einer Liste von Berichten für eine BerichtsgruppeermöglichenMit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Berichten für eineBerichtsgruppe in der us-east-2-Region für das Konto 123456789012 abrufen:

{

API-Version 2016-10-06378

Page 386: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Abrufen einer Liste von Testfällen für einen Bericht ermöglichen

Mit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Testfällen für einen Berichtin der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DescribeTestCases", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ]}

Benutzern das Ausführen eines Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Builds inder Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen,auszuführen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

Benutzern das Stoppen von Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht,ausgeführte Builds nur in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mitdem Namen my beginnen, zu stoppen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StopBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

API-Version 2016-10-06379

Page 387: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden identitätsbasierter Richtlinien

Benutzern das Löschen von Builds ermöglichen

Nachfolgend finden Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Buildsnur in der Region us-east-2 für Konto 123456789012 zu löschen, wenn der Name des Build-Projektsmit my beginnt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchDeleteBuilds", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ]}

Benutzern das Abrufen von Informationen über von CodeBuild verwaltete Docker-Images ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine &IAM;-Richtlinienanweisung, die einem Benutzer ermöglicht,Informationen über alle Docker-Images abzurufen, die von CodeBuild verwaltet werden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListCuratedEnvironmentImages", "Resource": "*" } ]}

CodeBuild Zugriff auf die zur Erstellung einer VPC-Netzwerkschnittstelleerforderlichen AWS-Services erlauben

Die folgende Beispielrichtlinienanweisung gewährt AWS CodeBuild die Berechtigung zum Erstellen einerNetzwerkschnittstelle in einer VPC mit zwei Subnetzen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [

API-Version 2016-10-06380

Page 388: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchReferenz für AWS CodeBuild-Berechtigungen

"ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:subnet/subnet-id-2" ], "ec2:AuthorizedService": "codebuild.amazonaws.com" } } } ]}

Verwenden von Deny-Anweisungen zum Verhindern der Trennung zwischen AWSCodeBuild und Quellanbietern

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die eine Deny-Anweisung verwendet,um die Trennung zwischen AWS CodeBuild und Quellanbietern zu verhindern. In der Anweisungwird codebuild:DeleteOAuthToken, die Umkehrung von codebuild:PersistOAuthTokenund codebuild:ImportSourceCredentials, verwendet, um eine Verbindung zu Quellanbieternherzustellen. Weitere Informationen finden Sie im Erforderliche Berechtigungen, damit die AWS CodeBuild-Konsole eine Verbindung zu Quellanbietern herstellen kann (p. 366).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ]}

Referenz für AWS CodeBuild-BerechtigungenWenn Sie die Zugriffskontrolle (p. 361) einrichten und Berechtigungsrichtlinien für eine IAM-Identität(identitätsbasierte Richtlinie) verfassen, können Sie die folgende Tabelle als Referenz verwenden.

Zum Formulieren von Bedingungen können Sie in Ihren AWS CodeBuild-Richtlinien AWS-weiteBedingungsschlüssel verwenden. Eine Liste finden Sie im Abschnitt Verfügbare Schlüssel im IAM-Benutzerhandbuch

Sie geben die Aktionen im Feld Action der Richtlinie an. Um eine Aktion anzugeben, verwenden Siedas Präfix codebuild: gefolgt vom Namen der API-Operation (z. B. codebuild:CreateProjectund codebuild:StartBuild). Um mehrere Aktionen in einer einzigen Anweisung anzugeben,trennen Sie sie mit Komma (z. B. "Action": [ "codebuild:CreateProject","codebuild:StartBuild" ]).

Verwenden von Platzhalterzeichen

Sie geben einen ARN mit oder ohne Platzhalterzeichen (*) als Ressourcenwert im Feld Resource derRichtlinie an. Sie können das Platzhalterzeichen verwenden, um mehrere Aktionen oder Ressourcenanzugeben. Beispielsweise: codebuild:* gibt alle CodeBuild Aktionen und codebuild:Batch* gibtalle CodeBuild Aktionen, die mit dem Wort beginnen Batch. Das folgende Beispiel gewährt Zugriff auf alleBuild-Projekte mit Namen, die mit beginnen my:

API-Version 2016-10-06381

Page 389: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchReferenz für AWS CodeBuild-Berechtigungen

arn:aws:codebuild:us-east-2:123456789012:project/my*

CodeBuild-API-Operationen und für Aktionen erforderliche Berechtigungen

BatchDeleteBuilds

Aktion: codebuild:BatchDeleteBuilds

Erforderlich zum Löschen von Builds.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameBatchGetBuilds

Aktion: codebuild:BatchGetBuilds

Erforderlich, um Informationen über Builds abzurufen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameBatchGetProjects

Aktion: codebuild:BatchGetProjects

Erforderlich, um Informationen über Build-Projekte abzurufen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameBatchGetReportGroups

Aktion: codebuild:BatchGetReportGroups

Erforderlich, um Informationen zu Berichtsgruppen abzurufen.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

BatchGetReports

Aktion: codebuild:BatchGetReports

Erforderlich, um Informationen über Berichte abzurufen.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

BatchPutTestCases ¹

Aktion: codebuild:BatchPutTestCases

Erforderlich, um einen Testbericht zu erstellen oder zu aktualisieren.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

CreateProject

Aktionen codebuild:CreateProject, iam:PassRole

Erforderlich, um Build-Projekte zu erstellen.

Ressourcen• arn:aws:codebuild:region-ID:account-ID:project/project-name

• arn:aws:iam:account-ID:role/role-name

API-Version 2016-10-06382

Page 390: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchReferenz für AWS CodeBuild-Berechtigungen

CreateReport ¹

Aktion: codebuild:CreateReport

Erforderlich, um einen Testbericht zu erstellen.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

CreateReportGroup

Aktion: codebuild:CreateReportGroup

Erforderlich, um eine Berichtsgruppe zu erstellen.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

CreateWebhook

Aktion: codebuild:CreateWebhook

Erforderlich zum Erstellen eines Webhooks.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameDeleteReport

Aktion: codebuild:DeleteReport

Erforderlich zum Löschen eines Berichts.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

DeleteReportGroup

Aktion: codebuild:DeleteReportGroup

Erforderlich, um eine Berichtsgruppe zu löschen.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

DeleteSourceCredentials

Aktion: codebuild:DeleteSourceCredentials

Erforderlich zum Löschen einer Reihe von SourceCredentialsInfo-Objekten, die Details überAnmeldeinformationen für ein GitHub-, GitHub Enterprise Server- oder Bitbucket-Repository enthalten.

Ressource: *DeleteWebhook

Aktion: codebuild:DeleteWebhook

Erforderlich zum Erstellen eines Webhooks.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameDescribeTestCases

Aktion: codebuild:DescribeTestCases

Erforderlich, um eine paginierte Liste von Testfällen zurückzugeben.

API-Version 2016-10-06383

Page 391: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchReferenz für AWS CodeBuild-Berechtigungen

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

ImportSourceCredentials

Aktion: codebuild:ImportSourceCredentials

Erforderlich zum Importieren einer Reihe von SourceCredentialsInfo-Objekten, die Details überAnmeldeinformationen für ein GitHub-, GitHub Enterprise Server- oder Bitbucket-Repository enthalten.

Ressource: *InvalidateProjectCache

Aktion: codebuild:InvalidateProjectCache

Erforderlich, um den Cache für ein Projekt zurückzusetzen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameListBuilds

Aktion: codebuild:ListBuilds

Erforderlich, um eine Liste mit Build-IDs abzurufen.

Ressource: *ListBuildsForProject

Aktion: codebuild:ListBuildsForProject

Erforderlich, um eine Liste mit Build-IDs für ein Build-Projekt abzurufen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameListCuratedEnvironmentImages

Aktion: codebuild:ListCuratedEnvironmentImages

Erforderlich, um Informationen über alle von AWS CodeBuild verwaltete Docker-Images abzurufen.

Ressource: * (erforderlich, aber verweist nicht auf eine aufrufbare AWS-Ressource)ListProjects

Aktion: codebuild:ListProjects

Erforderlich, um eine Liste mit Build-Projektnamen abzurufen.

Ressource: *ListReportGroups

Aktion: codebuild:ListReportGroups

Erforderlich, um eine Liste von Berichtsgruppen abrufen.

Ressource: *ListReports

Aktion: codebuild:ListReports

Erforderlich zum Abrufen einer Liste von Berichten.

Ressource: *

API-Version 2016-10-06384

Page 392: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchReferenz für AWS CodeBuild-Berechtigungen

ListReportsForReportGroup

Aktion: codebuild:ListReportsForReportGroup

Erforderlich, um eine Liste von Berichten für eine Berichtsgruppe abrufen zu können.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

Retrybuild

Aktion: codebuild:RetryBuild

Es muss versucht werden, Builds zu versuchen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameStartBuild

Aktion: codebuild:StartBuild

Erforderlich, um Builds auszuführen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameStopBuild

Aktion: codebuild:StopBuild

Erforderlich, um ausgeführte Builds zu stoppen.

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-nameUpdateProject

Aktionen codebuild:UpdateProject, iam:PassRole

Erforderlich, um Informationen über Builds zu ändern.

Ressourcen• arn:aws:codebuild:region-ID:account-ID:project/project-name

• arn:aws:iam:account-ID:role/role-name

UpdateReport ¹

Aktion: codebuild:UpdateReport

Erforderlich, um einen Testbericht zu erstellen oder zu aktualisieren.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

UpdateReportGroup

Aktion: codebuild:UpdateReportGroup

Erforderlich, um eine Berichtsgruppe zu aktualisieren.

Ressource: arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name

UpdateWebhook

Aktion: codebuild:UpdateWebhook

Erforderlich zum Aktualisieren eines Webhooks.

API-Version 2016-10-06385

Page 393: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden von Tags zur Steuerung desZugriffs auf AWS CodeBuild-Ressourcen

Ressource: arn:aws:codebuild:region-ID:account-ID:project/project-name

¹ Nur zur Genehmigung verwendet. Für diese Aktion gibt es keine API.

Verwenden von Tags zur Steuerung des Zugriffs aufAWS CodeBuild-RessourcenBedingungen in IAM-Richtlinienanweisungen sind Teil der Syntax, mit der Sie Berechtigungen fürprojektbasierte Aktionen in CodeBuild angeben können. Sie können eine Richtlinie erstellen, die Aktionenfür Gruppen basierend auf den mit diesen Gruppen verknüpften Tags gewährt oder verweigert unddiese Richtlinien dann auf die IAM-Gruppen anwenden, die Sie für die Verwaltung von IAM-Benutzernkonfigurieren. Hinweise zum Anwenden von Tags auf ein Projekt mithilfe der Konsole oder der AWS CLIfinden Sie unter Erstellen eines Build-Projekts in AWS CodeBuild (p. 206). Informationen zum Anwendenvon Tags mithilfe des CodeBuild SDK finden Sie unter CreateProject und Tags in der CodeBuild API-Referenz. Informationen zum Verwenden von Tags zum Steuern des Zugriffs auf AWS-Ressourcenfinden Sie unter Steuern des Zugriffs auf AWS-Ressourcen mithilfe von Ressourcen-Tags im IAM-Benutzerhandbuch.

Example Beispiel 1 Limit CodeBuild Projektaktionen basierend auf Ressourcentags

Das folgende Beispiel lehnt alle BatchGetProjects Aktionen bei Projekten, die mit dem Schlüsselmarkiert sind Environment mit dem Schlüsselwert von Production. Der Administrator eines Benutzersmuss Folgendes anhängen: IAM Richtlinie zusätzlich zur Richtlinie für die verwaltete Benutzerrichtlinie IAMBenutzer. Der Bedingungsschlüssel aws:ResourceTag wird verwendet, um den Zugriff auf Ressourcenbasierend auf ihren Tags zu steuern.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ]}

Example Beispiel 2 Limit CodeBuild Projektaktionen basierend auf Anfragetags

Die folgende Richtlinie lehnt die Berechtigung der Benutzer an den CreateProject Aktion, wenn dieAnforderung ein Tag mit dem Schlüssel enthält Environment und den Schlüsselwert Production.Darüber hinaus verhindert die Richtlinie, dass diese unbefugten Benutzer Projekte durch die Verwendungder aws:TagKeys Bedingung, um nicht zu erlauben UpdateProject wenn die Anforderung ein Tagmit dem Schlüssel enthält Environment. Ein Administrator muss diesen IAM Richtlinie zusätzlich zurRichtlinie für verwaltete Benutzer zu Benutzern, die nicht autorisiert sind, diese Aktionen auszuführen.Der Bedingungsschlüssel aws:RequestTag wird verwendet, um zu steuern, welche Tags in einer IAM-Anforderung übergeben werden können.

{ "Version": "2012-10-17",

API-Version 2016-10-06386

Page 394: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden von Tags zur Steuerung desZugriffs auf AWS CodeBuild-Ressourcen

"Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ]}

Example Beispiel 3 Ablehnen oder Zulassen von Aktionen für Berichtsgruppen basierend aufRessourcen-Tags

Sie können eine Richtlinie erstellen, die Aktionen für CodeBuild-Ressourcen (Projekte undBerichtsgruppen) basierend auf den mit diesen Ressourcen verknüpften AWS-Tags zulässt oder ablehnt,und diese Richtlinien anschließend auf die IAM-Gruppen anwendet, die Sie für die Verwaltung von IAM-Benutzern konfigurieren. Sie können beispielsweise eine Richtlinie erstellen, die alle CodeBuild Aktionenin jeder Berichtsgruppe mit AWS Tag-Schlüssel Status und den Schlüsselwert von Secret, und wendenSie diese Richtlinie an die IAM-Gruppe an, die Sie für allgemeine Entwickler erstellt haben (Developers).Sie müssen dann sicherstellen, dass die Entwickler, die an diesen markierten Berichtsgruppen arbeiten,keine Mitglieder dieses Allgemeinen sind Developers Gruppe, aber gehört zu einer anderen IAM Gruppe,die nicht die restriktive Richtlinie hat (SecretDevelopers).

Im folgenden Beispiel werden alle CodeBuild-Aktionen für Berichtsgruppen abgelehnt, die mit demSchlüssel Status und dem Schlüsselwert Secret markiert sind

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/Status": "Secret" } }

API-Version 2016-10-06387

Page 395: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAnzeigen von Ressourcen in der Konsole

]}

Example Beispiel 4 Limit CodeBuild Aktionen an AWSCodeBuildDeveloperaccess basierend aufRessourcentags

Sie können Richtlinien erstellen, die CodeBuild-Aktionen für alle Berichtsgruppen und Projekte zulassen,die nicht mit bestimmten Tags markiert sind. Die folgende Richtlinie lässt z. B. das Äquivalent vonAWSCodeBuildDeveloperAccess (p. 368)-Berechtigungen für alle Berichtsgruppen und Projekte zu.Ausgenommen sind jedoch Berichtsgruppen und Projekte, die mit den angegebenen Tags markiert sind:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } } ]}

Anzeigen von Ressourcen in der KonsoleDie AWS CodeBuild-Konsole benötigt die Berechtigung ListRepositories, um eine Liste derRepositorys für Ihr AWS-Konto in der AWS-Region anzuzeigen, in der Sie angemeldet sind. Die Konsoleumfasst auch eine Funktion Go to resource (Zu Ressource wechseln), um schnell ohne Berücksichtigungder Groß- und Kleinschreibung nach Ressourcen zu suchen. Diese Suche erfolgt in Ihrem AWS-Konto inder AWS-Region, in der Sie angemeldet sind. Die folgenden Ressourcen werden für die folgenden Servicesangezeigt:

• AWS CodeBuild: Build-Projekte• AWS CodeCommit: Repositorys• AWS CodeDeploy: Anwendungen• AWS CodePipeline: Pipelines

API-Version 2016-10-06388

Page 396: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchCompliance-Validierung

Für diese Suche unter den Ressourcen in allen Services müssen Sie über die folgenden Berechtigungenverfügen:

• CodeBuild: ListProjects• CodeCommit: ListRepositories• CodeDeploy: ListApplications• CodePipeline: ListPipelines

Es werden keine Ergebnisse für die Ressourcen eines Service zurückgegeben, wenn Sie nicht überBerechtigungen für diesen Service verfügen. Auch wenn Sie über Berechtigungen zum Anzeigen vonRessourcen verfügen, werden manche Ressourcen nicht zurückgegeben, wenn die Anzeige dieserRessourcen ausdrücklich verweigert wird (Deny).

Compliance-Validierung für AWS CodeBuildDie Auditoren Dritter bewerten die Sicherheit und die Compliance von AWS CodeBuild im Rahmenmehrerer AWS-Compliance-Programme. Hierzu zählen unter anderem SOC, PCI, FedRAMP und HIPAA.

Eine Liste der AWS-Services, die in bestimmten Compliance-Programmen enthalten sind, finden Sie unterAWS-Services in Scope nach Compliance-Programm. Allgemeine Informationen finden Sie unter AWS-Compliance-Programme.

Die Auditberichte von Drittanbietern lassen sich mit AWS Artifact herunterladen. Weitere Informationenfinden Sie unter Herunterladen von Berichten in AWS Artifact.

Ihre Compliance-Verantwortung bei Verwendung von CodeBuild hängt von der Vertraulichkeit der Daten,den Compliance-Zielen des Unternehmens und den geltenden Gesetzen und Vorschriften ab. Wenn IhreNutzung von CodeBuild Gegenstand der Einhaltung von Standards wie HIPAA, PCI oder FedRAMP ist,stellt AWS Ressourcen zur Unterstützung bereit:

• Kurzanleitungen für Sicherheit und Compliance: In diesen Bereitstellungsleitfäden finden Sie wichtigeÜberlegungen zur Architektur sowie die einzelnen Schritte zur Bereitstellung von sicherheits- undCompliance-orientierten Basisumgebungen in AWS.

• Whitepaper zur Erstellung einer Architektur mit HIPAA-konformer Sicherheit und Compliance – DiesesWhitepaper beschreibt, wie Unternehmen mithilfe von AWS HIPAA-konforme Anwendungen erstellen.

• AWS-Compliance-Ressourcen: Diese Arbeitsbücher und Leitfäden könnten für Ihre Branche und IhrenStandort interessant sein.

• AWS Config – Dieser AWS-Service bewertet, zu welchem Grad die Konfiguration Ihrer Ressourcen deninternen Vorgehensweisen, Branchenrichtlinien und Vorschriften entspricht.

• AWS Security Hub – Dieser AWS-Service liefert Ihnen einen umfassenden Überblick über IhrenSicherheitsstatus in AWS. So können Sie Ihre Compliance mit den Sicherheitsstandards der Brancheund Best Practices abgleichen.

Ausfallsicherheit in AWS CodeBuildIm Zentrum der globalen AWS-Infrastruktur stehen die AWS-Regionen und -Availability Zones(Verfügbarkeitszonen, AZs). AWS-Regionen stellen mehrere physisch getrennte und isolierte AvailabilityZones bereit, die über hoch redundante Netzwerke mit niedriger Latenz und hohen Durchsätzen verbundensind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen,die automatisch Failover zwischen Availability Zones ausführen, ohne dass es zu Unterbrechungenkommt. Availability Zones sind besser hoch verfügbar, fehlertoleranter und skalierbarer als herkömmlicheInfrastrukturen mit einem oder mehreren Rechenzentren.

API-Version 2016-10-06389

Page 397: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchSicherheit der Infrastruktur

Weitere Informationen über AWS-Regionen und -Availability Zones finden Sie unter Globale AWS-Infrastruktur.

Sicherheit der Infrastruktur in AWS CodeBuildAls verwalteter Service ist AWS CodeBuild durch die globalen Verfahren zur Gewährleistung derNetzwerksicherheit von AWS geschützt, die im Whitepaper Amazon Web Services: Übersicht über dieSicherheitsprozesse beschrieben werden.

Sie verwenden von AWS veröffentlichte API-Aufrufe, um über das Netzwerk auf CodeBuild zuzugreifen.Clients müssen Transport Layer Security (TLS) 1.0 oder höher unterstützen. Wir empfehlen TLS 1.2 oderhöher. Clients müssen außerdem Cipher Suites mit PFS (Perfect Forward Secrecy) wie DHE (EphemeralDiffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) unterstützen. Die meisten modernenSystemen wie Java 7 und höher unterstützen diese Modi.

Anforderungen müssen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel signiert sein,der mit einem IAM-Prinzipal verknüpft ist. Alternativ können Sie mit AWS Security Token Service (AWSSTS) temporäre Sicherheitsanmeldeinformationen erstellen, um die Anforderungen zu signieren.

API-Version 2016-10-06390

Page 398: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErweiterte Einstellungen

Erweiterte ThemenDieser Abschnitt enthält eine Reihe erweiterter Themen für erfahrene AWS CodeBuild-Benutzer.

Themen• Erweiterte Einstellungen (p. 391)• Befehlszeilenreferenz für AWS CodeBuild (p. 403)• AWS SDKs- und Tools-Referenz für AWS CodeBuild (p. 404)• Angeben des AWS CodeBuild-Endpunkts (p. 404)• Direktes Ausführen von AWS CodeBuild (p. 407)• Verwenden von AWS CodePipeline mit AWS CodeBuild zum Testen von Codes und zum Ausführen

von Builds (p. 407)• Verwenden von AWS CodeBuild mit Jenkins (p. 424)• Verwendung von AWS CodeBuild mit Codecov (p. 425)• Verwenden AWS CodeBuild mit serverlosen Anwendungen (p. 428)

Erweiterte EinstellungenWenn Sie die Schritte unter Erste Schritte mit der Konsole (p. 5) für den erstmaligen Zugriff auf AWSCodeBuild befolgen, werden Sie die Informationen in diesem Thema höchstwahrscheinlich nicht benötigen.Wenn Sie jedoch weiter mit CodeBuild arbeiten, möchten Sie möglicherweise Aufgaben wie die folgendenausführen: IAM-Gruppen und -Benutzern in Ihrer Organisation Zugriff auf CodeBuild erteilen, vorhandeneService-Rollen in IAM oder Kundenhauptschlüssel in AWS KMS für den Zugriff auf CodeBuild modifizierenoder die AWS CLI auf allen Workstations Ihrer Organisation zum Zugriff auf CodeBuild einrichten. Indiesem Thema wird beschrieben, wie Sie die zugehörigen Einrichtungsschritte durchführen.

Wir gehen davon aus, dass Sie bereits über ein AWS-Konto verfügen. Wenn dies nicht der Fall ist,navigieren Sie zu http://aws.amazon.com, wählen Bei der Konsole anmelden und folgen den Online-Anweisungen.

Themen• Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (p. 391)• Erstellen Sie eine CodeBuild-Servicerolle (p. 396)• Erstellen und Konfigurieren eines AWS KMS-CMK für CodeBuild (p. 400)• Installieren und Konfigurieren der AWS CLI. (p. 402)

Hinzufügen von CodeBuild-Zugriffsberechtigungen zuIAM-Gruppen oder IAM-BenutzernUm mit einer IAM-Gruppe oder einem IAM-Benutzer auf AWS CodeBuild zuzugreifen, müssen SieZugriffsberechtigungen hinzufügen. In diesem Abschnitt wird die entsprechende Vorgehensweise über dieIAM-Konsole oder die AWS CLI beschrieben.

Wenn Sie mit Ihrem CodeBuild-Stammkonto (nicht empfohlen) oder mit einem Administrator-AWS-Benutzerin Ihrem IAM-Konto auf AWS zugreifen möchten, müssen Sie diese Anleitung nicht befolgen.

API-Version 2016-10-06391

Page 399: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen von CodeBuild-Zugriffsberechtigungen

zu IAM-Gruppen oder IAM-Benutzern

Informationen zu AWS-Stammkonten und Administrator-IAM-Benutzern finden Sie unter The Account RootUser und Erstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM imIAM-Benutzerhandbuch.

Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (Konsole)

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

Sie sollten bereits unter Verwendung eines der folgenden Konten bzw. Benutzer bei der AWSManagement Console angemeldet sein:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Weitere Informationen finden Sie unter ErstellenIhres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM im IAM-Benutzerhandbuch.

• Ein IAM-Benutzer des AWS-Kontos mit der Berechtigung zur Ausführung der folgendenMindestmenge von Aktionen:

iam:AttachGroupPolicyiam:AttachUserPolicyiam:CreatePolicyiam:ListAttachedGroupPoliciesiam:ListAttachedUserPoliciesiam:ListGroupsiam:ListPoliciesiam:ListUsers

Weitere Informationen finden Sie unter Übersicht über IAM-Richtlinien im IAM-Benutzerhandbuch.2. Wählen Sie im Navigationsbereich Policies aus.3. Um einer IAM-Gruppe oder einem IAM-Benutzer einen benutzerdefinierten Satz von AWS CodeBuild-

Zugriffsberechtigungen hinzuzufügen, fahren Sie mit Schritt 4 in dieser Anleitung fort.

Um einer IAM-Gruppe oder einem IAM-Benutzer einen Standardsatz von CodeBuild-Zugriffsberechtigungen hinzuzufügen, wählen Sie Policy Type (Richtlinientyp), AWS Managed undgehen Sie dann wie folgt vor:

• Um CodeBuild Vollzugriffsberechtigungen hinzuzufügen, wählen Sie das FeldAWSCodeBuildAdminAccess aus, klicken auf Policy Actions (Richtlinienaktionen) und anschließendauf Attach (Anfügen). Wählen Sie das Feld neben der Ziel-IAM-Gruppe bzw. dem Ziel-IAM-Benutzerund klicken Sie auf Attach Policy (Richtlinie anfügen). Wiederholen Sie diese Vorgehensweise für dieRichtlinien AmazonS3ReadOnlyAccess und IAMFullAccess.

• Um Zugriffsberechtigungen für alle Bereiche von CodeBuild mit Ausnahme der Build-Projektadministration hinzuzufügen, wählen Sie das Feld AWSCodeBuildDeveloperAccessaus, klicken auf Policy Actions (Richtlinienaktionen) und anschließend auf Attach (Anfügen).Wählen Sie das Feld neben der Ziel-IAM-Gruppe bzw. dem Ziel-IAM-Benutzer und klicken Sieauf Attach Policy (Richtlinie anfügen). Wiederholen Sie diese Vorgehensweise für die RichtlinieAmazonS3ReadOnlyAccess.

• Um CodeBuild schreibgeschützte Zugriffsberechtigungen hinzuzufügen, wählen Sie die FelderAWSCodeBuildReadOnlyAccess aus. Wählen Sie das Feld neben der Ziel-IAM-Gruppe bzw. demZiel-IAM-Benutzer und klicken Sie auf Attach Policy (Richtlinie anfügen). Wiederholen Sie dieseVorgehensweise für die Richtlinie AmazonS3ReadOnlyAccess.

Sie haben nun einer IAM-Gruppe oder einem IAM-Benutzer einen Standardsatz von CodeBuild-Zugriffsberechtigungen hinzugefügt. Lassen Sie die restlichen Schritte in dieser Anleitung aus.

4. Wählen Sie Create Policy (Richtlinie erstellen) aus.

API-Version 2016-10-06392

Page 400: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen von CodeBuild-Zugriffsberechtigungen

zu IAM-Gruppen oder IAM-Benutzern

5. Klicken Sie auf der Seite Create Policy neben Create Your Own Policy auf Select.6. Geben Sie auf der Seite Review Policy (Richtlinie überprüfen) für Policy Name (Richtlinienname)

einen neuen Namen für die Richtlinie ein (z. B. CodeBuildAccessPolicy). Wenn Sie einen anderenNamen verwenden, müssen Sie diesen während der gesamten Anleitung verwenden.

7. Geben Sie unter Policy Document (Richtliniendokument) Folgendes ein und klicken Sie anschließendauf Create Policy (Richtlinie erstellen):

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildDefaultPolicy", "Effect": "Allow", "Action": [ "codebuild:*", "iam:PassRole" ], "Resource": "*" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ]}

Note

Diese Richtlinie ermöglicht Zugriff auf alle CodeBuild-Aktionen und eine möglicherweise großeAnzahl von AWS-Ressourcen. Um die Berechtigungen auf bestimmte CodeBuild-Aktionen zubeschränken, ändern Sie den Wert für codebuild:* in der CodeBuild-Richtlinienanweisung.Weitere Informationen finden Sie im Identitäts- und Zugriffsverwaltung (p. 359).Um den Zugriff auf bestimmte AWS-Ressourcen zu beschränken, ändern Sie denWert des Resource-Objekts. Weitere Informationen finden Sie im Identitäts- undZugriffsverwaltung (p. 359).

8. Klicken Sie im Navigationsbereich auf Groups oder Users.

API-Version 2016-10-06393

Page 401: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen von CodeBuild-Zugriffsberechtigungen

zu IAM-Gruppen oder IAM-Benutzern

9. Wählen Sie in der Liste der Gruppen oder Benutzer den Namen der IAM-Gruppe oder des IAM-Benutzers aus, der oder dem Sie CodeBuild-Zugriffsberechtigungen erteilen möchten.

10. Erweitern Sie bei einer Gruppe auf der Seite mit den Gruppeneinstellungen auf der RegisterkartePermissions (Berechtigungen) den Eintrag Managed Policies (Verwaltete Richtlinien) und klicken Siedann auf Attach Policy (Richtlinie anfügen).

Bei einem Benutzer wählen Sie auf der Seite für die Benutzereinstellungen auf der RegisterkartePermissions die Option Add permissions aus.

11. Wählen Sie für eine Gruppe auf der Seite Attach Policy (Richtlinie anfügen) die OptionCodeBuildAccessPolicy und wählen Sie dann Attach Policy (Richtlinie anfügen).

Wählen Sie bei einem Benutzer auf der Seite Add permissions die Option Attach existing policiesdirectly aus. Auswählen CodeBuildaccesspolicy, wählen Sie Als Nächstes: Reivewund wählen Siedann Berechtigungen hinzufügen.

Hinzufügen von CodeBuild-Zugriffsberechtigungen zu IAM-Gruppen oder IAM-Benutzern (AWSCLI)

1. Vergewissern Sie sich, dass Sie die AWS CLI; mit dem AWS-Zugriffsschlüssel und dem geheimenAWS-Zugriffsschlüssel für eine der IAM-Entitäten konfiguriert haben, wie in der vorherigen Anleitungbeschrieben. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface imAWS Command Line Interface-Benutzerhandbuch.

2. Um einer AWS CodeBuild-Gruppe oder einem IAM-Benutzer einen benutzerdefinierten Satz von IAM-Zugriffsberechtigungen hinzuzufügen, fahren Sie mit Schritt 3 in dieser Anleitung fort.

Um einer IAM-Gruppe oder einem IAM-Benutzer einen Standardsatz von CodeBuild-Zugriffsberechtigungen hinzuzufügen, gehen Sie folgendermaßen vor:

Je nachdem, ob Sie die Berechtigungen einer IAM-Gruppe oder einem IAM-Benutzer hinzufügenmöchten, führen Sie einen der folgenden Befehle aus:

aws iam attach-group-policy --group-name group-name --policy-arn policy-arn

aws iam attach-user-policy --user-name user-name --policy-arn policy-arn

Sie müssen den Befehl dreimal ausführen, ersetzen group-name –oder– user-name mit IAMGruppenname oder IAM Benutzername und ersetzen policy-arn einmal für jede der folgendenRichtlinien Amazon Resource Names (Arns):

• Um uneingeschränkte Zugriffsberechtigungen für CodeBuild hinzuzufügen, verwenden Sie diefolgenden Richtlinien-ARNs:• arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess

• arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

• arn:aws:iam::aws:policy/IAMFullAccess

• Um Zugriffsberechtigungen für alle Bereiche von CodeBuild mit Ausnahme der Build-Projektadministration hinzuzufügen, verwenden Sie die folgenden Richtlinien-ARNs:• arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess

• arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

• Um nur Lesezugriff für CodeBuild hinzuzufügen, verwenden Sie die folgenden Richtlinien-ARNs:• arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess

• arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

API-Version 2016-10-06394

Page 402: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen von CodeBuild-Zugriffsberechtigungen

zu IAM-Gruppen oder IAM-Benutzern

Sie haben nun einer IAM-Gruppe oder einem IAM-Benutzer einen Standardsatz von CodeBuild-Zugriffsberechtigungen hinzugefügt. Lassen Sie die restlichen Schritte in dieser Anleitung aus.

3. In einem leeren Verzeichnis auf der lokalen Workstation oder Instanz, in dem AWS CLI ist installiert,erstellen Sie eine Datei put-group-policy.json oder put-user-policy.json. Wenn Sie einenanderen Dateinamen verwenden, müssen Sie ihn während dieses Verfahrens verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*", "iam:PassRole" ], "Resource": "*" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ]}

Note

Diese Richtlinie ermöglicht Zugriff auf alle CodeBuild-Aktionen und eine möglicherweise großeAnzahl von AWS-Ressourcen. Um die Berechtigungen auf bestimmte CodeBuild-Aktionen zubeschränken, ändern Sie den Wert für codebuild:* in der CodeBuild-Richtlinienanweisung.Weitere Informationen finden Sie im Identitäts- und Zugriffsverwaltung (p. 359). Umden Zugriff auf bestimmte AWS-Ressourcen zu beschränken, ändern Sie den Wert deszugehörigen Resource-Objekts. Weitere Informationen finden Sie unter Identitäts- undZugriffsverwaltung (p. 359) oder in der Sicherheitsdokumentation zu dem betreffenden AWS-Service.

API-Version 2016-10-06395

Page 403: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen Sie eine CodeBuild-Servicerolle

4. Wechseln Sie in das Verzeichnis, in dem Sie die Datei gespeichert haben, und führen Sie einen derfolgenden Befehle aus. Sie können verschiedene Werte für CodeBuildGroupAccessPolicy undCodeBuildUserAccessPolicy. Wenn Sie verschiedene Werte verwenden, sollten Sie diese hierverwenden.

Für eine IAM-Gruppe:

aws iam put-group-policy --group-name group-name --policy-name CodeBuildGroupAccessPolicy --policy-document file://put-group-policy.json

Für einen IAM-Benutzer:

aws iam put-user-policy --user-name user-name --policy-name CodeBuildUserAccessPolicy --policy-document file://put-user-policy.json

In den vorhergehenden Befehlen tauschen Sie group-name –oder– user-name mit dem Namen desZiels IAM Gruppe oder IAM Benutzer.

Erstellen Sie eine CodeBuild-ServicerolleDie AWS CodeBuild-Servicerolle wird benötigt, damit CodeBuild in Ihrem Namen mit abhängigen AWS-Services interagieren kann. Sie können eine CodeBuild-Servicerolle über die CodeBuild- oder die AWSCodePipeline-Konsole erstellen. Weitere Informationen finden Sie unter .

• Erstellen Sie ein Build-Projekt (Konsole) (p. 207)• Erstellen einer Pipeline, die CodeBuild (CodePipeline-Konsole) verwendet (p. 409)• Hinzufügen einer CodeBuild-Build-Aktion zu einer Pipeline (CodePipeline-Konsole) (p. 416)• Ändern der Einstellungen eines Build-Projekts (Konsole) (p. 259)

Wenn Sie diese Konsolen nicht verwenden möchten, finden Sie in diesem Abschnitt Erläuterungen zumErstellen einer CodeBuild-Servicerolle über die IAM-Konsole oder die AWS CLI.

Note

Die auf dieser Seite beschriebene Servicerolle enthält eine Richtlinie, die Mindestberechtigungenzur Verwendung von CodeBuild gewährt. Je nach Anwendungsfall müssen Sie möglicherweisezusätzliche Berechtigungen hinzufügen. Wenn Sie CodeBuild beispielsweise mit Amazon VirtualPrivate Cloud verwenden möchten, erfordert die von Ihnen erstelle Servicerolle die Berechtigungin der folgenden Richtlinie: Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

So erstellen Sie eine CodeBuild-Servicerolle (Konsole)

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

Sie sollten bereits unter Verwendung eines der folgenden Konten bzw. Benutzer bei der Konsoleangemeldet sein:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Weitere Informationen finden Sie unter ErstellenIhres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM im IAM-Benutzerhandbuch.

• Ein IAM-Benutzer des AWS-Kontos mit der Berechtigung zur Ausführung der folgendenMindestmenge von Aktionen:

API-Version 2016-10-06396

Page 404: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen Sie eine CodeBuild-Servicerolle

iam:AddRoleToInstanceProfileiam:AttachRolePolicyiam:CreateInstanceProfileiam:CreatePolicyiam:CreateRoleiam:GetRoleiam:ListAttachedRolePoliciesiam:ListPoliciesiam:ListRolesiam:PassRoleiam:PutRolePolicyiam:UpdateAssumeRolePolicy

Weitere Informationen finden Sie unter Übersicht über IAM-Richtlinien im IAM-Benutzerhandbuch.2. Wählen Sie im Navigationsbereich Policies aus.3. Wählen Sie Create Policy (Richtlinie erstellen) aus.4. Wählen Sie auf der Seite Create Policy die Option JSON aus.5. Geben Sie für die JSON-Richtlinie das Folgende ein und wählen Sie dann Review Policy (Richtlinie

prüfen) aus:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "*" ] }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": [ "*" ] }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "*" ] }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject"

API-Version 2016-10-06397

Page 405: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen Sie eine CodeBuild-Servicerolle

], "Resource": [ "*" ] }, { "Sid": "ECRPullPolicy", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "*" ] }, { "Sid": "ECRAuthPolicy", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": [ "*" ] }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ]}

Note

Diese Richtlinie enthält Anweisungen, die den Zugriff auf eine möglicherweise großeAnzahl von AWS-Ressourcen ermöglichen. Um den AWS CodeBuild-Zugriff auf bestimmteAWS-Ressourcen zu beschränken, ändern Sie den Wert des Resource-Arrays. WeitereInformationen finden Sie in der Sicherheitsdokumentation zu dem AWS-Service.

6. Geben Sie auf der Seite Review Policy (Richtlinie prüfen) unter Policy Name (Richtlinienname) einenNamen für die Richtlinie ein (z. B. CodeBuildServiceRolePolicy), und wählen Sie dann Createpolicy (Richtlinie erstellen).

Note

Wenn Sie einen anderen Namen verwenden, müssen Sie diesen während der gesamtenAnleitung verwenden.

7. Wählen Sie im Navigationsbereich Roles (Rollen) aus.8. Wählen Sie Create role (Rolle erstellen) aus.9. Wählen Sie auf der Seite Create role (Rolle erstellen) bei bereits ausgewähltem AWS-Service die

Option CodeBuild und klicken Sie dann auf Next:Permissions.10. Auf der Richtlinien für Genehmigungen anhängen Seite, wählen Sie CodeBuildServicerolepolicyund

wählen Sie dann Als Nächstes: Prüfen

API-Version 2016-10-06398

Page 406: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen Sie eine CodeBuild-Servicerolle

11. Geben Sie auf der Seite Create role and review (Rolle erstellen und prüfen) für Role name(Rollenname) einen Namen für die Rolle ein (z. B. CodeBuildServiceRole), und wählen Sie dannCreate role (Rolle erstellen).

So erstellen Sie eine CodeBuild-Servicerolle (AWS CLI)

1. Vergewissern Sie sich, dass Sie die AWS CLI; mit dem AWS-Zugriffsschlüssel und dem geheimenAWS-Zugriffsschlüssel für eine der IAM-Entitäten konfiguriert haben, wie in der vorherigen Anleitungbeschrieben. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface imAWS Command Line Interface-Benutzerhandbuch.

2. In einem leeren Verzeichnis auf der lokalen Workstation oder Instanz, in dem AWS CLI installiertwerden, erstellen Sie zwei Dateien create-role.json und put-role-policy.json. Wenn Sieverschiedene Dateinamen auswählen, müssen Sie diese während dieses Verfahrens verwenden.

create-role.json:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

put-role-policy.json:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchLogsPolicy", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "*" ] }, { "Sid": "CodeCommitPolicy", "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": [ "*" ] }, { "Sid": "S3GetObjectPolicy", "Effect": "Allow", "Action": [ "s3:GetObject",

API-Version 2016-10-06399

Page 407: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen und Konfigurieren eines

AWS KMS-CMK für CodeBuild

"s3:GetObjectVersion" ], "Resource": [ "*" ] }, { "Sid": "S3PutObjectPolicy", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "*" ] }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "*" ] } ]}

Note

Diese Richtlinie enthält Anweisungen, die den Zugriff auf eine möglicherweise großeAnzahl von AWS-Ressourcen ermöglichen. Um den AWS CodeBuild-Zugriff auf bestimmteAWS-Ressourcen zu beschränken, ändern Sie den Wert des Resource-Arrays. WeitereInformationen finden Sie in der Sicherheitsdokumentation zu dem AWS-Service.

3. Wechseln Sie in das Verzeichnis, in dem Sie die obigen Dateien gespeichert haben, und führen Siedie folgenden Befehle einzeln und in der angegebenen Reihenfolge aus. Sie können andere Werte fürCodeBuildServiceRole und CodeBuildServiceRolePolicy verwenden. In diesem Fall müssenSie sie hier verwenden.

aws iam create-role --role-name CodeBuildServiceRole --assume-role-policy-document file://create-role.json

aws iam put-role-policy --role-name CodeBuildServiceRole --policy-name CodeBuildServiceRolePolicy --policy-document file://put-role-policy.json

Erstellen und Konfigurieren eines AWS KMS-CMK fürCodeBuildDamit AWS CodeBuild seine Build-Ausgabeartefakte verschlüsseln kann, benötigt es Zugriff auf einenAWS KMS-CMK (Customer Master Key, Kundenhauptschlüssel). Standardmäßig verwendet CodeBuild denAWS-verwalteten CMK für Amazon S3 in Ihrem AWS-Konto.

Wenn Sie diesen CMK nicht verwenden möchten, müssen Sie einen vom Kunden verwalteten CMK selbsterstellen und konfigurieren. In diesem Abschnitt wird die entsprechende Vorgehensweise über die IAM-Konsole beschrieben.

API-Version 2016-10-06400

Page 408: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen und Konfigurieren eines

AWS KMS-CMK für CodeBuild

Weitere Informationen über CMKs finden Sie unter AWS Key Management Service Konzepte undSchlüssel erstellen im AWS KMS-Entwicklerhandbuch.

Um einen CMK zur Verwendung durch CodeBuild zu erstellen, befolgen Sie die Anweisungen im Abschnitt"Eine Schüsselrichtlinie ändern" unter Ändern einer Schlüsselrichtlinie im AWS KMS-Entwicklerhandbuch.Fügen Sie dann die folgenden Aussagen hinzu (zwischen ### BEGIN ADDING STATEMENTS HERE### und ### END ADDING STATEMENTS HERE ###) zur Schlüsselrichtlinie. Auslassungspunkte (...)werden zur Abkürzung verwendet und weisen auf die Stellen hin, an denen die Anweisungen hinzugefügtwerden müssen. Entfernen Sie keine Anweisungen und geben Sie die Auslassungspunkte nicht in dieSchlüsselrichtlinie ein.

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENTS HERE ### { "Sid": "Allow access through Amazon S3 for all principals in the account that are authorized to use Amazon S3", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.region-ID.amazonaws.com", "kms:CallerAccount": "account-ID" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-ID:role/CodeBuild-service-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ### END ADDING STATEMENTS HERE ### { "Sid": "Enable IAM User Permissions", ... }, { "Sid": "Allow access for Key Administrators", ... }, { "Sid": "Allow use of the key", ...

API-Version 2016-10-06401

Page 409: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchInstallieren und Konfigurieren der AWS CLI.

}, { "Sid": "Allow attachment of persistent resources", ... } ]}

• region-ID repräsentiert die ID des AWS Region, in dem die Amazon S3 Eimer zugeordnet mitCodeBuild befinden sich (zum Beispiel: us-east-1).

• account-ID repräsentiert die ID des der AWS Konto, das CMK besitzt.• CodeBuild-service-role stellt den Namen des CodeBuild die von Ihnen zuvor erstellte oder

identifizierte Servicerolle.

Note

Um einen CMK über die IAM-Konsole zu erstellen oder zu konfigurieren, müssen Sie sichzunächst unter Verwendung eines der folgenden Konten bzw. Benutzer bei der AWS ManagementConsole anmelden:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Weitere Informationen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM imIAM-Benutzerhandbuch.

• IAM-Benutzer in Ihrem AWS-Konto mit Berechtigung zum Erstellen oder Verändern des CMK.Weitere Informationen finden Sie unter Erforderliche Berechtigungen für die Verwendung derAWS KMS-Konsole im AWS KMS-Entwicklerhandbuch.

Installieren und Konfigurieren der AWS CLI.Für den Zugriff auf AWS CodeBuild können Sie die AWS CLI mit – oder anstelle – der CodeBuild-Konsole,der CodePipeline-Konsole oder der AWS SDKs verwenden. Informationen zur Konfiguration der AWS CLIfinden Sie unter Erste Schritte mit der AWS Command Line Interface im AWS Command Line Interface-Benutzerhandbuch.

1. Geben Sie den folgenden Befehl ein, um zu überprüfen, ob Ihre Installation der AWS CLI CodeBuildunterstützt:

aws codebuild list-builds

Ist der Befehl erfolgreich, gibt er als Ausgabe Informationen zurück, die wie folgt aussehen sollten:

{ "ids": []}

Die leeren eckigen Klammern weisen darauf hin, dass Sie noch keine Builds ausgeführt haben.2. Wenn ein Fehler ausgegeben wird, müssen Sie Ihre aktuelle Version der AWS CLI deinstallieren und

dann die neueste Version installieren. Weitere Informationen zum Deinstallieren der AWS CLI undInstallieren der AWS Command Line Interface finden Sie im Benutzerhandbuch für AWS CommandLine Interface.

API-Version 2016-10-06402

Page 410: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBefehlszeilenreferenz

Befehlszeilenreferenz für AWS CodeBuildDie AWS CLI bietet zwei Befehle für das Automatisieren von AWS CodeBuild. Verwenden Sie dieInformationen in diesem Thema als Ergänzung zu Benutzerhandbuch für AWS Command Line Interfaceund zu AWS CLI Reference for AWS CodeBuild.

Nicht das, wonach Sie gesucht haben? Wenn Sie die AWS-SDKs zum Aufrufen von CodeBuild verwendenmöchten, finden Sie weitere Informationen unter AWS SDKs- und Tools-Referenz (p. 404).

Zur Verwendung der Informationen in diesem Thema sollten Sie bereits die AWS CLI für die Nutzung mitCodeBuild installiert und konfiguriert haben, wie beschrieben in Installieren und Konfigurieren der AWSCLI. (p. 402).

Informationen zur Angabe des Endpunkts für AWS CLI mit der CodeBuild finden Sie unter Angeben desAWS CodeBuild-Endpunkts (AWS CLI) (p. 405).

Führen Sie diesen Befehl aus, um eine Liste von CodeBuild-Befehlen aufzurufen.

aws codebuild help

Führen Sie diesen Befehl aus, um Informationen zu einem bestimmten CodeBuild-Befehl anzuzeigen,wobei command-name für den Namen des Befehls steht.

aws codebuild command-name help

Die CodeBuild-Befehle umfassen:

• batch-delete-builds: Löscht ein oder mehrere Builds in CodeBuild. Weitere Informationen findenSie unter Löschen von Builds (AWS CLI) (p. 304).

• batch-get-builds: Ruft Informationen über ein oder mehrere Builds in CodeBuild ab. WeitereInformationen finden Sie unter Anzeigen von Build-Details (AWS CLI) (p. 291).

• batch-get-projects: Ruft Informationen über ein oder mehrere angegebene Build-Projekte ab.Weitere Informationen finden Sie unter Anzeigen der Details eines Build-Projekts (AWS CLI) (p. 234).

• create-project: Erstellt ein Build-Projekt. Weitere Informationen finden Sie unter Erstellen einesBuild-Projekts (AWS CLI) (p. 217).

• delete-project: Löscht ein Build-Projekt. Weitere Informationen finden Sie unter Löschen einesBuild-Projekts (AWS CLI) (p. 270).

• list-buildsEs werden die Amazon-Ressourcenamen (ARNs) für Builds in CodeBuild aufgeführt.Weitere Informationen finden Sie unter Anzeigen einer Liste mit Build-IDs (AWS CLI) (p. 293).

• list-builds-for-project: Ruft eine Liste von Build-IDs auf, die mit einem angegebenen Build-Projekt verbunden sind. Weitere Informationen finden Sie unter Anzeigen einer Liste mit Build-IDs für einBuild-Projekt (AWS CLI) (p. 296).

• list-curated-environment-images: Ruft eine Liste von Docker-Images ab, die von CodeBuildverwaltet werden, die Sie für die Builds einsetzen können. Weitere Informationen finden Sie unter VonCodeBuild bereitgestellte Docker-Images (p. 175).

• list-projects: Anzeigen einer Liste mit Build-Projektnamen. Weitere Informationen finden Sie unterAnzeigen einer Liste mit Build-Projektnamen (AWS CLI) (p. 232).

• start-build: Startet die Build-Ausführung. Weitere Informationen finden Sie unter Ausführen einesBuild (AWS CLI) (p. 284).

• stop-build: Versucht, die Ausführung des angegebenen Builds zu stoppen. Weitere Informationenfinden Sie unter Stoppen eines Builds (AWS CLI) (p. 298).

API-Version 2016-10-06403

Page 411: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAWS SDKs- und Tools-Referenz

• update-project: Ändert Informationen über das angegebene Build-Projekt. Weitere Informationenfinden Sie unter Ändern der Einstellungen eines Build-Projekts (AWS CLI) (p. 268).

AWS SDKs- und Tools-Referenz für AWSCodeBuild

Wenn Sie eines der AWS SDKs oder Tools zur Automatisierung von AWS CodeBuild verwenden möchten,finden Sie weitere Informationen in den folgenden Ressourcen.

Wenn Sie die AWS CLI zum Ausführen von CodeBuild verwenden möchten, finden Sie weitereInformationen unter Befehlszeilenreferenz (p. 403).

Unterstützte AWS SDKs und Tools für AWS CodeBuildDie folgenden AWS SDKs und Tools unterstützen CodeBuild:

• Das AWS SDK für C++. Weitere Informationen finden Sie im Abschnitt über den Aws::CodeBuild-Namespace derAWS SDK für C++ API-Referenz.

• Das AWS SDK für Go. Weitere Informationen finden Sie im Abschnitt codebuild der AWS SDK für GoAPI-Referenz.

• Das AWS SDK für Java. Weitere Informationen finden Sie in den Abschnittencom.amazonaws.services.codebuild und com.amazonaws.services.codebuild.model derAWS-SDK für Java API-Referenz.

• Das AWS-SDK für JavaScript im Browser und das AWS-SDK für JavaScript in Node.js. WeitereInformationen finden Sie im Abschnitt Klasse: AWS.CodeBuild der AWS SDK für JavaScript API-Referenz.

• Das AWS SDK für .NET. Weitere Informationen finden Sie in den Abschnitten Amazon.CodeBuild undAmazon.CodeBuild.Model Namespace der AWS SDK für .NET API-Referenz.

• Das AWS SDK für PHP. Weitere Informationen finden Sie im Abschnitt Namespace Aws\CodeBuild derAWS SDK für PHP API-Referenz.

• Das AWS SDK für Python (Boto3). Weitere Informationen finden Sie im Abschnitt CodeBuild der Boto 3-Dokumentation.

• Das AWS SDK für Ruby. Weitere Informationen finden Sie im Abschnitt Module: Aws::CodeBuild derAWS SDK für Ruby API-Referenz.

• Die AWS Tools für PowerShell. Weitere Informationen finden Sie im Abschnitt AWS CodeBuild der AWSTools für PowerShell Cmdlet-Referenz.

Angeben des AWS CodeBuild-EndpunktsSie können die AWS Command Line Interface (AWS CLI) oder eines der AWS-SDKs verwenden, um denvon AWS CodeBuild verwendeten Endpunkt anzugeben. Es ist ein Endpunkt für jede Region vorhanden,in der CodeBuild verfügbar ist. Zusätzlich zu einem regionalen Endpunkt, verfügen vier Regionen zudemüber einen Endpunkt mit Federal Information Processing Standard (FIPS). Weitere Informationen zu FIPS-Endpunkten finden Sie unter FIPS 140-2-Übersicht.

Die Angabe eines Endpunkts ist optional. Wenn Sie den zu verwendenden Endpunkt nicht ausdrücklichbei CodeBuild angeben, wird der Endpunkt vom Service verwendet, der der Region Ihres AWS-Kontoszugeordnet ist. CodeBuild verwendet nie standardmäßig einen FIPS-Endpunkt. Wenn Sie einen FIPS-

API-Version 2016-10-06404

Page 412: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAngeben des AWS CodeBuild-Endpunkts (AWS CLI)

Endpunkt verwenden möchten, müssen Sie CodeBuild mit einer der folgenden Methoden diesem Endpunktzuordnen.

Note

Sie können einen Alias oder einen Regionsnamen verwenden, um einen Endpunkt mit einemAWS-SDK anzugeben. Wenn Sie die AWS CLI nutzen, müssen Sie den vollständige Namen desEndpunkts verwenden.

Informationen zu Endpunkten, die mit CodeBuild verwendet werden können, finden Sie unter CodeBuild-Regionen und Endpunkte.

Themen• Angeben des AWS CodeBuild-Endpunkts (AWS CLI) (p. 405)• Angeben des AWS CodeBuild-Endpunkts (AWS SDK) (p. 405)

Angeben des AWS CodeBuild-Endpunkts (AWS CLI)Mit der AWS CLI können Sie den Endpunkt angeben, über den mit dem --endpoint-url-Argumentin einem beliebigen CodeBuild-Befehl auf AWS CodeBuild zugegriffen wird. Sie können diesen Befehlbeispielsweise ausführen, um eine Liste mit den Namen von Projekt-Builds anzurufen, die in der RegionUSA Ost (N.-Virginia)-Region Endpunkte mit Federal Information Processing Standards (FIPS) verwenden:

aws codebuild list-projects --endpoint-url https://codebuild-fips.us-east-1.amazonaws.com

Fügen Sie am Anfang des Endpunkts https:// ein.

Das AWS CLI-Argument --endpoint-url steht allen AWS-Services zur Verfügung. WeitereInformationen dazu und zu anderen AWS CLI-Argumenten finden Sie unter AWS CLI CommandReference.

Angeben des AWS CodeBuild-Endpunkts (AWS SDK)Sie können den Endpunkt für den Zugriff auf AWS CodeBuild mithilfe eines AWS-SDKs angeben. Obwohlin diesem Beispiel das AWS-SDK für Java verwendet wird, können Sie den Endpunkt mit den anderenAWS-SDKs angeben.

Verwenden Sie die withEndpointConfiguration-Methode bei der Konstruktion des AWSCodeBuild-Clients. Verwenden Sie dieses Format:

AWSCodeBuild awsCodeBuild = AWSCodeBuildClientBuilder.standard(). withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("endpoint", "region")). withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)). build();

Weitere Informationen zu AWSCodeBuildClientBuilder finden Sie unter ClassAWSCodeBuildClientBuilder.

Die in withCredentials verwendeten Anmeldeinformationen müssen vom TypAWSCredentialsProvider sein. Weitere Informationen finden Sie unter Arbeiten mit AWS-Anmeldeinformationen.

API-Version 2016-10-06405

Page 413: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchAngeben des AWS CodeBuild-Endpunkts (AWS SDK)

Fügen Sie am Anfang des Endpunkts kein https:// ein.

Wenn Sie einen Endpunkt ohne FIPS angeben möchten, können Sie die Region anstelle des tatsächlichenEndpunkts verwenden. Wenn Sie beispielsweise den Endpunkt in der Region USA Ost (Nord-Virginia)angeben möchten, können Sie us-east-1 anstelle des vollständigen Endpunktnamens codebuild.us-east-1.amazonaws.com verwenden.

Wenn Sie einen FIPS-Endpunkt angeben möchten, können Sie Ihren Code mit einem Alias vereinfachen.Nur FIPS-Endpunkte verfügen über einen Alias. Andere Endpunkte müssen mithilfe ihrer Region oder desvollständigen Namens angegeben werden.

In der folgenden Tabelle werden die Alias für jeden der vier verfügbaren FIPS-Endpunkte aufgeführt:

Name derRegion

Region Endpunkt Alias

USA Ost(Nord-Virginia)

us-east-1 codebuild-fips.us-east-1.amazonaws.com us-east-1-fips

USA Ost(Ohio)

us-east-2 codebuild-fips.us-east-2.amazonaws.com us-east-2-fips

USA West(Nordkalifornien)

us-west-1 codebuild-fips.us-west-1.amazonaws.com us-west-1-fips

USA West(Oregon)

us-west-2 codebuild-fips.us-west-2.amazonaws.com us-west-2-fips

So geben Sie die Verwendung des FIPS-Endpunkts in der Region USA West (Oregon) mit einem Alias an:

AWSCodeBuild awsCodeBuild = AWSCodeBuildClientBuilder.standard(). withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("us-west-2-fips", "us-west-2")). withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)). build();

So geben Sie die Verwendung des Endpunkts ohne FIPS in der Region USA Ost (Nord-Virginia) an:

AWSCodeBuild awsCodeBuild = AWSCodeBuildClientBuilder.standard(). withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("us-east-1", "us-east-1")). withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)). build();

So geben Sie die Verwendung des Endpunkts ohne FIPS in der Region Asien-Pazifik (Mumbai) an:

AWSCodeBuild awsCodeBuild = AWSCodeBuildClientBuilder.standard(). withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("ap-south-1", "ap-south-1")). withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)).

API-Version 2016-10-06406

Page 414: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDirektes Ausführen von CodeBuild

build();

Direktes Ausführen von AWS CodeBuildSie können die AWS CodeBuild-Konsole, AWS CLI oder das AWS-SDK verwenden, um Builds direkt mitCodeBuild einzurichten, auszuführen und zu überwachen.

Nicht das, wonach Sie gesucht haben? Informationen zum Ausführen von CodeBuild mitAWS CodePipelinefinden Sie unter Verwenden von CodePipeline mit CodeBuild (p. 407).

Themen• Prerequisites (p. 407)• Direktes Ausführen von AWS CodeBuild (p. 407)

PrerequisitesBeantworten Sie die Fragen in Planen eines Builds (p. 149).

Direktes Ausführen von AWS CodeBuild1. Das Build-Projekt erstellen Wenn Sie die Konsole verwenden möchten, lesen Sie Erstellen Sie ein

Build-Projekt (Konsole) (p. 207). Wenn Sie die AWS CLI verwenden möchten, lesen Sie Erstellen einesBuild-Projekts (AWS CLI) (p. 217).

2. Führen Sie den Build aus. Wenn Sie die Konsole verwenden möchten, lesen Sie Ausführen einesBuild (Konsole) (p. 279). Wenn Sie die AWS CLI verwenden möchten, lesen Sie Ausführen eines Build(AWS CLI) (p. 284).

3. Rufen Sie Informationen zum Build ab. Wenn Sie die Konsole verwenden möchten, lesen Sie Anzeigenvon Build-Details (Konsole) (p. 291). Wenn Sie die AWS CLI verwenden möchten, lesen Sie Anzeigenvon Build-Details (AWS CLI) (p. 291).

Verwenden von AWS CodePipeline mit AWSCodeBuild zum Testen von Codes und zumAusführen von Builds

Sie können Ihr Freigabeverfahren durch den Einsatz von AWS CodePipeline automatisieren, um IhrenCode zu testen und Builds mit AWS CodeBuild auszuführen.

In der folgenden Tabelle werden Aufgaben und Methoden aufgeführt, die zur Ausführung zur Verfügungstehen. Die Durchführung dieser Aufgaben mit AWS SDKs wird in diesem Thema nicht beschrieben.

Aufgabe VerfügbareAnsätze

In diesem Thema beschriebene Ansätze

Erstellen einerContinuous

• CodePipeline-Konsole

• Verwenden der CodePipeline-Konsole. (p. 409)

API-Version 2016-10-06407

Page 415: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchPrerequisites

Aufgabe VerfügbareAnsätze

In diesem Thema beschriebene Ansätze

Delivery (CD)-Pipeline mitCodePipeline,die Builds mitCodeBuildautomatisiert

• AWS CLI• AWS-SDKs

• Verwenden Sie die . AWS CLI (p. 412)• Sie können die Informationen in diesem Thema für AWS

SDKs anpassen. Weitere Informationen finden Sie inder Dokumentation zur create pipeline für IhreProgrammiersprache im Abschnitt SDKs von Tools fürAmazon Web Services oder unter CreatePipeline imAWS CodePipeline-API-Referenz.

Hinzufügen einerTest- und Build-Automatisierungmit CodeBuild zueiner bestehendenPipeline inCodePipeline

• CodePipeline-Konsole

• AWS CLI• AWS-SDKs

• Verwenden Sie die CodePipeline Konsole zum Hinzufügenvon Build Automation (p. 416)

• Verwenden Sie die CodePipeline Konsole zum Hinzufügenvon Testautomatisierung (p. 420)

• Sie können die Informationen in diesem Thema für dieAWS CLI anpassen, um eine Pipeline zu erstellen, die eineCodeBuild-Build-Aktion oder -Testaktion enthält. WeitereInformationen finden Sie unter Edit a Pipeline (AWS CLI)und dem Verweis auf die CodePipeline-Pipeline-Struktur imAWS CodePipeline-Benutzerhandbuch.

• Sie können die Informationen in diesem Thema für diePipeline der AWS SDKs anpassen. Weitere Informationenfinden Sie in der Dokumentation zur Aktualisierungeiner Pipeline für Ihre Programmiersprache im AbschnittSDKs von Tools für Amazon Web Services oder unterUpdatePipeline im AWS CodePipeline-API-Referenz.

Themen• Prerequisites (p. 408)• Erstellen einer Pipeline, die CodeBuild (CodePipeline-Konsole) verwendet (p. 409)• Erstellen einer Pipeline unter Verwendung von CodeBuild (AWS CLI) (p. 412)• Hinzufügen einer CodeBuild-Build-Aktion zu einer Pipeline (CodePipeline-Konsole) (p. 416)• Hinzufügen einer CodeBuild-Testaktion zu einer Pipeline (CodePipeline-Konsole) (p. 420)

Prerequisites1. Beantworten Sie die Fragen in Planen eines Builds (p. 149).2. Wenn Sie für den Zugriff auf CodePipeline einen IAM-Benutzer anstelle eines AWS-Stammkontos

oder IAM-Administratorbenutzers verwenden, fügen Sie dem Benutzer (oder der IAM-Gruppe, derder Benutzer angehört) die verwaltete AWSCodePipelineFullAccess-Richtlinie hinzu. Es wirdnicht empfohlen, ein AWS-Stammkonto zu verwenden. Diese Richtlinie erteilt dem Benutzer dieBerechtigung zum Erstellen der Pipeline in CodePipeline. Weitere Informationen finden Sie unterAnfügen verwalteter Richtlinien im IAM-Benutzerhandbuch.

Note

Die IAM-Entität, die dem Benutzer (oder der IAM-Gruppe, der dieser Benutzer angehört)die Richtlinie anfügt, muss über die Berechtigung zum Hinzufügen von Richtlinien in IAMverfügen. Weitere Informationen finden Sie unter Delegating Permissions to Administer IAMUsers, Groups, and Credentials im IAM-Benutzerhandbuch.

3. Erstellen Sie eine CodePipeline-Servicerolle, wenn in Ihrem AWS-Konto noch keine vorhanden ist.CodePipeline verwendet diese Servicerolle, um in Ihrem Namen mit anderen AWS-Services, u. a. mit

API-Version 2016-10-06408

Page 416: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline, die CodeBuild

(CodePipeline-Konsole) verwendet

AWS CodeBuild, zu interagieren. Um beispielsweise über die AWS CLI eine CodePipeline-Servicerollezu erstellen, führen Sie den IAM-Befehl create-role aus:

Für Linux, macOS, or Unix: *

aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'

Für Windows:

aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"

Note

Die IAM-Entität, die diese CodePipeline-Servicerolle erstellt, muss über die entsprechendeBerechtigung zur Erstellung von Servicerollen in IAM verfügen.

4. Nachdem Sie eine CodePipeline-Servicerolle erstellt oder eine vorhandene identifiziert haben, müssenSie der Servicerolle die standardmäßige CodePipeline-Servicerollenrichtlinie hinzufügen, wie imAbschnitt Prüfen der standardmäßigen CodePipeline-Servicerollenrichtlinie im AWS CodePipeline-Benutzerhandbuch beschrieben, falls sie noch nicht Teil der Richtlinie für die Rolle ist.

Note

Die IAM-Entität, durch die diese CodePipeline-Servicerollenrichtlinie hinzugefügt wird,muss über die entsprechende Berechtigung zum Hinzufügen von Servicerollenrichtlinien zuServicerollen in IAM verfügen.

5. Quellcode zu einem von der Datenbank unterstützten Repository erstellen und hochladen CodeBuildund CodePipeline, wie z. B. CodeCommit, Amazon S3oder Github. ( ( (CodePipeline unterstütztBitbucket derzeit nicht.) Der Quellcode sollte eine Buildspec-Datei enthalten, Sie können jedoch eineAngabe erklären, wenn Sie ein Build-Projekt später in diesem Thema definieren. Weitere Informationenfinden Sie unter Build-Spezifikationsreferenz (p. 150).

Important

Wenn Sie planen, die Pipeline zur Bereitstellung des Quellcodes einzusetzen, muss dasBuild-Ausgabeartifakt mit dem von Ihnen verwendeten Bereitstellungssystem kompatibel sein.

• Weitere Informationen zu CodeDeploy finden Sie unter AWS CodeDeploy-Beispiel (p. 62)in diesem Leitfaden und auch unter Bereitstellen einer Revision für CodeDeploy im AWSCodeDeploy-Benutzerhandbuch.

• Weitere Informationen zu AWS Elastic Beanstalk finden Sie unter AWS Elastic Beanstalk-Beispiel (p. 74) in diesem Leitfaden und auch unter Erstellen eines Anwendungsquell-Bundles im AWS Elastic Beanstalk-Entwicklerhandbuch.

• Weitere Informationen zu AWS OpsWorks finden Sie unter Anwendungsquelle undVerwenden von CodePipeline mit AWS OpsWorks im AWS OpsWorks-Benutzerhandbuch.

Erstellen einer Pipeline, die CodeBuild (CodePipeline-Konsole) verwendetSetzen Sie das folgende Verfahren ein, um eine Pipeline zu erstellen, die zum Aufbau und zurBereitstellung des Quellcodes CodeBuild verwendet.

API-Version 2016-10-06409

Page 417: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline, die CodeBuild

(CodePipeline-Konsole) verwendet

So erstellen Sie eine Pipeline, die nur Ihren Quellcode testet:

• Setzen Sie die das folgende Verfahren ein, um eine Pipeline zu erstellen, und anschließend löschen Siedie Build- und Beta-Stufen aus der Pipeline. Fügen Sie dann mithilfe des Hinzufügen einer CodeBuild-Testaktion zu einer Pipeline (CodePipeline-Konsole) (p. 420)-Verfahrens dieses Themas eineTestaktion mit CodeBuild zur Pipeline hinzu.

• Erstellen Sie die Pipeline mithilfe eines anderen Verfahrens dieses Themas und fügen Sie dann mit demHinzufügen einer CodeBuild-Testaktion zu einer Pipeline (CodePipeline-Konsole) (p. 420)-Verfahrendieses Themas eine Testaktion mit CodeBuild zur Pipeline hinzu.

Erstellen einer Pipeline mit CodeBuild mithilfe des Assistenten zum Erstellen einer Pipeline inCodePipeline

1. Melden Sie sich an der AWS Management Console Konsole an, indem Sie Folgendes verwenden:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Detaillierte Anweisungen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM im IAM-Benutzerhandbuch.

• Ein IAM-Benutzer des AWS-Kontos mit der Berechtigung zur Nutzung einer Mindestmenge vonAktionen:

codepipeline:*iam:ListRolesiam:PassRoles3:CreateBuckets3:GetBucketPolicys3:GetObjects3:ListAllMyBucketss3:ListBuckets3:PutBucketPolicycodecommit:ListBranchescodecommit:ListRepositoriescodedeploy:GetApplicationcodedeploy:GetDeploymentGroupcodedeploy:ListApplicationscodedeploy:ListDeploymentGroupselasticbeanstalk:DescribeApplicationselasticbeanstalk:DescribeEnvironmentslambda:GetFunctionConfigurationlambda:ListFunctionsopsworks:DescribeStacksopsworks:DescribeAppsopsworks:DescribeLayers

2. Öffnen Sie die AWS CodePipeline-Konsole unter https://console.aws.amazon.com/codesuite/codepipeline/home.

3. Klicken Sie in der AWS-Regionenauswahl die AWS-Region aus, in der sich die AWS-Ressourcen IhresBuild-Projekts befinden. Dies muss eine AWS-Region sein, in der CodeBuild unterstützt wird. WeitereInformationen finden Sie unter AWS CodeBuild im Allgemeine Amazon Web Services-Referenz.

4. Erstellen Sie eine Pipeline Wenn eine CodePipeline-Informationsseite angezeigt wird, wählen SieCreate Pipeline (Pipeline erstellen) aus. Wenn eine Pipelines-Seite angezeigt wird, wählen Sie dieOption Create pipeline (Pipeline erstellen) aus.

5. Auf der Schritt 1: Wählen Sie die Pipeline-Einstellungen Seite, für Pipeline-Name, geben Sie einenNamen für die Pipeline ein (z. B. CodeBuildDemoPipeline). Wenn Sie einen anderen Namenauswählen, müssen Sie diesen während der gesamten Anleitung verwenden.

6. Führen Sie für Role name (Rollenname) einen der folgenden Schritte aus:

API-Version 2016-10-06410

Page 418: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline, die CodeBuild

(CodePipeline-Konsole) verwendet

Wählen Sie New service role (Neue Servicerolle) aus und geben Sie in Role Name (Rollenname) denNamen für Ihre neue Servicerolle aus.

Wählen Sie Existing service role (Vorhandene Servicerolle) und klicken Sie dann auf die CodePipeline-Servicerolle, die Sie erstellt oder als Bestandteil der Voraussetzungen für dieses Thema ermittelthaben.

7. Für Artifact store (Artefact speichern) führen Sie einen der folgenden Schritte aus:

• Wählen Sie Default location (Standardspeicherort) aus, um für Ihre Pipeline in der für Ihre Pipelineausgewählten AWS-Region den Standard-Artefaktspeicher, wie beispielsweise den S3-Artefakt-Bucket, der als Standard festgelegt ist, zu verwenden.

• Wählen Sie Custom location (Benutzerdefinierter Speicherort), wenn Sie bereits einen vorhandenenArtefakt-Speicher erstellt haben, wie z. B. ein S3-Artefakt-Bucket in derselben AWS-Region wie IhrePipeline.

Note

Dies ist nicht der Quell-Bucket für den Quellcode Ihrer Pipeline. Dies ist der Artefaktspeicherfür Ihre Pipeline. Für jede Pipeline ist ein separater Artefaktspeicher, z. B. ein S3-Bucket, inderselben AWS-Region wie die Pipeline erforderlich.

8. Wählen Sie Next (weiter).9. Auf der Schritt 2: Quellphase hinzufügen Seite, für Quellanbieterführen Sie eine der folgenden Schritte

aus:

• Wenn Ihr Quellcode in einem S3-Bucket gespeichert wird, wählen Sie Amazon S3. Wählen Siefür Bucket, den S3-Bucket aus, der Ihren Quellcode enthält. Geben Sie für S3 object key (S3-Objektschlüssel) den Namen der Datei an, die den Quellcode enthält (z. B. file-name.zip).Wählen Sie Next (weiter).

• Wenn Ihr Quellcode in einem AWS CodeCommit-Repository gespeichert ist, wählen SieCodeCommit aus. Wählen Sie für Repository name den Namen des Repositories aus, dasden Quellcode enthält. Wähen Sie für Branch name (Name der Verzweigung) den Namen derVerzweigung aus, die die Version des Quellcodes enthält, die Sie erstellen möchten. Wählen SieNext (weiter).

• Wenn Ihr Quellcode in einem GitHub-Repository gespeichert wird, wählen Sie GitHub. Wählen SieConnect to GitHub und folgen Sie den Anweisungen zur Authentifizierung von GitHub. Wählen Siefür Repository den Namen des Repositories aus, das den Quellcode enthält. Wähen Sie für Branch(Verzweigung) den Namen der Verzweigung aus, die die Version des Quellcodes enthält, die Sieerstellen möchten.

Wählen Sie Next (weiter).10. Auf der Schritt 3: Build-Stufe hinzufügen Seite, für Leistungserbringer erstellen, wählen Sie CodeBuild.11. Wenn Sie bereits ein Build-Projekt haben, das Sie verwenden möchten, wählen Sie für Project name

(Projektname) den Namen des Build-Projekts und fahren Sie mit Schritt 22 in diesem Verfahren fort.Befolgen Sie andernfalls die folgenden Schritte zum Erstellen eines Projekts in CodeBuild.

Wenn Sie ein bestehendes Build-Projekt auswählen, muss es bereits über definierte Einstellungen fürBuild-Ausgabeartefakte verfügen (auch wenn CodePipeline diese überschreibt). Weitere Informationenfinden Sie unter Erstellen Sie ein Build-Projekt (Konsole) (p. 207) oder Ändern der Einstellungen einesBuild-Projekts (Konsole) (p. 259).

Important

Wenn Sie Webhooks für ein CodeBuild-Projekt aktivieren und das Projekt als Build-Schritt inCodePipeline verwendet wird, werden zwei identische Builds für jeden Commit erstellt. Ein

API-Version 2016-10-06411

Page 419: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline unter

Verwendung von CodeBuild (AWS CLI)

Build wird über Webhooks ausgelöst und einer durch CodePipeline. Da die Fakturierung proBuild erfolgt, werden Ihnen beide Builds in Rechnung gestellt. Wenn Sie also CodePipelineverwenden, sollten Sie Webhooks in CodeBuild deaktivieren. Deaktivieren Sie in der AWSCodeBuild-Konsole das Webhook-Feld. Weitere Informationen finden Sie im Ändern derEinstellungen eines Build-Projekts (Konsole) (p. 259).

12. Auf der Schritt 4: Bereitstellungsstufe hinzufügen die folgenden Schritte ausführen:

• Wenn Sie das Build-Ausgabeartefakt nicht bereitstellen möchten, wählen Sie Skip (Überspringen)und bestätigen diese Auswahl auf Anforderung.

• Wenn Sie Build-Ausgabeartefakte bereitstellen möchten, wählen Sie für Deployment provider(bereitstellungs-Provider) einen Bereitstellungs-Provider aus und geben dann die Einstellungen an,wenn Sie dazu aufgefordert werden.

Wählen Sie Next (weiter).13. Überprüfen Sie auf der Seite Review (Überprüfen) Ihre Einstellungen und wählen Sie dann Create

pipeline (Pipeline erstellen) aus.14. Wenn die Pipeline erfolgreich läuft, können Sie die Build-Ausgabeartefakte abrufen. Wählen Sie, wenn

die Pipeline in der CodePipeline-Konsole angezeigt wird, in der Build-Aktion den Tooltip aus. NotierenSie sich den Wert für Output artifact (z. B. MyAppBuild).

Note

Sie können das Build-Ausgabeartefakt auch unter dem Link Build artifacts auf der Build-Detailseite in der CodeBuild-Konsole abrufen. Lassen Sie die restlichen Schritte in diesemVerfahren aus, um zu dieser Seite zu gelangen, und sehen Sie sich diese unter Anzeigen vonBuild-Details (Konsole) (p. 291) an.

15. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.16. Öffnen Sie in der Liste der Buckets auf den von der Pipeline verwendeten Bucket. Der Name des

Buckets sollte das Format befolgen codepipeline-region-ID-random-number. Sie können dieAWS CLI um die CodePipeline get-pipeline Befehl, um den Namen des Buckets zu erhalten, wo my-pipeline-name ist der Anzeigename Ihrer Pipeline:

aws codepipeline get-pipeline --name my-pipeline-name

In der Ausgabe enthalt das Objekt pipeline ein Objekt mit Namen artifactStore, das einen Wertlocation mit dem Namen des Buckets enthält.

17. Öffnen Sie den Ordner, der dem Namen Ihrer Pipeline entspricht (abhängig von der Länge desPipeline-Namens kann der Name des Ordners verkürzt sein), und dann öffnen Sie den Ordner, derdem Wert für Output artifact (Ausgabeartefakt) entspricht, den Sie zuvor notiert haben.

18. Extrahieren Sie die Dateiinhalte. Wenn in diesem Ordner mehrere Dateien enthalten sind, extrahierenSie die Inhalte der Datei mit dem neuesten Zeitstempel Last Modified. (Möglicherweise müssen Sie dieDatei .zip Erweiterung, damit Sie mit dem ZIP-Dienstprogramm Ihres Systems arbeiten können.) DasErstellungsausgabeartefakt befindet sich im extrahierten Inhalt der Datei.

19. Wenn Sie CodePipeline angewiesen haben den Build-Ausgabeartefakt bereitzustellen, verwendenSie die Anweisungen des Bereitstellungs-Providers, um zum Build-Ausgabeartefakt über dieBereitstellungsziele zu gelangen.

Erstellen einer Pipeline unter Verwendung vonCodeBuild (AWS CLI)Setzen Sie das folgende Verfahren ein, um eine Pipeline zu erstellen, die zum Aufbau Ihres QuellcodesCodeBuild verwendet.

API-Version 2016-10-06412

Page 420: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline unter

Verwendung von CodeBuild (AWS CLI)

Zur Verwendung der AWS CLI, um eine Pipeline zu erstellen, die den von Ihnen erstellten Quellcodebereitstellt oder die Ihren Quellcode nur testet, können Sie die Anweisungen in Edit a Pipeline (AWS CLI)und die CodePipeline Pipeline Structure Reference im AWS CodePipeline-Benutzerhandbuch anpassen.

1. Erstellen oder Ermitteln eines Build-Projekts in CodeBuild. Weitere Informationen finden Sie imErstellen eines Build-Projekts () (p. 206).

Important

Das Build-Projekt muss die Einstellungen des Build-Ausgabeartefakts definieren (auch wennCodePipeline diese überschreibt). Weitere Informationen finden Sie in der Beschreibung vonartifacts in Erstellen eines Build-Projekts (AWS CLI) (p. 217).

2. Stellen Sie sicher, dass Sie die AWS CLI mit dem AWS-Zugriffsschlüssel und dem geheimen AWS-Zugriffsschlüssel für eine der IAM -Entitäten konfiguriert haben (wie in diesem Thema beschrieben).Weitere Informationen finden Sie unter Einrichtung der AWS Command Line Interface im AWSCommand Line Interface-Benutzerhandbuch.

3. Erstellen Sie eine JSON-formatiere Datei, die die Struktur der Pipeline darstellt. Benennen Siedie Datei create-pipeline.json oder ähnlich. So erstellt diese JSON-formatierte Strukturbeispielsweise eine Pipeline mit einer Quellaktion, die sich auf ein S3-Eingabe-Bucket und eine Build-Aktion bezieht, die CodeBuild verwendet:

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build",

API-Version 2016-10-06413

Page 421: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline unter

Verwendung von CodeBuild (AWS CLI)

"owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "my-build-project-name" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 }}

In diesen JSON-formatierten Daten:

• Der Wert von roleArn muss dem ARN der CodePipeline-Servicerolle entsprechen, die Sie als Teilder Voraussetzungen erstellt oder ermittelt haben.

• Die Werte von S3Bucket und S3ObjectKey in configuration gehen davon aus, dass derQuellcode in einem S3-Bucket gespeichert ist. Informationen zu den Einstellungen für andereRepository-Typen von Quellcodes erhalten Sie unter Referenz der CodePipeline-Pipeline-Struktur imAWS CodePipeline-Benutzerhandbuch.

• Der Wert von ProjectName ist der Name des von Ihnen zu einem früheren Zeitpunkt erstelltenCodeBuild-Build-Projekts.

• Der Wert von location ist der Name des S3-Buckets, der von dieser Pipeline verwendetwird. Weitere Informationen finden Sie unter Erstellen einer Richtlinie für einen S3-Bucket zurVerwendung als Artefaktspeicher für CodePipeline im AWS CodePipeline-Benutzerhandbuch.

• Der Wert von name ist der Name dieser Pipeline. Alle Pipeline-Namen müssen in Ihrem Kontoeindeutig sein.

Auch wenn diese Daten ausschließlich eine Quellaktion und eine Build-Aktion beschreiben, könnenSie Aktionen für Aktivitäten in Bezug auf das Testen, Bereitstellen des Build-Ausgabeartefakts,Weiterleiten von AWS Lambda-Funktionen und viele weitere ergänzen. Weitere Informationenfinden Sie unter der Referenz der AWS CodePipeline-Pipeline-Struktur im AWS CodePipeline-Benutzerhandbuch.

4. Wechseln Sie zu dem Ordner, der die JSON-Datei enthält, und führen Sie dann den CodePipeline-Befehl create-pipeline unter Angabe des Dateinamens aus:

aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json

Note

Sie müssen die Pipeline in einer AWS-Region erstellen, in der CodeBuild unterstützt wird.Weitere Informationen finden Sie unter AWS CodeBuild im Allgemeine Amazon WebServices-Referenz.

API-Version 2016-10-06414

Page 422: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErstellen einer Pipeline unter

Verwendung von CodeBuild (AWS CLI)

Die Daten im JSON-Format werden in der Ausgabe angezeigt und CodePipeline erstellt die Pipeline.5. Um Informationen über den Status der Pipeline zu erhalten, führen Sie den CodePipeline Befehl get-

pipeline-state unter Angabe des Namens der Pipeline aus:

aws codepipeline get-pipeline-state --name my-pipeline-name

Suchen Sie in der Ausgabe nach Informationen, die bestätigen, dass der Build erfolgreich war.Auslassungspunkte (...) werden verwendet, um zu zeigen, dass stehen für Daten zur Abkürzungausgelassen wurden.

{ ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ]}

Wenn Sie diesen Befehl zu früh ausführen, bekommen Sie die Informationen über die Build-Aktionmöglichweise nicht angezeigt. Sie müssen diesen Befehl möglicherweise mehrere Male ausführen, bisdie Pipeline die Ausführung der Build-Aktion abgeschlossen hat.

6. Befolgen Sie nach einem erfolgreichen Build die Anweisungen, um den Build-Ausgabeartefaktabzurufen. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.

Note

Sie können das Build-Ausgabeartefakt auch unter dem Link Build artifacts auf derdazugehörigen Build-Detailseite in der CodeBuild-Konsole abrufen. Lassen Sie die restlichenSchritte in diesem Verfahren aus, um zu dieser Seite zu gelangen, und sehen Sie sich dieseunter Anzeigen von Build-Details (Konsole) (p. 291) an.

7. Öffnen Sie in der Liste der Buckets auf den von der Pipeline verwendeten Bucket. Der Name desBuckets sollte das Format befolgen codepipeline-region-ID-random-number. Sie könnenden Bucket-Namen von der create-pipeline.json Datei oder Sie können die CodePipeline get-pipeline , um den Namen des Buckets zu erhalten.

aws codepipeline get-pipeline --name my-pipeline-name

In der Ausgabe enthalt das Objekt pipeline ein Objekt mit Namen artifactStore, das einen Wertlocation mit dem Namen des Buckets enthält.

8. Öffnen Sie den Ordner, der dem Namen Ihrer Pipeline entspricht (z. B. my-pipeline-name).9. Öffnen Sie in diesem Ordner den Ordner mit Namen default.10. Extrahieren Sie die Dateiinhalte. Wenn in diesem Ordner mehrere Dateien enthalten sind, extrahieren

Sie die Inhalte der Datei mit dem neuesten Zeitstempel Last Modified. (Möglicherweise müssen Sie dieDatei .zip Erweiterung, damit Sie mit dem ZIP-Dienstprogramm Ihres Systems arbeiten können.) DasErstellungsausgabeartefakt befindet sich im extrahierten Inhalt der Datei.

API-Version 2016-10-06415

Page 423: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Build-Aktionzu einer Pipeline (CodePipeline-Konsole)

Hinzufügen einer CodeBuild-Build-Aktion zu einerPipeline (CodePipeline-Konsole)1. Melden Sie sich an der AWS Management Console Konsole an, indem Sie Folgendes verwenden:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Detaillierte Anweisungen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM im IAM-Benutzerhandbuch.

• Ein IAM-Benutzer des AWS-Kontos mit der Berechtigung zur Ausführung der folgendenMindestmenge von Aktionen:

codepipeline:*iam:ListRolesiam:PassRoles3:CreateBuckets3:GetBucketPolicys3:GetObjects3:ListAllMyBucketss3:ListBuckets3:PutBucketPolicycodecommit:ListBranchescodecommit:ListRepositoriescodedeploy:GetApplicationcodedeploy:GetDeploymentGroupcodedeploy:ListApplicationscodedeploy:ListDeploymentGroupselasticbeanstalk:DescribeApplicationselasticbeanstalk:DescribeEnvironmentslambda:GetFunctionConfigurationlambda:ListFunctionsopsworks:DescribeStacksopsworks:DescribeAppsopsworks:DescribeLayers

2. Öffnen Sie die CodePipeline-Konsole unter https://console.aws.amazon.com/codesuite/codepipeline/home.

3. Wählen Sie in der AWS-Regionenauswahl die AWS-Region aus, in der sich Ihre Pipeline befindet.Dies muss eine Region sein, in der CodeBuild unterstützt wird. Weitere Informationen finden Sie unterCodeBuild im Allgemeine Amazon Web Services-Referenz.

4. Wählen Sie auf der Seite All Pipelines (Alle Pipelines) den Namen der Pipeline aus.5. Wählen Sie auf der Detailseite für die Pipeline für die Aktion Source (Quelle) den Tooltip aus. Notieren

Sie sich den Wert für Output artifact (Ausgabeartefakt) (z. B. MyApp).

Note

Dieses Verfahren verdeutlicht, wie Sie eine Build-Aktion innerhalb einer Build-Stufe zwischenden Stufen Source (Quelle) und Beta einfügen. Wenn Sie die Build-Aktion an einer anderenStelle hinzufügen möchten, wählen Sie den Tooltip für die Aktion direkt vor der Stelle aus, ander Sie die Build-Aktion hinzufügen möchten und notieren Sie sich den Wert für das Outputartifact (Ausgabeartefakt).

6. Wählen Sie Edit aus.7. Wählen Sie zwischen den Stufen Source (Quelle) und Beta Add stage (Stufe hinzufügen) aus.

API-Version 2016-10-06416

Page 424: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Build-Aktionzu einer Pipeline (CodePipeline-Konsole)

Note

Dieses Verfahren verdeutlicht, wie Sie Ihrer Pipeline eine Build-Stufe zwischen den StufenSource (Quelle) und Beta hinzufügen. Um einer bestehenden Stufe eine Build-Aktionhinzuzufügen, klicken Sie in der bestehenden Stufe auf Edit stage (Stufe bearbeiten). FahrenSie dann mit Schritt 8 dieses Verfahrens fort. Um die Build-Stufe an einer anderen Stellehinzuzufügen, klicken Sie an der gewünschten Stelle auf Add stage (Stufe hinzufügen).

8. Geben Sie unter Stage name (Stufenname) den Namen der Build-Stufe ein (z. B. Build). Wenn Sieeinen anderen Namen wählen, verwenden Sie diesen im gesamten Verfahren.

9. Wählen Sie in der ausgewählten Stufe Add action (Aktion hinzufügen).

Note

Dieses Verfahren verdeutlicht, wie Sie die Build-Aktion innerhalb einer Build-Stufe einfügen.Um die Build-Aktion an einer anderen Stelle hinzuzufügen, klicken Sie an der gewünschtenStelle auf Add stage (Stufe hinzufügen). Sie müssen möglicherweise zuerst Edit stage (Stufebearbeiten) in der bestehenden Stufe an der Stelle wählen, an der Sie die Build-Aktionhinzufügen möchten.

10. Geben Sie in Edit action (Aktion bearbeiten) unter Action name (Aktionsname) einen Namen für dieAktion ein (z. B. CodeBuild). Wenn Sie einen anderen Namen wählen, verwenden Sie diesen imgesamten Verfahren.

11. Wählen Sie für Action provider (Aktions-Provider) die Option CodeBuild.12. Wenn Sie bereits ein Build-Projekt in CodeBuild haben, wählen Sie für Project name (Projektname)

den Namen des Build-Projekts aus und springen dann zu Schritt 22 dieses Verfahrens.

Wenn Sie ein bestehendes Build-Projekt auswählen, muss es bereits über definierte Einstellungenfür Build-Ausgabeartefakte verfügen (auch wenn CodePipeline diese überschreibt). WeitereInformationen finden Sie in der Beschreibung von Artifacts (Artefakte) in Erstellen Sie ein Build-Projekt(Konsole) (p. 207) oder Ändern der Einstellungen eines Build-Projekts (Konsole) (p. 259).

Important

Wenn Sie Webhooks für ein CodeBuild-Projekt aktivieren und das Projekt als Build-Schritt inCodePipeline verwendet wird, werden zwei identische Builds für jeden Commit erstellt. EinBuild wird über Webhooks ausgelöst und einer durch CodePipeline. Da die Fakturierung proBuild erfolgt, werden Ihnen beide Builds in Rechnung gestellt. Wenn Sie also CodePipelineverwenden, sollten Sie Webhooks in CodeBuild deaktivieren. Deaktivieren Sie in derCodeBuild-Konsole das Webhook-Feld. Weitere Informationen finden Sie unter Ändern derEinstellungen eines Build-Projekts (Konsole) (p. 259).

13. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.14. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

API-Version 2016-10-06417

Page 425: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Build-Aktionzu einer Pipeline (CodePipeline-Konsole)

15. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allen AWS-Konten eindeutig sein.

16. (Optional) Geben Sie eine Beschreibung ein.17. Führen Sie für Environment (Umgebung) einen der folgenden Schritte aus:

• Wählen Sie für Build-Umgebungen auf Basis eines von CodeBuild verwalteten Docker-ImagesManaged image (Verwaltetes Image) aus. Treffen Sie Ihre Auswahl aus den Operating system(Betriebssystem)-, Runtime (Laufzeit)- und Runtime version (Laufzeitversion)-Dropdown-Listen.Weitere Informationen finden Sie unter Von CodeBuild bereitgestellte Docker-Images (p. 175).

• Wählen Sie für Build-Umgebungen auf Basis eines Docker-Images in einem Amazon ECR-Repository Ihres AWS-Kontos Custom image (Benutzerdefiniertes Image) aus. Wählen Sie unterEnvironment type (Umgebungsart) eine Umgebungsart und dann die Option Amazon ECR aus.Wählen Sie das Amazon ECR-Repository und das Docker-Image dieses Repositorys aus denAmazon ECR repository- und Amazon ECR image-Dropdown-Listen aus.

• Wählen Sie für die Verwendung einer Build-Umgebung auf Basis eines in Docker Hub öffentlichzugänglichen Docker-Image Other location (Anderer Ort) aus. Geben Sie Im Feld Other location(Anderer Ort) die Docker-Image-ID im Format docker repository/docker-image-name ein.

Wählen Sie Privileged (Privilegiert) nur aus, wenn Sie vorhaben, dieses Build-Projekt zum Erstellenvon Docker-Images zu verwenden und das von Ihnen ausgewählte Build-Umgebungs-Image vonCodeBuild nicht mit Docker-Support bereitgestellt wird. Andernfalls schlagen alle zugehörigen Buildsfehl, die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen auch den Docker-Daemonstarten, damit Ihre Builds bei Bedarf interagieren können. Eine Möglichkeit, dies zu tun, besteht inder Ausführung der folgenden Build-Befehle, um den Docker-Daemon in der install-Phase Ihrerbuildspec zu initialisieren. (Führen Sie die folgenden Build-Befehle nicht aus, wenn Sie ein Build-Umgebungs-Image ausgewählt haben, das von CodeBuild mit Docker-Support bereitgestellt wird.)

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay&- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

18. Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:

• Wenn Sie keine CodeBuild-Servicerolle haben, wählen Sie New service role (Neue Servicerolle) aus.Geben Sie unter Role Name (Rollenname) einen Namen für die neue Rolle ein.

• Wenn Sie bereits eine CodeBuild-Servicerolle haben, wählen Sie Existing service role (VorhandeneServicerolle) aus. Wählen Sie unter Role ARN (Rollen-ARN) die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

19. Erweitern Sie Additional configuration (Zusätzliche Konfiguration).

Verwenden Sie zur Spezifizierung einer anderen Build-Zeitbeschränkung als der von 60 Minuten(die Standardeinstellung) die Felder hours und minutes, um eine Zeitbeschränkung zwischen 5 und480 Minuten (8 Stunden) festzulegen.

Wählen Sie für Compute (Datenverarbeitung) eine der verfügbaren Optionen aus.

API-Version 2016-10-06418

Page 426: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Build-Aktionzu einer Pipeline (CodePipeline-Konsole)

Verwenden Sie für Environment variables (Umgebungsvariablen) Name und Value (Wert)zur Spezifizierung von optionalen Umgebungsvariablen, die in der Build-Umgebung genutztwerden. Verwenden Sie Add environment variable (Umgebungsvariable hinzufügen), um weitereUmgebungsvariablen hinzuzufügen.

Important

Wir raten dringend davon ab, Umgebungsvariablen zum Speichern vertraulicher Wertezu verwenden; dies gilt insbesondere für AWS-Zugriffsschlüssel-IDs und geheimeZugriffsschlüssel. Umgebungsvariablen können in der CodeBuild-Konsole und über die AWSCLI im Klartext angezeigt werden.Wenn Sie sensible Werte speichern und abrufen möchten, wird die Interaktion der Build-Befehle mit dem Amazon EC2 Systems Manager Parameter Store mithilfe der AWS CLIempfohlen. Die AWS CLI ist in allen Build-Umgebungen von CodeBuild vorinstalliert undkonfiguriert. Weitere Informationen finden Sie unter Systems Manager Parameter Store undSystems Manager Parameter Store CLI Walkthrough im Amazon EC2 Systems Manager-Benutzerhandbuch.

20. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wenn Ihr Quellcode eine buildspec-Datei enthält, wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden) aus.

• Wenn Ihr Quellcode keine buildspec-Datei enthält, wählen Sie Insert build commands (Build-Befehleeinfügen) aus. Geben Sie für Build commands (Build-Befehle) die Befehle ein, die Sie während derBuild-Phase in der Build-Umgebung ausführen möchten. Bei mehreren Befehlen unterteilen Sie dieeinzelnen Befehle mit && für Linux-basierte Build-Umgebungen oder ; für Windows-basierte Build-Umgebungen. Geben Sie für Output files (Ausgabedateien) die Pfade zu den Build-Ausgabedateienin der Build-Umgebung ein, die Sie an CodePipeline senden möchten. Bei mehreren Dateientrennen Sie die einzelnen Dateipfade durch ein Komma.

21. Wählen Sie Create build project (Build-Projekt erstellen) aus.22. Kehren Sie zur CodePipeline-Konsole zurück.23. Wählen Sie für Input artifacts (Eingabeartefakte) das Ausgabeartefakt aus, das Sie in zuvor dieser

Anleitung notiert haben.24. Geben Sie für Output artifacts (Ausgabe-Artefakte) einen Namen für das Ausgabeartefakt ein (z. B.

MyAppBuild).25. Wählen Sie Add action aus.26. Wählen Sie Save (Speichern) und Save (Speichern) aus, um die Änderungen an der Pipeline zu

speichern.27. Klicken Sie auf Release change.28. Wenn die Pipeline erfolgreich läuft, können Sie die Build-Ausgabeartefakte abrufen. Wählen Sie, wenn

die Pipeline in der CodePipeline-Konsole angezeigt wird, in der Build-Aktion den Tooltip aus. NotierenSie sich den Wert für Output artifact (z. B. MyAppBuild).

Note

Sie können das Build-Ausgabeartefakt auch unter dem Link Build artifacts auf der Build-Detailseite in der CodeBuild-Konsole abrufen. Um zu dieser Seite zu gelangen, gehen Sie aufAnzeigen von Build-Details (Konsole) (p. 291) und dann springen Sie zu Schritt 31 in diesemVerfahren.

29. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.30. Öffnen Sie in der Liste der Buckets auf den von der Pipeline verwendeten Bucket. Der Name des

Buckets sollte das Format befolgen codepipeline-region-ID-random-number. Sie können dieAWS CLI um die CodePipeline get-pipeline Befehl, um den Namen des Buckets zu erhalten:

aws codepipeline get-pipeline --name my-pipeline-name

API-Version 2016-10-06419

Page 427: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Testaktion

zu einer Pipeline (CodePipeline-Konsole)

In der Ausgabe enthalt das Objekt pipeline ein Objekt mit Namen artifactStore, das einen Wertlocation mit dem Namen des Buckets enthält.

31. Öffnen Sie den Ordner, der dem Namen Ihrer Pipeline entspricht (abhängig von der Länge desPipeline-Namens kann der Name des Ordners verkürzt sein), und dann öffnen Sie den Ordner, derdem Wert für Output artifact (Ausgabeartefakt) entspricht, den Sie zuvor in dieser Anleitung notierthaben.

32. Extrahieren Sie die Dateiinhalte. Wenn in diesem Ordner mehrere Dateien enthalten sind, extrahierenSie die Inhalte der Datei mit dem neuesten Zeitstempel Last Modified. (Möglicherweise müssen Sie dieDatei .zip Erweiterung, damit Sie mit dem ZIP-Dienstprogramm Ihres Systems arbeiten können.) DasErstellungsausgabeartefakt befindet sich im extrahierten Inhalt der Datei.

33. Wenn Sie CodePipeline angewiesen haben den Build-Ausgabeartefakt bereitzustellen, verwendenSie die Anweisungen des Bereitstellungs-Providers, um zum Build-Ausgabeartefakt über dieBereitstellungsziele zu gelangen.

Hinzufügen einer CodeBuild-Testaktion zu einerPipeline (CodePipeline-Konsole)1. Melden Sie sich an der AWS Management Console Konsole an, indem Sie Folgendes verwenden:

• Ihr AWS-Stammkonto. Dies wird nicht empfohlen. Weitere Informationen finden Sie unter TheAccount Root User im IAM-Benutzerhandbuch.

• Ein IAM-Administratorbenutzer des AWS-Kontos. Detaillierte Anweisungen finden Sie unterErstellen Ihres ersten Administratorbenutzers und Ihrer ersten Administratorgruppe in IAM im IAM-Benutzerhandbuch.

• Ein IAM-Benutzer des AWS-Kontos mit der Berechtigung zur Ausführung der folgendenMindestmenge von Aktionen:

codepipeline:*iam:ListRolesiam:PassRoles3:CreateBuckets3:GetBucketPolicys3:GetObjects3:ListAllMyBucketss3:ListBuckets3:PutBucketPolicycodecommit:ListBranchescodecommit:ListRepositoriescodedeploy:GetApplicationcodedeploy:GetDeploymentGroupcodedeploy:ListApplicationscodedeploy:ListDeploymentGroupselasticbeanstalk:DescribeApplicationselasticbeanstalk:DescribeEnvironmentslambda:GetFunctionConfigurationlambda:ListFunctionsopsworks:DescribeStacksopsworks:DescribeAppsopsworks:DescribeLayers

2. Öffnen Sie die CodePipeline-Konsole unter https://console.aws.amazon.com/codesuite/codepipeline/home.

3. Wählen Sie in der AWS-Regionenauswahl die AWS-Region aus, in der sich Ihre Pipeline befindet. Diesmuss eine AWS-Region sein, in der CodeBuild unterstützt wird. Weitere Informationen finden Sie unterAWS CodeBuild im Allgemeine Amazon Web Services-Referenz.

API-Version 2016-10-06420

Page 428: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Testaktion

zu einer Pipeline (CodePipeline-Konsole)

4. Wählen Sie auf der Seite All Pipelines (Alle Pipelines) den Namen der Pipeline aus.5. Wählen Sie auf der Detailseite für die Pipeline für die Aktion Source (Quelle) den Tooltip aus. Notieren

Sie sich den Wert für Output artifact (Ausgabeartefakt) (z. B. MyApp).

Note

Dieses Verfahren verdeutlicht, wie Sie eine Testaktion innerhalb einer Teststufe zwischen denStufen Source (Quelle) und Beta einfügen. Wenn Sie eine Testaktion an einer anderen Stellehinzufügen möchten, lassen Sie Ihren Mauszeiger auf der Aktion unmittelbar vor der Stelleruhen, an der Sie die Build-Aktion hinzufügen möchten und notieren Sie sich den Wert für denOutput artifact.

6. Wählen Sie Edit aus.7. Wählen Sie unmittelbar nach der Stufe Source (Quelle) die Option Add stage (Stufe hinzufügen).

Note

Dieses Verfahren verdeutlicht, wie Sie Ihrer Pipeline eine Teststufe unmittelbar nach der StufeSource (Quelle) hinzufügen. Um einer bestehenden Stufe eine Testaktion hinzuzufügen,klicken Sie in der bestehenden Stufe auf Edit stage (Stufe bearbeiten). Fahren Sie dann mitSchritt 8 dieses Verfahrens fort. Um die Teststufe an einer anderen Stelle hinzuzufügen,klicken Sie an der gewünschten Stelle auf Add stage (Stufe hinzufügen).

8. Geben Sie unter Stage name (Stufenname) den Namen der Teststufe ein (z. B. Test). Wenn Sieeinen anderen Namen wählen, verwenden Sie diesen im gesamten Verfahren.

9. Wählen Sie in der ausgewählten Stufe Add action (Aktion hinzufügen) aus.

Note

Dieses Verfahren verdeutlicht, wie Sie die Testaktion in einer Teststufe hinzufügen. Um dieTestaktion an einer anderen Stelle hinzuzufügen, klicken Sie an der gewünschten Stelle aufAdd stage (Stufe hinzufügen). Sie müssen möglicherweise zuerst Edit (Bearbeiten) in derbestehenden Stufe an der Stelle wählen, an der Sie die Testaktion hinzufügen möchten.

10. Geben Sie in Edit action (Aktion bearbeiten) unter Action name (Aktionsname) einen Namen für dieAktion ein (z. B. Test). Wenn Sie einen anderen Namen wählen, verwenden Sie diesen im gesamtenVerfahren.

11. Wählen Sie für Action provider (Aktions-Provider) unter Test CodeBuild aus.12. Wenn Sie bereits ein Build-Projekt in CodeBuild haben, wählen Sie für Project name (Projektname)

den Namen des Build-Projekts aus und springen dann zu Schritt 22 dieses Verfahrens.

Important

Wenn Sie Webhooks für ein CodeBuild-Projekt aktivieren und das Projekt als Build-Schritt inCodePipeline verwendet wird, werden zwei identische Builds für jeden Commit erstellt. EinBuild wird über Webhooks ausgelöst und einer durch CodePipeline. Da die Fakturierung proBuild erfolgt, werden Ihnen beide Builds in Rechnung gestellt. Wenn Sie also CodePipelineverwenden, sollten Sie Webhooks in CodeBuild deaktivieren. Deaktivieren Sie in derAPI-Version 2016-10-06

421

Page 429: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Testaktion

zu einer Pipeline (CodePipeline-Konsole)

CodeBuild-Konsole das Webhook-Feld. Weitere Informationen finden Sie unter Ändern derEinstellungen eines Build-Projekts (Konsole) (p. 259).

13. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.14. Wenn eine CodeBuild-Informationsseite angezeigt wird, wählen Sie Create build project (Build-Projekt

erstellen) aus. Erweitern Sie andernfalls im Navigationsbereich Build und wählen Sie Build projects(Build-Projekte) und dann Create build project (Build-Projekt erstellen) aus.

15. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allen AWS-Konten eindeutig sein.

16. (Optional) Geben Sie eine Beschreibung ein.17. Führen Sie für Environment (Umgebung) einen der folgenden Schritte aus:

• Wählen Sie für Build-Umgebungen auf Basis eines von CodeBuild verwalteten Docker-ImagesManaged image (Verwaltetes Image) aus. Treffen Sie Ihre Auswahl aus den Operating system(Betriebssystem)-, Runtime (Laufzeit)- und Runtime version (Laufzeitversion)-Dropdown-Listen.Weitere Informationen finden Sie unter Von CodeBuild bereitgestellte Docker-Images (p. 175).

• Wählen Sie für Build-Umgebungen auf Basis eines Docker-Images in einem Amazon ECR-Repository Ihres AWS-Kontos Custom image (Benutzerdefiniertes Image) aus. Wählen Sie unterEnvironment type (Umgebungsart) eine Umgebungsart und dann die Option Amazon ECR aus.Wählen Sie das Amazon ECR-Repository und das Docker-Image dieses Repositorys aus denAmazon ECR repository- und Amazon ECR image-Dropdown-Listen aus.

• Wählen Sie für die Verwendung einer Build-Umgebung auf Basis eines in Docker Hub öffentlichzugänglichen Docker-Image Other location (Anderer Ort) aus. Geben Sie Im Feld Other location(Anderer Ort) die Docker-Image-ID im Format docker repository/docker-image-name ein.

Wählen Sie Privileged (Privilegiert) nur aus, wenn Sie vorhaben, dieses Build-Projekt zum Erstellenvon Docker-Images zu verwenden und das von Ihnen ausgewählte Build-Umgebungs-Image vonCodeBuild nicht mit Docker-Support bereitgestellt wird. Andernfalls schlagen alle zugehörigen Buildsfehl, die versuchen, mit dem Docker-Daemon zu interagieren. Sie müssen auch den Docker-Daemonstarten, damit Ihre Builds bei Bedarf interagieren können. Eine Möglichkeit, dies zu tun, besteht inder Ausführung der folgenden Build-Befehle, um den Docker-Daemon in der install-Phase Ihrerbuildspec zu initialisieren. (Führen Sie die folgenden Build-Befehle nicht aus, wenn Sie ein Build-Umgebungs-Image ausgewählt haben, das von CodeBuild mit Docker-Support bereitgestellt wird.)

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay&- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

18. Führen Sie unter Service role (Service-Rolle) einen der folgenden Schritte aus:

• Wenn Sie keine CodeBuild-Servicerolle haben, wählen Sie New service role (Neue Servicerolle) aus.Geben Sie unter Role Name (Rollenname) einen Namen für die neue Rolle ein.

• Wenn Sie bereits eine CodeBuild-Servicerolle haben, wählen Sie Existing service role (VorhandeneServicerolle) aus. Wählen Sie unter Role ARN (Rollen-ARN) die Servicerolle aus.

Note

Wenn Sie die Konsole zum Erstellen oder Aktualisieren eines Build-Projekts verwenden,können Sie gleichzeitig eine CodeBuild-Servicerolle erstellen. In der Standardeinstellungfunktioniert diese Rolle ausschließlich mit diesem Projekt. Wenn Sie die Konsole verwenden,um die Servicerolle mit einem anderen Build-Projekt zu verknüpfen, wird die Rolle soaktualisiert, dass sie mit dem anderen Build-Projekt funktioniert. Eine Servicerolle kann in biszu zehn Build-Projekten verwendet werden.

19. Erweitern Sie Additional configuration (Zusätzliche Konfiguration).API-Version 2016-10-06

422

Page 430: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchHinzufügen einer CodeBuild-Testaktion

zu einer Pipeline (CodePipeline-Konsole)

Verwenden Sie zur Spezifizierung einer anderen Build-Zeitbeschränkung als der von 60 Minuten(die Standardeinstellung) die Felder hours und minutes, um eine Zeitbeschränkung zwischen 5 und480 Minuten (8 Stunden) festzulegen.

Wählen Sie für Compute (Datenverarbeitung) eine der verfügbaren Optionen aus.

Verwenden Sie für Environment variables (Umgebungsvariablen) Name und Value (Wert)zur Spezifizierung von optionalen Umgebungsvariablen, die in der Build-Umgebung genutztwerden. Verwenden Sie Add environment variable (Umgebungsvariable hinzufügen), um weitereUmgebungsvariablen hinzuzufügen.

Important

Wir raten dringend davon ab, Umgebungsvariablen zum Speichern vertraulicher Wertezu verwenden; dies gilt insbesondere für AWS-Zugriffsschlüssel-IDs und geheimeZugriffsschlüssel. Umgebungsvariablen können in der CodeBuild-Konsole und über die AWSCLI im Klartext angezeigt werden.Wenn Sie sensible Werte speichern und abrufen möchten, wird die Interaktion der Build-Befehle mit dem Amazon EC2 Systems Manager Parameter Store mithilfe der AWS CLIempfohlen. Die AWS CLI ist in allen Build-Umgebungen von CodeBuild vorinstalliert undkonfiguriert. Weitere Informationen finden Sie unter Systems Manager Parameter Store undSystems Manager Parameter Store CLI Walkthrough im Amazon EC2 Systems Manager-Benutzerhandbuch.

20. Führen Sie für Buildspec (Build-Spezifikation) einen der folgenden Schritte aus:

• Wenn Ihr Quellcode eine buildspec-Datei enthält, wählen Sie Use a buildspec file (Eine buildspec-Datei verwenden) aus.

• Wenn Ihr Quellcode keine buildspec-Datei enthält, wählen Sie Insert build commands (Build-Befehleeinfügen) aus. Geben Sie für Build commands (Build-Befehle) die Befehle ein, die Sie während derBuild-Phase in der Build-Umgebung ausführen möchten. Bei mehreren Befehlen unterteilen Sie dieeinzelnen Befehle mit && für Linux-basierte Build-Umgebungen oder ; für Windows-basierte Build-Umgebungen. Geben Sie für Output files (Ausgabedateien) die Pfade zu den Build-Ausgabedateienin der Build-Umgebung ein, die Sie an CodePipeline senden möchten. Bei mehreren Dateientrennen Sie die einzelnen Dateipfade durch ein Komma.

21. Wählen Sie Create build project (Build-Projekt erstellen) aus.22. Kehren Sie zur CodePipeline-Konsole zurück.23. Wählen Sie für Input artifacts (Eingabeartefakte) den Wert für das Output artifact (Ausgabeartefakt)

aus, den Sie in zuvor in diesem Verfahren notiert haben.24. (Optional) Wenn Sie möchten, dass Ihre Testaktion ein Ausgabeartefakt erstellt, richten Sie Ihre Build-

Spezifikation dementsprechend ein. Geben Sie dann für Output artifact (Ausgabeartefakt) den Wertein, den Sie dem Ausgabeartefakt zuweisen möchten.

25. Wählen Sie Save aus.26. Klicken Sie auf Release change.27. Wenn die Pipeline erfolgreich läuft, können Sie die Testergebnisse abrufen. Klicken Sie in der Test-

Stufe der Pipeline auf den Hyperlink CodeBuild, um die dazugehörige Seite des Build-Projekts in derCodeBuild-Konsole zu öffnen.

28. Klicken Sie auf der Seite des Build-Projekts im Bereich Build history (Build-Verlauf) auf den HyperlinkBuild run (Build ausführen).

29. Klicken Sie auf der Seite für die Build-Ausführung im Bereich Build logs (Build-Protokolle) auf denHyperlink View entire log (Ganzes Protokoll anzeigen), um das Build-Protokoll in der AmazonCloudWatch-Konsole zu öffnen.

30. Scrollen Sie durch das Build-Protokoll, um die Testergebnisse anzuzeigen.

API-Version 2016-10-06423

Page 431: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwenden von CodeBuild mit Jenkins

Verwenden von AWS CodeBuild mit JenkinsSie können das Jenkins-Plugin für AWS CodeBuild verwenden, um CodeBuild in Ihre Jenkins-Build-Aufträge zu integrieren. Dadurch werden Ihre Build-Aufträge mithilfe des Plug-Ins an CodeBuild gesendet,statt diese an Jenkins-Build-Knoten zu senden. Sie müssen somit keine Jenkins-Build-Knoten bereitstellen,konfigurieren und verwalten.

Einrichten von JenkinsInformationen zur Einrichtung von Jenkins mit dem AWS CodeBuild Plugin, und laden Sie den Quellcodedes Plug-ins herunter, und https://github.com/awslabs/aws-codebuild-jenkins-plugin.

Installieren des PluginsWenn Sie einen Jenkins-Server bereits eingerichtet haben und nur das Plugin für AWS CodeBuildinstallieren möchten, suchen Sie in Ihrer Jenkins-Instance im Plugin Manager nach CodeBuild Pluginfor Jenkins.

Verwenden des Plug-InsSo verwenden Sie AWS CodeBuild mit Quellen außerhalb einer VPC.

1. Erstellen Sie in der CodeBuild-Konsole ein Projekt. Weitere Informationen finden Sie im Erstellen Sieein Build-Projekt (Konsole) (p. 207).

• Wählen Sie die AWS-Region aus, in der Sie den Build ausführen möchten.• (Optional) Legen Sie die Amazon VPC-Konfiguration so fest, dass der CodeBuild-Build-Container

auf Ressourcen in Ihrer VPC zugreifen kann.• Notieren Sie den Namen Ihres Projekts. Sie benötigen ihn in Schritt 3.• (Optional) Wenn Ihr Quell-Repository von CodeBuild nicht direkt unterstützt wird, können Sie

Amazon S3 als Eingabequellentyp für Ihr Projekt festlegen.2. Erstellen Sie in der IAM-Konsole einen IAM-Benutzer, der vom Jenkins-Plug-In verwendet werden soll.

• Wählen Sie während der Erstellung der Anmeldeinformationen für den Benutzer ProgrammaticAccess.

• Erstellen Sie eine Richtlinie ähnlich der folgenden und fügen Sie die Richtlinie dem Benutzer an.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": ["arn:aws:logs:{{region}}:{{awsAccountId}}:log-group:/aws/codebuild/{{projectName}}:*"], "Action": ["logs:GetLogEvents"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}"], "Action": ["s3:GetBucketVersioning"] }, { "Effect": "Allow", "Resource": ["arn:aws:s3:::{{inputBucket}}/{{inputObject}}"], "Action": ["s3:PutObject"] },

API-Version 2016-10-06424

Page 432: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchVerwendung von CodeBuild mit Codecov

{ "Effect": "Allow", "Resource": ["arn:aws:s3:::{{outputBucket}}/*"], "Action": ["s3:GetObject"] }, { "Effect": "Allow", "Resource": ["arn:aws:codebuild:{{region}}:{{awsAccountId}}:project/{{projectName}}"], "Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:BatchGetProjects"] } ]}

3. Erstellen Sie in Jenkins ein Freestyle-Projekt.

• Wählen Sie auf der Seite Configure (Konfigurieren) die Option Add build step (Build-Schritthinzufügen) und anschließend Run build on CodeBuild (Build auf ACB ausführen).

• Konfigurieren Sie Ihren Build-Schritt.• Geben Sie für Region, Credentials und Project Name Werte an.• Wählen Sie Use Project source.• Speichern Sie die Konfiguration und führen Sie über Jenkins einen Build aus.

4. Wählen Sie in Source Code Management die Art des Abrufs Ihrer Quelle. Möglicherweise müssen Sieauf Ihrem Jenkins-Server das GitHub-Plug-In (oder das Jenkins-Plug-In für Ihren Quell-Repository-Anbieter) installieren.

• Wählen Sie auf der Seite Configure die Option Add build step und anschließend Run build on AWSCodeBuild.

• Konfigurieren Sie Ihren Build-Schritt.• Geben Sie für Region, Credentials und Project Name Werte an.• Wählen Sie Use Jenkins source.• Speichern Sie die Konfiguration und führen Sie über Jenkins einen Build aus.

So verwenden Sie das Plugin für AWS CodeBuild mit dem Jenkins-Pipeline-Plugin

• Verwenden Sie den Snippet-Generator auf der Seite Ihres Jenkins-Pipeline-Projekts, um ein Pipeline-Skript zu generieren, das Ihrer Pipeline CodeBuild als Schritt hinzufügt. Hierdurch sollte ein Skriptgeneriert werden, das dem folgenden Skript ähnlich ist:

awsCodeBuild projectName: 'project', credentialsType: 'keys', region: 'us-west-2', sourceControlType: 'jenkins'

Verwendung von AWS CodeBuild mit CodecovCodecov ist ein Tool, das den Testumfang Ihres Codes misst. Codecov ermittelt, welche Methoden undAnweisungen in Ihrem Code nicht getestet werden. Verwenden Sie die Ergebnisse, um zu bestimmen,wo Tests geschrieben werden sollen, um die Qualität Ihres Codes zu verbessern. Codecov ist für dreider Quellrepositorys verfügbar, die unterstützt werden von CodeBuild: Github, Github Enterprise Serverund Bitbucket. Wenn für Ihr Build-Projekt GitHub Enterprise Server verwendet wird, müssen Sie CodecovEnterprise verwenden.

Wenn Sie einen Build eines CodeBuild-Projekts ausführen, das in Codecov integriert ist, werden Codecov-Berichte, die den Code in Ihrem Repository analysieren, in Codecov hochgeladen. Die Build-Protokolle

API-Version 2016-10-06425

Page 433: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchIntegrieren von Codecov in ein Build-Projekt

enthalten einen Link zu den Berichten. Dieses Beispiel zeigt Ihnen, wie Sie ein Python- und ein Java-Build-Projekt in Codecov integrieren. Eine Liste der von Codecov unterstützten Sprachen finden Sie auf derCodecov-Website unter Codecov Supported Languages.

Integrieren von Codecov in ein Build-ProjektSo integrieren Sie Codecov in Ihr Build-Projekt

1. Gehen Sie zu https://codecov.io/signup und melden Sie sich für ein GitHub- oder Bitbucket-Quell-Repository an. Wenn Sie GitHub Enterprise verwenden, finden Sie auf der Codecov-WebsiteInformationen unter Codecov Enterprise.

2. Fügen Sie in Codecov das Repository hinzu, das mit einbezogen werden soll.3. Wenn Token-Informationen angezeigt werden, wählen Sie Copy (Kopieren).

4. Fügen Sie das kopierte Token als eine Umgebungsvariable mit dem Namen CODECOV_TOKEN zuIhrem Build-Projekt hinzu. Weitere Informationen finden Sie im Ändern der Einstellungen eines Build-Projekts (Konsole) (p. 259).

5. Erstellen Sie in Ihrem Repository eine Textdatei mit dem Namen my_script.sh. Kopieren SieFolgendes in die Datei:

#/bin/bashbash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN

6. Wählen Sie die Registerkarte Python oder Java, je nachdem, was für Ihr Build-Projekt verwendet wird,und befolgen Sie diese Schritten.

Java

1. Fügen Sie in Ihrem Repository das folgende JaCoCo-Plugin pom.xml hinzu.

<build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.2</version> <executions> <execution>

API-Version 2016-10-06426

Page 434: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchIntegrieren von Codecov in ein Build-Projekt

<goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins></build>

2. Geben Sie die folgenden Befehle in die Build-Spezifikationsdatei ein. Weitere Informationenfinden Sie im Syntax der Build-Spezifikation (p. 151).

build: - mvn test -f pom.xml -fnpostbuild: - echo 'Connect to CodeCov' - bash my_script.sh

Python

Geben Sie die folgenden Befehle in die Build-Spezifikationsdatei ein. Weitere Informationen findenSie im Syntax der Build-Spezifikation (p. 151).

build: - pip install coverage - coverage run -m unittest discoverpostbuild: - echo 'Connect to CodeCov' - bash my_script.sh

7. Führen Sie einen Build Ihres Build-Projekts aus. Ein Link zu den für Ihr Projekt generierten Codecov-Berichten wird in Ihren Build-Protokollen angezeigt. Verwenden Sie den Link, um sich die Codecov-Berichte anzeigen zu lassen. Weitere Informationen finden Sie unter Ausführen eines Build in AWSCodeBuild (p. 279) und Protokollieren von AWS CodeBuild-API-Aufrufen mit AWS CloudTrail (p. 334).Die Codecov-Informationen in den Build-Protokollen sehen wie folgt aus:

[Container] 2020/03/09 16:31:04 Running command bash my_script.sh

_____ _ / ____| | || | ___ __| | ___ ___ _____ __| | / _ \ / _` |/ _ \/ __/ _ \ \ / /| |___| (_) | (_| | __/ (_| (_) \ V / \_____\___/ \__,_|\___|\___\___/ \_/ Bash-20200303-bc4d7e6

·[0;90m==>·[0m AWS Codebuild detected.... The full list of Codecov log entries has been omitted for brevity ... · ·[0;32m->·[0m View reports at ·[0;36mhttps://codecov.io/github/user/test_py/commit/commit-id·[0m

[Container] 2020/03/09 16:31:07 Phase complete: POST_BUILD State: SUCCEEDED

API-Version 2016-10-06427

Page 435: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchServerlose Anwendungen

Die Berichte sehen wie folgt aus:

Verwenden AWS CodeBuild mit serverlosenAnwendungen

Das AWS Serverless Application Model (Serverlose Anwendungsmodell, AWS SAM) ist ein Open-Source-Framework für das Erstellen serverloser Anwendungen. Weitere Informationen finden Sie unter AWSServerless Application Model auf GitHub.

API-Version 2016-10-06428

Page 436: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchZugehörige Ressourcen

Sie können AWS CodeBuild zum Verpacken und Bereitstellen von serverlosen Anwendungen verwenden,die dem AWS SAM-Standard entsprechen. Für den Bereitstellungsschritt kann CodeBuild AWSCloudFormation verwenden. Zur Automatisierung der Erstellung und Bereitstellung von serverlosenAnwendungen mit CodeBuild und AWS CloudFormation können Sie AWS CodePipeline verwenden.

Weitere Informationen finden Sie unter Serverlose Anwendungen bereitstellen im ServerlosesAnwendungsmodell von AWS-Entwicklerhandbuch.

Zugehörige Ressourcen• Informationen zu den ersten Schritten mit AWS CodeBuild finden Sie unter Erste Schritte mit AWS

CodeBuild unter Verwendung der Konsole (p. 5).• Informationen zur Problembehandlung in CodeBuild finden Sie unter Fehlerbehebung für AWS

CodeBuild (p. 430).• Informationen zu Kontingenten in CodeBuild finden Sie unter Kontingente für AWS CodeBuild (p. 446).

API-Version 2016-10-06429

Page 437: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Fehlerbehebung für AWS CodeBuildVerwenden Sie die Informationen in diesem Thema, um Fehler zu identifizieren, zu diagnostizieren und zubeheben. Für Informationen zum Protokollieren und Überwachen von CodeBuild-Builds zur Behebung vonProblemen siehe Protokollierung und Überwachung (p. 334).

Themen• Apache Maven erstellt Referenzartefakte aus dem falschen Repository (p. 431)• Build-Befehle werden standardmäßig als Root-Benutzer ausgeführt (p. 432)• Builds können fehlschlagen, wenn Dateinamen nicht in den USA enthalten sind. Englische

Zeichen (p. 432)• Builds könnten fehlschlagen, wenn Parameter aus dem Amazon EC2-Parameterspeicher abgerufen

werden (p. 433)• Zugriff auf Verzweigungsfilter in der CodeBuild-Konsole nicht möglich (p. 433)• Erfolg oder Misserfolg der Build-Erstellung wird nicht angezeigt (p. 434)• Das Basis-Image der Windows Server Core 2016-Plattform kann nicht gefunden und ausgewählt

werden (p. 434)• Vorherige Befehle in den Build-Spezifikationsdateien werden von nachfolgenden Befehlen nicht

erkannt (p. 434)• Fehler "Zugriff verweigert" beim Versuch Cache herunterzuladen (p. 435)• Fehler "BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE" bei Verwendung eines benutzerdefinierten

Build-Images (p. 435)• Fehler "Build-Container vor Abschluss des Builds gefunden. Build-Container verstirbt, weil er nicht

genügend Arbeitsspeicher hat oder das Docker-Image nicht unterstützt wird. ErrorCode 500 (p. 436)• Fehler „Verbindung zum Docker-Daemon kann nicht hergestellt werden“, wenn ein Build ausgeführt

wird (p. 436)• Fehler: "CodeBuild beim Ausführen eines Builds ein Problem hat (p. 437)• Fehler: "CodeBuild ist nicht berechtigt, Folgendes auszuführen: sts:AssumeRole" beim Erstellen oder

Aktualisieren eines Build-Projekts (p. 437)• Fehler "Fehler beim Aufrufen von GetBucketAcl: Entweder hat sich der Bucket-Eigentümer geändert

oder die Service-Rolle hat keine Berechtigung mehr, s3:GetBucketAcl" aufzurufen (p. 438)• Fehler "Artefakte konnten nicht hochgeladen werden: Ungültiger Arn" beim Ausführen eines

Builds (p. 438)• Fehler "Git Clone fehlgeschlagen: Zugriff nicht möglich 'your-repository-URL': Problem mit SSL-

Zertifikat: Selbstsigniertes Zertifikat (p. 439)• Fehler „Der Bucket, auf den Sie zugreifen möchten, muss mit dem angegebenen Endpunkt adressiert

werden“, wenn Sie einen Build ausführen (p. 439)• Fehler "Die Standardversion der Richtlinie wurde nicht von der erweiterten Zero-Click-Rollenerstellung

erstellt oder war nicht die neueste Version, die von der erweiterten Zero-Click-Rollenerstellung erstelltwurde." (p. 440)

• Fehler "Für dieses Build-Image muss mindestens eine Laufzeitversion ausgewählt werden." (p. 440)• Fehler IN WARTESCHLANGE INSUFFICIENT_SUBNET" wenn ein Build in einer Build-Warteschlange

fehlschlägt (p. 441)• Fehler "Cache kann nicht heruntergeladen werden: Anforderungsfehler: Senden der Anfrage

fehlgeschlagen, verursacht durch: x509: Systemwurzeln konnten nicht geladen werden und es wurdenkeine Roots bereitgestellt" (p. 442)

• Fehler "Zertifikat kann nicht von S3 heruntergeladen werden. AccessDenied (p. 442)• Fehler "Anmeldeinformationen können nicht gefunden werden" (p. 442)• RequestError-Timeout-Fehler beim Ausführen von CodeBuild in einem Proxy-Server (p. 443)

API-Version 2016-10-06430

Page 438: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchApache Maven erstellt Referenzartefakte

aus dem falschen Repository

• Die Bourne-Shell (sh) muss in Build-Images vorhanden sein (p. 444)• Warnung "Überspringen der Installation von Laufzeiten. Laufzeitversionsauswahl wird von diesem

Build-Image nicht unterstützt" beim Ausführen eines Builds (p. 445)• Fehler AUFBAU_BEHÄLTER_UNABLE_TO_PULL_IMAGE (p. 445)• Fehler "JobWorker-Identität kann nicht überprüft werden" beim Öffnen des CodeBuild

Konsole (p. 445)

Apache Maven erstellt Referenzartefakte aus demfalschen Repository

Problem Wenn Sie Maven mit einem AWS CodeBuild-bereitgestellte Java-Build-Umgebung, ziehtMaven Build- und Plugin-Abhängigkeiten aus dem sicheren zentralen Maven-Repository unter https://repo1.maven.org/maven2. Das passiert auch dann, wenn die Datei pom.xml des Build-Projekts explizit dieVerwendung anderer Verzeichnisse angibt.

Mögliche Ursache: Von CodeBuild bereitgestellte Java Build-Umgebungen enthalten eine Dateinamens settings.xml, die im Verzeichnis /root/.m2 der Build-Umgebung vorinstalliert ist. DieseDatei settings.xml enthält die folgenden Deklarationen, die Maven anweisen, Build- und Plugin-Abhängigkeiten aus dem sicheren zentralen Maven-Repository unter https://repo1.maven.org/maven2abzurufen.

<settings> <activeProfiles> <activeProfile>securecentral</activeProfile> </activeProfiles> <profiles> <profile> <id>securecentral</id> <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> </profile> </profiles></settings>

Empfohlene Lösung. Gehen Sie wie folgt vor.

1. Fügen Sie eine Datei settings.xml zu Ihrem Quellcode hinzu.2. Verwenden Sie in dieser Datei settings.xml das oben angegebene Format für settings.xml

als Richtlinie zur Deklaration der Repositorys, aus denen Maven stattdessen die Build- und Plugin-Abhängigkeiten abrufen soll.

API-Version 2016-10-06431

Page 439: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Befehle werden standardmäßig

als Root-Benutzer ausgeführt

3. Weisen Sie CodeBuild in der Phase install des Build-Projekts an, Ihre Datei settings.xmlin das Verzeichnis /root/.m2 der Build-Umgebung zu kopieren. Ein Beispiel ist der folgendeCodeausschnitt aus der Datei buildspec.yml, der dieses Verhalten veranschaulicht.

version 0.2

phases: install: commands: - cp ./settings.xml /root/.m2/settings.xml

Build-Befehle werden standardmäßig als Root-Benutzer ausgeführt

Problem: AWS CodeBuild führt Ihre Build-Befehle als Root-Benutzer aus. Dies passiert, auch wenn dasDockerfile des entsprechenden Build-Image die USER-Anweisungen auf einen anderen Benutzer umstellt.

Ursache Standardmäßig CodeBuild führt alle Build-Befehle als Root-Benutzer aus.

Empfohlene Lösung. Keine.

Builds können fehlschlagen, wenn Dateinamennicht in den USA enthalten sind. Englische Zeichen

Problem Wenn Sie einen Build ausführen, der Dateien mit Dateinamen verwendet, die Nicht-US-Dateienenthalten. Englische Zeichen (z. B. chinesische Zeichen), der Build schlägt fehl.

Mögliche Ursache Erstellen von Umgebungen, die von bereitgestellt werden AWS CodeBuild haben ihrStandard-Gebietsschema auf POSIX. (z. B.. POSIX Lokalisierungseinstellungen sind weniger kompatibelmit CodeBuild und Dateinamen, die nicht-US-amerikanische Englische Zeichen und können dazu führen,dass verwandte Builds fehlschlagen.

Empfohlene Lösung. Fügen Sie der die folgenden Befehle hinzu pre_build Abschnitt Ihrer Build-Spezifikationsdatei. Durch diese Befehle wird die Build-Umgebung mit dem US-englischen UTF-8 für dieLokalisierungseinstellungen verwendet, was besser kompatibel ist mit CodeBuild und Dateinamen, dienicht-US-amerikanische Englische Zeichen.

Für Build-Umgebungen basierend auf Ubuntu:

pre_build: commands: - export LC_ALL="en_US.UTF-8" - locale-gen en_US en_US.UTF-8 - dpkg-reconfigure locales

Für Build-Umgebungen basierend auf Amazon Linux:

pre_build: commands: - export LC_ALL="en_US.utf8"

API-Version 2016-10-06432

Page 440: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuilds könnten fehlschlagen, wenn Parameter aus dem

Amazon EC2-Parameterspeicher abgerufen werden

Builds könnten fehlschlagen, wenn Parameter ausdem Amazon EC2-Parameterspeicher abgerufenwerden

Problem Wenn ein Build versucht, den Wert eines oder mehrerer Parameter abzurufen, die in gespeichertsind Amazon EC2 Parameter Store, der Build schlägt fehl in der DOWNLOAD_SOURCE Phase mit dem FehlerParameter does not exist.

Mögliche Ursache Die Servicerolle, auf die sich das Build-Projekt stützt, verfügt nicht über die Berechtigungzum Aufrufen der ssm:GetParameters -Aktion oder das Build-Projekt verwendet eine Servicerolle, dievon generiert wird AWS CodeBuild und ermöglicht das Aufrufen der ssm:GetParameters -Aktion, aberdie Parameter haben Namen, die nicht mit /CodeBuild/.

Empfohlene Lösungen:

• Wenn die Service-Rolle nicht von CodeBuild erstellt wurde, aktualisieren Sie ihre Definition,um es CodeBuild zu ermöglichen, die Aktion ssm:GetParameters aufzurufen. Die folgendeRichtlinienanweisung erlaubt es beispielsweise, die Aktion ssm:GetParameters auszuführen undParameter, deren Namen mit /CodeBuild/ beginnen, abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:REGION_ID:ACCOUNT_ID:parameter/CodeBuild/*" } ]}

• Wenn die Servicerolle generiert wurde von CodeBuild, aktualisieren Sie seine Definition, um CodeBuildum auf Parameter in zuzugreifen Amazon EC2 Parameterspeicher mit anderen Namen als denen, die mitbeginnen /CodeBuild/. (z. B.. Die folgende Richtlinienanweisung erlaubt beispielsweise das Aufrufender ssm:GetParameters -Aktion zum Abrufen von Parametern mit dem angegebenen Namen:

{ "Version": "2012-10-17", "Statement": [ { "Action": "ssm:GetParameters", "Effect": "Allow", "Resource": "arn:aws:ssm:REGION_ID:ACCOUNT_ID:parameter/PARAMETER_NAME" } ]}

Zugriff auf Verzweigungsfilter in der CodeBuild-Konsole nicht möglich

Problem Die Branch-Filteroption ist in der -Konsole nicht verfügbar, wenn Sie einen erstellen oderaktualisieren. AWS CodeBuild Projekt zu erstellen.

API-Version 2016-10-06433

Page 441: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchErfolg oder Misserfolg der Build-Erstellung wird nicht angezeigt

Mögliche Ursache Die Verzweigungsfilteroption ist veraltet. Sie wurde durch Webhook-Filtergruppenersetzt, die eine bessere Kontrolle über die Webhook-Ereignisse bieten, die einen neuen CodeBuild-Buildauslösen.

Empfohlene Lösung. Um einen Branch-Filter zu migrieren, den Sie vor der Einführung von Webhook-Filtern erstellt haben, erstellen Sie eine Webhook-Filtergruppe mit einem HEAD_REF Filter mit demregulären Ausdruck ^refs/heads/branchName$. (z. B..) Wenn Ihr regulärer Verzweigungsfilterausdruckbeispielsweise ^branchName$, dann der aktualisierte reguläre Ausdruck, den Sie in die HEAD_REF Filterist ^refs/heads/branchName$. (z. B.. Weitere Informationen finden Sie unter Bitbucket-Webhook-Ereignisse (p. 243) und Filtern von GitHub-Webhook-Ereignissen (Konsole) (p. 253).

Erfolg oder Misserfolg der Build-Erstellung wirdnicht angezeigt

Problem Sie können den Erfolg oder Fehler eines erneut versuchten Builds nicht sehen.

Mögliche Ursache Die Option zum Melden des Build-Status ist nicht aktiviert.

Empfohlene Lösungen: Aktivieren Erstellungsstatus des Berichts wenn Sie eine CodeBuild Projekt zuerstellen. Diese Option weist CodeBuild an, den Status zurückzugeben, wenn Sie eine Build-Erstellungauslösen. Weitere Informationen finden Sie unter reportBuildStatus in der AWS CodeBuild-API-Referenz.

Das Basis-Image der Windows Server Core 2016-Plattform kann nicht gefunden und ausgewähltwerden

Problem Sie können das Basisabbild der Windows Server Core 2016-Plattform nicht finden oderauswählen.

Mögliche Ursache Sie verwenden eine AWS-Region, die dieses Abbild nicht unterstützt.

Empfohlene Lösungen: Verwenden Sie eine der folgenden AWS-Regionen, in denen das Basis-Image derWindows Server Core 2016-Plattform unterstützt wird:

• USA Ost (Nord-Virginia)• USA Ost (Ohio)• USA Ost (Ohio)• USA West (Nordkalifornien)

Vorherige Befehle in den Build-Spezifikationsdateien werden von nachfolgendenBefehlen nicht erkannt

Problem Die Ergebnisse eines oder mehrerer Befehle in Ihrer buildspec-Datei werden von späterenBefehlen in derselben buildspec-Datei nicht erkannt. Beispielsweise legt ein Befehl eine lokaleUmgebungsvariable fest, aber ein späterer Befehl ruft den Wert dieser lokalen Umgebungsvariable nichtab.

API-Version 2016-10-06434

Page 442: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Zugriff verweigert" beimVersuch Cache herunterzuladen

Mögliche Ursache In der Build-Spezifikationsdatei Version 0.1 AWS CodeBuild führt jeden Befehl in einerseparaten Instance der Standard-Shell in der Build-Umgebung aus. d. h., dass jeder Befehl unabhängigvon allen anderen Befehlen ausgeführt wird. Daher können Sie keinen Einzelbefehl ausführen, der auf demStatus eines vorherigen Befehls basiert.

Empfohlene Lösungen: Wir empfehlen, die Build-Spezifikation Version 0.2 zu verwenden, die diesesProblem löst. Falls Sie doch die Build-Spezifikationsversion 0.1 verwenden müssen, empfehlen wirdie Verwendung des Shell-Befehlsverkettungsoperators (z. B. && in Linux), um mehrere Befehle zueinem einzigen Befehl zu kombinieren. Oder schließen Sie ein Shell-Skript in den Quellcode ein,das mehrere Befehle enthält, und rufen Sie dann dieses Shell-Skript über einen Einzelbefehl in derBuild-Spezifikationsdatei auf. Weitere Informationen finden Sie unter Shells und Befehle in Build-Umgebungen (p. 181) und Umgebungsvariablen in Build-Umgebungen (p. 182).

Fehler "Zugriff verweigert" beim Versuch Cacheherunterzuladen

Problem Wenn Sie versuchen, den Cache auf ein Build-Projekt herunterzuladen, für das der Cache aktiviertist, erhalten Sie eine Access denied Fehler.

Mögliche Ursachen

• Sie haben gerade Caching als Teil Ihres Build-Projekts konfiguriert.• Der Cache wurde vor Kurzem durch die InvalidateProjectCache-API ungültig gemacht.• Die Service-Rolle von CodeBuild verfügt nicht über die Berechtigungen s3:GetObject unds3:PutObject für den S3-Bucket, in dem sich der Cache befindet.

Empfohlene Lösung. Bei der ersten Verwendung ist es normal, dies sofort nach dem Aktualisieren derCache-Konfiguration zu sehen. Wenn das Problem weiterhin besteht, sollten Sie prüfen, ob Ihre Service-Rolle über die Berechtigungen s3:GetObject und s3:PutObject für den S3-Bucket verfügt, in dem sichder Cache befindet. Weitere Informationen finden Sie unter Angeben von S3-Berechtigungen im AmazonS3-Entwicklerhandbuch.

Fehler"BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE"bei Verwendung eines benutzerdefinierten Build-Images

Problem Wenn Sie versuchen, einen Build auszuführen, der ein benutzerdefiniertes Build-Imageverwendet, schlägt der Build mit dem Fehler fehl BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE.

Mögliche Ursachen

• Die unkomprimierte Gesamtgröße des Build-Image ist größer als der für den Datenverarbeitungstypder Build-Umgebung verfügbare Speicherplatz. Zum Prüfen der Größe des Build-Image nutzen SieDocker und führen den Befehl docker images REPOSITORY:TAG aus. Eine Liste der für die jeweiligenDatenverarbeitungstypen verfügbaren Speicherplätze finden Sie unter Arten der Datenverarbeitung beider Build-Umgebung (p. 180).

API-Version 2016-10-06435

Page 443: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Build-Container vor Abschluss des Buildsgefunden. Build-Container verstirbt, weil er nichtgenügend Arbeitsspeicher hat oder das Docker-

Image nicht unterstützt wird. ErrorCode 500 • AWS CodeBuild ist nicht berechtigt, das Build-Abbild von Ihrem Amazon Elastic Container Registry(Amazon ECR) abzurufen.

• Das angeforderte Amazon ECR-Abbild ist nicht verfügbar in der AWS-Region, die für Ihr AWS-Konto gilt.• Sie verwenden eine private Registrierung in einer VPC, die keinen öffentlichen Internetzugang hat.

CodeBuild kann kein Abbild von einer privaten IP-Adresse in einer VPC abrufen. Weitere Informationenfinden Sie im Beispiel einer privaten Registrierung mit AWS Secrets Manager für CodeBuild (p. 142).

Empfohlene Lösungen:

• Verwenden Sie einen größeren Datenverarbeitungstyp, bei dem mehr Speicherplatz zur Verfügung steht,oder reduzieren Sie die Größe Ihres benutzerdefinierten Build-Image.

• Aktualisieren Sie Ihre Repository-Berechtigungen in Amazon ECR, sodass CodeBuild Ihrbenutzerdefiniertes Build-Image in die Build-Umgebung ziehen kann: Weitere Informationen finden Sieunter Amazon ECR-Beispiel (p. 54).

• Verwenden Sie ein Amazon ECR-Abbild, das sich in der gleichen AWS-Region befindet wie das IhresAWS-Kontos.

• Wenn Sie eine private Registrierung in einer VPC verwenden, stellen Sie sicher, dass die VPC übereinen öffentlichen Internetzugang verfügt.

Fehler "Build-Container vor Abschluss des Buildsgefunden. Build-Container verstirbt, weil er nichtgenügend Arbeitsspeicher hat oder das Docker-Image nicht unterstützt wird. ErrorCode 500

Problem Wenn Sie versuchen, einen Microsoft Windows- oder Linux-Container in zu verwenden AWSCodeBuild, dieser Fehler tritt während der BEREITSTELLUNGsphase auf.

Mögliche Ursachen

• Die Container-OS-Version wird von CodeBuild nicht unterstützt.• HTTP_PROXY, HTTPS_PROXY oder beides werden im Container angegeben.

Empfohlene Lösungen:

• Für Microsoft Windows verwenden Sie einen Windows-Container mit einem Container-Betriebssystemder Version microsoft/windowsservercore:10.0.x (z. B. microsoft/windowsservercore:10.0.14393.2125).

• Löschen Sie für Linux die HTTP_PROXY- und HTTPS_PROXY-Einstellungen in Ihrem Docker Image odergeben Sie die VPC-Konfiguration in Ihrem Build-Projekt an.

Fehler „Verbindung zum Docker-Daemon kann nichthergestellt werden“, wenn ein Build ausgeführt wird

Problem Ihr Build schlägt fehl und Sie erhalten einen Fehler ähnlich wie Cannot connect to theDocker daemon at unix:/var/run/docker.sock. Is the docker daemon running? imBuild-Protokoll.

Mögliche Ursache Sie führen Ihren Build nicht im privilegierten Modus aus.

API-Version 2016-10-06436

Page 444: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler: "CodeBuild beim Ausführen

eines Builds ein Problem hat

Empfohlene Lösung. Führen Sie die folgenden Schritte aus, um Ihren Build im privilegierten Modusauszuführen:

1. Öffnen Sie die CodeBuild-Konsole unter https://console.aws.amazon.com/codebuild/.2. Wählen Sie im Navigationsbereich Build projects (Build-Projekte) und anschließend Ihr Build-Projekt

aus.3. Wählen Sie in Edit (Bearbeiten) Environment (Umgebung) aus.4. Wählen Sie Override images (Images überschreiben) und anschließend Environment (Umgebung) aus.5. Geben Sie das Umgebungs-Image, das Betriebssystem, die Laufzeit und das Image an. Diese

Einstellungen sollten den Einstellungen für den Build entsprechen, der fehlgeschlagen ist.6. Wählen Sie Privileged (Privilegiert) aus.

Note

Standardmäßig erlauben Docker-Container keinen Zugriff auf Geräte. Der privilegierteModus gewährt dem Docker-Container eines Build-Projekts Zugriff auf alle Geräte. WeitereInformationen finden Sie unter Laufzeitberechtigungen und Linux-Funktionen auf der Docker-Docs-Website.

7. Wählen Sie Update environment (Umgebung aktualisieren).8. Wählen Sie Start build (Build starten) aus, um erneut zu versuchen, den Build zu erstellen.

Fehler: "CodeBuild beim Ausführen eines Builds einProblem hat

Problem Wenn Sie versuchen, ein Build-Projekt auszuführen, erhalten Sie diesen Fehler während desBuild-Prozesses PROVISIONING Phase.

Mögliche Ursache Ihr Build verwendet Umgebungsvariablen, die zu groß für AWS CodeBuild. (z. B..CodeBuild kann Fehler auslösen, wenn die Länge aller Umgebungsvariablen (alle Namen und Werteaddiert) ein kombiniertes Maximum von etwa 5.500 Zeichen erreicht.

Empfohlene Lösung. Verwenden Amazon EC2 Systems Manager Parameter Store speichertgroße Umgebungsvariablen und ruft sie dann aus Ihrer Build-Spezifikationsdatei ab. Amazon EC2Systems Manager Parameter Store kann eine einzelne Umgebungsvariable (Name und Wert addiert)speichern, die zusammen 4.096 Zeichen oder weniger umfasst. Informationen zum Speichern großerUmgebungsvariablen finden Sie unter Systems Manager Parameter Store und Anleitungen zur SystemsManager Parameter Store-Konsole im Amazon EC2 Systems Manager-Benutzerhandbuch. Informationenzum Abrufen dieser Variablen finden Sie unter der parameter-store-Zuordnung in Syntax der Build-Spezifikation (p. 151).

Fehler: "CodeBuild ist nicht berechtigt, Folgendesauszuführen: sts:AssumeRole" beim Erstellen oderAktualisieren eines Build-Projekts

Problem Wenn Sie versuchen, ein Build-Projekt zu erstellen oder zu aktualisieren, erhalten Sie den FehlerCode:InvalidInputException, Message:CodeBuild is not authorized to perform:sts:AssumeRole on arn:aws:iam::account-ID:role/service-role-name.

Mögliche Ursachen

API-Version 2016-10-06437

Page 445: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Fehler beim Aufrufen von GetBucketAcl:

Entweder hat sich der Bucket-Eigentümergeändert oder die Service-Rolle hat keine

Berechtigung mehr, s3:GetBucketAcl" aufzurufen • AWS Security Token Service (AWS STS) wurde für die AWS-Region deaktiviert, in der Sie versuchen,das Build-Projekt zu erstellen oder zu aktualisieren.

• Die mit diesem Build-Projekt verknüpfte AWS CodeBuild-Servicerolle ist nicht vorhanden oder hat keineausreichende Vertrauensberechtigung für CodeBuild.

Empfohlene Lösungen:

• Stellen Sie sicher, dass AWS STS für die AWS-Region aktiviert ist, in der Sie versuchen, das Build-Projekt zu erstellen oder zu aktualisieren. Weitere Informationen finden Sie unter Aktivieren undDeaktivieren von AWS STS in einer AWS-Region im IAM-Benutzerhandbuch.

• Stellen Sie sicher, dass die CodeBuild-Servicerolle im AWS-Konto vorhanden ist. Wenn Sie nicht dieKonsole verwenden, achten Sie darauf, dass Sie den Amazon-Ressourcenname (ARN) der Servicerollebeim Erstellen oder Aktualisieren des Build-Projekts richtig geschrieben haben.

• Vergewissern Sie sich, dass die CodeBuild-Servicerolle eine ausreichende Vertrauensberechtigung fürCodeBuild hat. Weitere Informationen finden Sie in der Vertrauensbeziehung-Richtlinienanweisung unterErstellen Sie eine CodeBuild-Servicerolle (p. 396).

Fehler "Fehler beim Aufrufen von GetBucketAcl:Entweder hat sich der Bucket-Eigentümer geändertoder die Service-Rolle hat keine Berechtigungmehr, s3:GetBucketAcl" aufzurufen

Problem Wenn Sie einen Build ausführen, erhalten Sie eine Fehlermeldung zu einer Änderung derEigentümerschaft eines S3-Buckets und GetBucketAcl Berechtigungen.

Mögliche Ursache Sie haben die s3:GetBucketACL und s3:GetBucketLocation Berechtigungen fürIhre IAM -Rolle. Diese Berechtigungen sichern den S3-Bucket Ihres Projekts und stellen Sie sicher, dassnur Sie Zugriff auf diesen haben. Nachdem Sie diese Berechtigungen hinzugefügt haben, hat sich derBesitzer des S3-Buckets geändert.

Empfohlene Lösung. Überprüfen Sie, ob Sie Eigentümer des S3-Buckets sind, und fügen Sie dannBerechtigungen zu Ihrem hinzu. IAM Rolle erneut an. Weitere Informationen finden Sie im Sicherer Zugriffauf S3-Buckets (p. 364).

Fehler "Artefakte konnten nicht hochgeladenwerden: Ungültiger Arn" beim Ausführen einesBuilds

Problem Wenn Sie einen Build ausführen, wird die UPLOAD_ARTIFACTS Build-Phase schlägt mit demFehler fehl Failed to upload artifacts: Invalid arn.

Mögliche Ursache Ihr S3-Ausgabe-Bucket (der Bucket, in dem AWS CodeBuild speichert seine Ausgabevom Build) in einem AWS Region unterscheidet sich von der CodeBuild Projekt erstellen.

Empfohlene Lösung. Aktualisieren Sie die Einstellungen des Build-Projekts, um auf einen Ausgabe-Bucketzu verweisen, der sich in derselben AWS-Region wie das Build-Projekt befindet.

API-Version 2016-10-06438

Page 446: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Git Clone fehlgeschlagen: Zugriff nichtmöglich 'your-repository-URL': Problem

mit SSL-Zertifikat: Selbstsigniertes Zertifikat

Fehler "Git Clone fehlgeschlagen: Zugriff nichtmöglich 'your-repository-URL': Problem mitSSL-Zertifikat: Selbstsigniertes Zertifikat

Problem Wenn Sie versuchen, ein Build-Projekt auszuführen, schlägt der Build mit diesem Fehler fehl.

Mögliche Ursache Ihr Quell-Repository verfügt über ein selbstsigniertes Zertifikat, Sie haben jedoch nichtgewählt, das Zertifikat als Teil Ihres Build-Projekts aus Ihrem S3-Bucket zu installieren.

Empfohlene Lösungen:

• Bearbeiten Sie Ihr Projekt. Für Certificate wählen Sie Install certificate from S3. Für Bucket of certificatewählen Sie den S3-Bucket, in dem Ihr SSL-Zertifikat gespeichert ist. Für Object key of certificate(Objektschlüssel des Zertifikats) geben Sie den Namen Ihres S3-Objektschlüssels ein.

• Bearbeiten Sie Ihr Projekt. Wählen Sie Insecure SSL (Unsicheres SSL), um SSL-Warnungen zuignorieren, während Sie eine Verbindung zu Ihrem GitHub Enterprise Server-Projekt-Repositoryeinrichten.

Note

Wir empfehlen, dass Sie Insecure SSL nur für Tests verwenden. Es sollte nicht in einerProduktionsumgebung verwendet werden.

Fehler „Der Bucket, auf den Sie zugreifen möchten,muss mit dem angegebenen Endpunkt adressiertwerden“, wenn Sie einen Build ausführen

Problem Wenn Sie einen Build ausführen, wird die DOWNLOAD_SOURCE Build-Phase schlägt mit demFehler fehl The bucket you are attempting to access must be addressed using thespecified endpoint. Please send all future requests to this endpoint.

Mögliche Ursache Ihr vorgefertigter Quellcode wird in einem S3-Bucket gespeichert und dieser Bucketbefindet sich in einem AWS Region unterscheidet sich von der AWS CodeBuild Projekt erstellen.

Empfohlene Lösung. Aktualisieren Sie die Einstellungen des Build-Projekts, um auf einen Bucket zuverweisen, der Ihren vorgefertigten Quellcode enthält. Stellen Sie sicher, dass sich der Bucket in derselbenAWS-Region wie das Build-Projekt befindet.

API-Version 2016-10-06439

Page 447: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Die Standardversion der Richtlinie wurde

nicht von der erweiterten Zero-Click-Rollenerstellungerstellt oder war nicht die neueste Version, die von dererweiterten Zero-Click-Rollenerstellung erstellt wurde."Fehler "Die Standardversion der Richtlinie

wurde nicht von der erweiterten Zero-Click-Rollenerstellung erstellt oder war nicht die neuesteVersion, die von der erweiterten Zero-Click-Rollenerstellung erstellt wurde."

Problem Wenn Sie versuchen, ein Projekt in der -Konsole zu aktualisieren, ist die Aktualisierung mit diesemFehler fehlgeschlagen:

Mögliche Ursachen

• Sie haben die Richtlinien, die der AWS CodeBuild-Ziel-Servicerolle angefügt sind, aktualisiert.• Sie haben eine frühere Version einer Richtlinie ausgewählt, die der CodeBuild-Ziel-Servicerolle angefügt

ist.

Empfohlene Lösungen:

• Bearbeiten Sie das CodeBuild-Projekt und deaktivieren Sie das Kontrollkästchen Allow CodeBuild tomodify this service role so it can be used with this build project (Ändern dieser Servicerolle durch ACBgestatten, damit sie mit diesem Build-Projekt verwendet werden kann). Stellen Sie sicher, dass die vonIhnen verwendete CodeBuild-Servicerolle über ausreichende Berechtigungen verfügt. Wenn Sie IhrCodeBuild-Projekt erneut bearbeiten, müssen Sie dieses Kontrollkästchen erneut deaktivieren. WeitereInformationen finden Sie im Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

• Befolgen Sie diese Schritte, um Ihr CodeBuild-Projekt so zu bearbeiten, dass eine neue Servicerolleverwendet wird:

1. Öffnen Sie die IAM-Konsole und erstellen Sie eine neue Servicerolle. Weitere Informationen findenSie im Erstellen Sie eine CodeBuild-Servicerolle (p. 396).

2. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.3. Wählen Sie im linken Navigationsbereich Build projects aus.4. Wählen Sie die Schaltfläche neben Ihrem Build-Projekt, dann Edit (Bearbeiten) und dann

Environment (Umgebung).5. Wählen Sie für die Service role (Servicerolle) die von Ihnen erstellte Rolle aus.6. Wählen Sie Update environment (Umgebung aktualisieren).

Fehler "Für dieses Build-Image muss mindestenseine Laufzeitversion ausgewählt werden."

Problem Wenn Sie einen Build ausführen, wird die DOWNLOAD_SOURCE Build-Phase schlägt mit dem Fehlerfehl YAML_FILE_ERROR: This build image requires selecting at least one runtimeversion.

Mögliche Ursache Ihr Build verwendet Version 1.0 oder höher der Amazon Linux 2 (AL2) Standard-Imageoder Version 2.0 oder höher des Ubuntu-Standard-Images und eine Laufzeit ist in der buildspec-Datei nichtangegeben.

API-Version 2016-10-06440

Page 448: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler IN WARTESCHLANGE INSUFFICIENT_SUBNET"wenn ein Build in einer Build-Warteschlange fehlschlägt

Empfohlene Lösung. Wenn Sie die Schaltfläche aws/codebuild/standard:2.0 CodeBuild -verwalteten Abbilds müssen Sie eine Laufzeitversion in der runtime-versions Abschnitt der Build-Spezifikationsdatei. Sie können beispielsweise die folgende Build-Spezifikationsdatei für ein Projekt mitPHP verwenden:

version: 0.2

phases: install: runtime-versions: php: 7.3 build: commands: - php --versionartifacts: files: - README.md

Note

Wenn Sie einen runtime-versions-Abschnitt angeben und ein anderes Image als das Ubuntu-Standard-Image 2.0 oder höher oder das Amazon Linux 2 (AL2)-Standard-Image 1.0 oder höherverwenden, gibt der Build folgende Warnung aus: „Skipping install of runtimes.Runtime version selection is not supported by this build image aus.“.

Weitere Informationen finden Sie im Specify runtime versions in the buildspec file.

Fehler IN WARTESCHLANGEINSUFFICIENT_SUBNET" wenn ein Build in einerBuild-Warteschlange fehlschlägt

Problem Ein Build in einer Build-Warteschlange schlägt fehl mit einem Fehler ähnlich wie QUEUED:INSUFFICIENT_SUBNET.

Mögliche Ursachen Der für Ihre VPC angegebene IPv4-CIDR-Block verwendet eine reservierte IP-Adresse. Die ersten vier als auch die letzte IP-Adresse in jedem Subnetz CIDR-Block stehen nicht zuIhrer Verfügung und können daher keiner Instance zugewiesen werden. So sind beispielsweise in einemSubnetz mit dem CIDR-Block 10.0.0.0/24 die folgenden fünf IP-Adressen reserviert:

• 10.0.0.0:: Netzwerkadresse.• 10.0.0.1: : Von AWS für den VPC-Router reserviert.• 10.0.0.2: : Von AWS reserviert. Die IP-Adresse des DNS-Servers ist immer die Basis des VPC-

Netzwerk-Bereichs plus zwei. Wir reservieren jedoch auch die Basis jedes Subnetzbereichs plus zwei.Für VPCs mit mehreren CIDR-Blöcken befindet sich die IP-Adresse des DNS-Servers im primären CIDR.Weitere Informationen finden Sie unter Amazon DNS-Server im Amazon VPC-Benutzerhandbuch.

• 10.0.0.3: : Von AWS für die spätere Verwendung reserviert.• 10.0.0.255: : Broadcast Adresse des Netzwerks. Wir unterstützen keinen Broadcast in eine VPC.

Diese Adresse ist reserviert.

Empfohlene Lösungen: Überprüfen Sie, ob Ihre VPC eine reservierte IP-Adresse verwendet. Ersetzen Sieeine reservierte IP-Adresse durch eine IP-Adresse, die nicht reserviert ist. Weitere Informationen finden Sieunter Dimensionierung der VPC und der Subnetze im Amazon VPC-Benutzerhandbuch.

API-Version 2016-10-06441

Page 449: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFehler "Cache kann nicht heruntergeladen werden:

Anforderungsfehler: Senden der Anfrage fehlgeschlagen,verursacht durch: x509: Systemwurzeln konnten nicht

geladen werden und es wurden keine Roots bereitgestellt"Fehler "Cache kann nicht heruntergeladenwerden: Anforderungsfehler: Senden derAnfrage fehlgeschlagen, verursacht durch: x509:Systemwurzeln konnten nicht geladen werden undes wurden keine Roots bereitgestellt"

Problem Wenn Sie versuchen, ein Build-Projekt auszuführen, schlägt der Build mit diesem Fehler fehl.

Mögliche Ursache Sie haben Caching als Teil Ihres Build-Projekts konfiguriert und verwenden ein älteresDocker-Image, das ein abgelaufenes Stammzertifikat enthält.

Empfohlene Lösung. Aktualisieren Sie das Docker-Image, das in Ihrem AWS CodeBuild-Projekt verwendetwird. Weitere Informationen finden Sie im Von CodeBuild bereitgestellte Docker-Images (p. 175).

Fehler "Zertifikat kann nicht von S3 heruntergeladenwerden. AccessDenied

Problem Wenn Sie versuchen, ein Build-Projekt auszuführen, schlägt der Build mit diesem Fehler fehl.

Mögliche Ursachen

• Sie haben den falschen S3-Bucket für Ihr Zertifikat gewählt.• Sie haben den falschen Objektschlüssel für Ihr Zertifikat eingegeben.

Empfohlene Lösungen:

• Bearbeiten Sie Ihr Projekt. Für Bucket of certificate wählen Sie den S3-Bucket, in dem Ihr SSL-Zertifikatgespeichert ist.

• Bearbeiten Sie Ihr Projekt. Für Object key of certificate (Objektschlüssel des Zertifikats) geben Sie denNamen Ihres S3-Objektschlüssels ein.

Fehler "Anmeldeinformationen können nichtgefunden werden"

Problem Wenn Sie versuchen, die AWS CLI, verwenden Sie eine AWS SDK oder rufen Sie eineandere ähnliche Komponente als Teil eines Builds auf, erhalten Sie Build-Fehler, die direkt mit demzusammenhängen AWS CLI, , und Sie haben die Möglichkeit AWS SDK oder Komponente. Sie könntenzum Beispiel eine Build-Fehlermeldung wie Unable to locate credentials erhalten.

Mögliche Ursachen

• Die Version der AWS CLI, des AWS-SDK oder der Komponente in der Build-Umgebung ist nicht mitAWS CodeBuild kompatibel.

• Sie führen einen Docker-Container in einer Build-Umgebung aus, die Docker verwendet. Dieser Docker-Container hat standardmäßig keinen Zugriff auf die AWS-Anmeldeinformationen.

API-Version 2016-10-06442

Page 450: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchRequestError-Timeout-Fehler beim Ausführen

von CodeBuild in einem Proxy-Server

Empfohlene Lösungen:

• Stellen Sie sicher, dass Ihre Build-Umgebung mindestens folgende Version der AWS CLI, des AWS SDKoder der Komponente hat.• AWS CLI: 1.10.47• AWS SDK for C++ 0.2.19 (Durchführungsfehler)• AWS-SDK für Go 1.2.5• AWS-SDK für Java 1.11.1 (Durchführung)• AWS SDK für JavaScript: 2.4.7• AWS SDK für PHP: 3.18.28 (Voraussetzung: 3.18.28)• AWS SDK für Python (Boto3): 1.4.0• AWS SDK für Ruby 2.3.22 beschrieben.• Botocore 1.4.37 (britische Fassung)• CoreCLR: 3.2.6-beta• Node.js 2.4.7

• Wenn Sie einen Docker-Container in einer Build-Umgebung ausführen möchten und der Containerdazu Zugriff auf AWS-Anmeldeinformationen benötigt, müssen Sie die Anmeldeinformationen von derBuild-Umgebung auf den Container übertragen. Fügen Sie in Ihrer Build-Spezifikationsdatei wie indem nachfolgenden Beispiel einen Docker-run-Befehl ein. In diesem Beispiel werden die verfügbarenS3-Buckets mit dem aws s3 ls Befehl aufgeführt. Mit der Option -e werden die erforderlichenUmgebungsvariablen übergeben, damit Ihr Container Zugriff auf die AWS-Anmeldeinformationen erhält.

docker run -e AWS_DEFAULT_REGION -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI your-image-tag aws s3 ls

• Wenn Sie ein Docker-Image erstellen und Build AWS-Anmeldeinformationen benötigt (z. B. um eineDatei von Amazon S3 herunterzuladen), müssen Sie die Anmeldeinformationen wie nachfolgendbeschrieben von der Build-Umgebung auf den Docker-Build-Prozess übertragen.1. Geben Sie in Ihrem Quellcode für das Dockerfile des Docker-Image die folgenden ARG-Anweisungen

ein.

ARG AWS_DEFAULT_REGIONARG AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

2. Fügen Sie in Ihrer Build-Spezifikationsdatei wie in dem nachfolgenden Beispiel einen Docker-build-Befehl ein. Mit den Optionen --build-arg werden die Umgebungsvariablen festgelegt, die für IhrenDocker-Buildprozess erforderlich sind, um auf die AWS-Anmeldeinformationen zugreifen zu können.

docker build --build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI -t your-image-tag .

RequestError-Timeout-Fehler beim Ausführen vonCodeBuild in einem Proxy-Server

Problem Sie erhalten eine RequestError Fehler ähnlich einem der folgenden:

• RequestError: send request failed caused by: Post https://logs.<your-region>.amazonaws.com/: dial tcp 52.46.158.105:443: i/o timeout von CloudWatchLogs. API-Version 2016-10-06

443

Page 451: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchDie Bourne-Shell (sh) muss in Build-Images vorhanden sein

• Error uploading artifacts: RequestError: send request failed caused by:Put https://your-bucket.s3.your-aws-region.amazonaws.com/*: dial tcp52.219.96.208:443: connect: connection refused von Amazon S3.

Mögliche Ursachen

• ssl-bump ist nicht ordnungsgemäß konfiguriert.• Die Sicherheitsrichtlinie Ihrer Organisation lässt nicht zu, dass Sie ssl_bump verwenden.• Für Ihre Buildspec-Datei sind keine Proxy-Einstellungen mit einem proxy -Element angegeben.

Empfohlene Lösungen:

• Stellen Sie sicher, dass ssl-bump korrekt konfiguriert ist. Wenn Sie Squid als Proxy-Serververwenden, beachten Sie die Informationen im Abschnitt Konfigurieren von Squid als expliziter Proxy-Server (p. 200).

• Gehen Sie folgendermaßen vor, um private Endpunkte für Amazon S3 und CloudWatch Logs zuverwenden:

1. Entfernen Sie in der Routing-Tabelle Ihres privaten Subnetzes die von Ihnen hinzugefügte Regel, diefür das Internet bestimmten Datenverkehr an Ihren Proxy-Server weiterleitet. Weitere Informationenfinden Sie unter Erstellen eines Subnetzes in Ihrer VPC im Amazon VPC-Benutzerhandbuch.

2. Erstellen Sie einen privaten Amazon S3-Endpunkt und CloudWatch Logs-Endpunkt und verknüpfenSie sie mit dem privaten Subnetz Ihrer Amazon VPC. Weitere Informationen finden Sie unter VPC-Endpunktservices (AWS PrivateLink) imAmazon VPC-Benutzerhandbuch.

3. Vergewissern Sie sich, dass Enable Private DNS Name (Privaten DNS-Namen aktivieren)in Ihrer Amazon VPC ausgewählt ist. Weitere Informationen finden Sie unter Erstellen einesSchnittstellenendpunkts im Amazon VPC-Benutzerhandbuch.

• Wenn Sie für einen expliziten Proxy-Server kein ssl-bump verwenden, fügen Sie Ihrer Buildspec-Datei mithilfe eines proxy -Elements eine Proxy-Konfiguration hinzu. Weitere Informationen findenSie unter Ausführen von CodeBuild in einem expliziten Proxy-Server (p. 200) und Syntax der Build-Spezifikation (p. 151).

version: 0.2proxy: upload-artifacts: yes logs: yesphases: build: commands:

Die Bourne-Shell (sh) muss in Build-Imagesvorhanden sein

Problem Sie verwenden ein Build-Image, das nicht von bereitgestellt wird. AWS CodeBuildund Ihre Buildsschlagen mit der Nachricht fehl Build container found dead before completing the build.

Mögliche Ursache Die Bourne-Schale (sh) ist nicht in Ihrem Build-Image enthalten. CodeBuild Bedürfnissesh um Build-Befehle und Skripts auszuführen.

Empfohlene Lösung. Wenn sh in nicht in Ihrem Build-Image vorhanden ist, stellen Sie sicher, dass Sie eseinschließen, bevor Sie weitere Builds starten, die Ihr Image verwenden. (CodeBuild enthält bereits sh inseinen Build-Images.)

API-Version 2016-10-06444

Page 452: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchWarnung "Überspringen der Installation von Laufzeiten.

Laufzeitversionsauswahl wird von diesem Build-Image nicht unterstützt" beim Ausführen eines Builds

Warnung "Überspringen der Installation vonLaufzeiten. Laufzeitversionsauswahl wird vondiesem Build-Image nicht unterstützt" beimAusführen eines Builds

Problem Wenn Sie einen Build ausführen, enthält das Build-Protokoll diese Warnung.

Mögliche Ursache Ihr Build verwendet nicht die Version 1.0 oder höher der Amazon Linux 2 (AL2)Standard-Image oder Version 2.0 oder höher des Ubuntu-Standard-Images und eine Laufzeit wird in einemruntime-versions Abschnitt in Ihrer Build-Spezifikationsdatei.

Empfohlene Lösung. Stellen Sie sicher, dass Ihre Build-Spezifikationsdatei keinen runtime-versionsAbschnitt. Der Abschnitt runtime-versions ist nur erforderlich, wenn Sie das Amazon Linux 2-(AL2)-Standardabbild oder höher oder das Ubuntu-Standardabbild, Version 2.0 oder höher, verwenden.

FehlerAUFBAU_BEHÄLTER_UNABLE_TO_PULL_IMAGE

Problem Beim Erstellen erhalten Sie eine Fehlermeldung ähnlich der folgenden:

BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE: Unable to pull customer's containerimage. CannotPullContainerError: a Windows version 10.0.17763-based image isincompatible with a 10.0.14393 host

Mögliche Ursachen Sie haben einen Windows Server 2016-Umgebungstyp ausgewählt(WINDOWS_CONTAINER), hat aber ein Windows Server 2019-Image ausgewählt.

Empfohlene Lösungen: Ändern Sie den Umgebungstyp in WINDOWS_SERVER_2019_CONTAINER.

Fehler "JobWorker-Identität kann nicht überprüftwerden" beim Öffnen des CodeBuild Konsole

Problem Wenn Sie die CodeBuild -Konsole wird die Fehlermeldung „JobWorker-Identität kann nichtüberprüft werden“ angezeigt.

Mögliche Ursache Die Schaltfläche IAM -Rolle, die für den Konsolenzugriff verwendet wird, hat ein Tag mitjobId als Schlüssel. Dieser Tag-Schlüssel ist reserviert für CodeBuild und verursacht diesen Fehler, wenner vorhanden ist.

Empfohlene Lösung. Ändern Sie alle benutzerdefinierten IAM Rollen-Tags, die den Schlüssel haben jobIdeinen anderen Schlüssel haben, wie z. B. jobIdentifier.

API-Version 2016-10-06445

Page 453: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBuild-Projekte

Kontingente für AWS CodeBuildIn der folgenden Tabelle sind die aktuellen Kontingente in AWS CodeBuild aufgeführt. Soweit nicht andersangegeben, gelten diese Kontingente für jede unterstützte AWS-Region für jedes AWS-Konto.

Build-ProjekteRessource Standard

Zulässige Zeichen in der Build-Projektbeschreibung Alle

Zulässige Zeichen in Build-Projektnamen Die Buchstaben A-Z und a-z, die Zahlen 0-9 unddie Sonderzeichen - und _

Länge des Build-Projektnamens 2 bis höchstens 255 Zeichen

Maximale Länge der Build-Projektbeschreibung 255 Zeichen

Maximale Anzahl Build-Projekte 5 000

Maximale Anzahl von Build-Projekten, über die Siemit den AWS CLI- oder AWS-SDKs Informationengleichzeitig anfordern können

100

Maximale Anzahl an Berichten, die Sie einemProjekt hinzufügen können

5

Maximale Anzahl von Tags, die Sie einem Build-Projekt zuordnen können

50

Anzahl der Minuten, die Sie in einem Build-Projektfür die Build-Zeitbeschränkung für alle zugehörigenBuilds angeben können

5 bis 480 (8 Stunden)

Anzahl der Sicherheitsgruppen, die Sie einer VPC-Konfiguration hinzufügen können

1 bis 5

Anzahl der Subnetze, die Sie einer VPC-Konfiguration hinzufügen können

1 bis 16

BuildsRessource Standard

Maximale Anzahl von Builds, zu denen Sie überdie AWS CLI oder AWS-SDKs Informationengleichzeitig abrufen können

100

Maximale Anzahl gleichzeitig ausgeführter Builds* 60

Maximale Zeit, die der Verlauf eines Buildsbeibehalten wird

1 Jahr

API-Version 2016-10-06446

Page 454: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchBerichte

Ressource Standard

Anzahl der Minuten, die Sie für die Build-Zeitbeschränkung für einen einzelnen Buildangeben können

5 bis 480 (8 Stunden)

* Kontingente für die maximale Anzahl gleichzeitig ausgeführter Builds, abhängig vomDatenverarbeitungstyp. Für einige Plattformen und Datenverarbeitungstypen lautet der Standardwert 20.Für ein neues Konto kann das Kontingent 1—5 betragen. Wenden Sie sich an den AWS Support, umein höheres Kontingent gleichzeitig ausgeführter Builds anzufordern, oder wenn Sie die Fehlermeldung„Cannot have more than X active builds for the account“ (Es können nicht mehr als X aktive Builds für dasKonto ausgeführt werden) erhalten.

BerichteRessource Standard

Maximale Dauer, für die ein Testbericht nach derErstellung verfügbar ist

30 Tage

Maximale Anzahl von Berichtsgruppen pro AWS-Konto

1000

Maximale Anzahl der Testfälle pro Bericht 500

TagsTag-Beschränkungen gelten für Tags für CodeBuild-Build-Projekt- und CodeBuild-Berichtsgruppenressourcen.

Ressource Standard

Maximale Anzahl der Tags, die Sie einerRessource zuordnen können

50. Tags unterscheiden zwischen Groß- undKleinschreibung.

Ressourcen-Tag-Schlüsselnamen Jede Kombination aus Unicode-Buchstaben,Zahlen, Leerzeichen und zulässigen UTF-8-Zeichen, die zwischen 1 und 127 Zeichenenthalten. Zulässige Zeichen sind + - = ._ : / @

Tag-Schlüsselnamen müssen eindeutig sein. JederSchlüssel darf nur einen Wert haben. Ein Tag-Schlüsselname darf nicht:

• mit aws: beginnen• nur aus Leerstellen bestehen• mit einem Leerzeichen enden• Emojis oder eines der folgenden Zeichen

enthalten: ? ^ * [ \ ~ ! # $ % & * ( )> < | " ' ` [ ] { } ;

API-Version 2016-10-06447

Page 455: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchTags

Ressource Standard

Ressourcen-Tag-Werte Jede Kombination aus Unicode-Buchstaben,Zahlen, Leerzeichen und zulässigen UTF-8-Zeichen, die zwischen 0 und 255 Zeichenenthalten. Zulässige Zeichen sind + - = ._ : / @

Ein Schlüssel darf nur einen Wert haben, vieleSchlüssel können aber dasselbe Tag aufweisen.Ein Tag-Schlüsselwert darf keine Emojis odereines der folgenden Zeichen enthalten: ? ^ *[ \ ~ ! # $ % & * ( ) > < | " ' ` [ ]{ } ;

API-Version 2016-10-06448

Page 456: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch1) Grundlegendes Docker-Image — windowsservercore

Hinweise von Drittanbietern für AWSCodeBuild für Windows

Wenn Sie CodeBuild für Windows-Builds verwenden, haben Sie die Möglichkeit, einige Pakete und Modulevon Drittanbietern zu verwenden, um Ihre erstellte Anwendung auf Microsoft Windows-Betriebssystemenlaufen zu lassen und mit einigen Produkten von Drittanbietern zu interagieren. Die folgende Liste enthältdie anwendbaren rechtlichen Bestimmungen von Drittanbietern, die Ihre Nutzung der angegebenen Paketeund Module von Drittanbietern regeln.

Themen• 1) Grundlegendes Docker-Image — windowsservercore (p. 449)• 2) Auf Windows basierendes Docker-Image — Choco (p. 450)• 3) Auf Windows basierendes Docker-Image — git --version 2.16.2 (p. 450)• 4) Auf Windows basierendes Docker-Image — microsoft-build-tools --version 15.0.26320.2 (p. 451)• 5) Auf Windows basierendes Docker-Image — nuget.commandline --Version 4.5.1 (p. 453)• 7) Auf Windows basierendes Docker-Image — netfx-4.6.2-devpack (p. 454)• 8) Auf Windows basierendes Docker-Image — visualfsharptools, v 4.0 (p. 455)• 9) Auf Windows basierendes Docker-Image — netfx-pcl-reference-assemblies-4.6 (p. 455)• 10) Auf Windows basierendes Docker-Image —visualcppbuildtools v 14.0.25420.1 (p. 458)• 11) Auf Windows basierendes Docker-Image — microsoft-windows-netfx3-ondemand-

package.cab (p. 460)• 12) Auf Windows basierendes Docker-Image — dotnet-sdk (p. 461)

1) Grundlegendes Docker-Image —windowsservercore

(Lizenzbedingungen finden Sie unter: https://hub.docker.com/r/microsoft/windowsservercore/)

License Durch die Anforderung und Nutzung dieses Container-Betriebssystem-Images für Windows-Container erkennen Sie die folgenden Ergänzenden Lizenzbestimmungen an, verstehen sie und stimmendiesen zu:

ZUSÄTZLICHE LIZENZBEDINGUNGEN FÜR MICROSOFT SOFTWARE

CONTAINER OS IMAGE

Microsoft Corporation (oder abhängig von Ihrem Wohnort eines ihrer Tochterunternehmen) (als „wir“ oder“Microsoft“ bezeichnet) lizenziert diese Container OS Image-Ergänzung für Sie („Ergänzung“). Sie erhaltendie Lizenz, diese Ergänzung in Verbindung mit der zugrunde liegenden Host-Betriebssystem-Software(„Host-Software“) ausschließlich zur Unterstützung der Ausführung der Container-Funktion in der Host-Software zu verwenden. Die Host-Software-Lizenzbedingungen gelten für Ihre Nutzung der Ergänzung.Sie dürfen sie nicht verwenden, wenn Sie keine Lizenz für die Host-Software besitzen. Sie dürfen dieseErgänzung mit jeder gültig lizenzierten Kopie der Host-Software verwenden.

ZUSÄTZLICHE LIZENZANFORDERUNGEN UND/ODER NUTZUNGSRECHTE.

API-Version 2016-10-06449

Page 457: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch2) Auf Windows basierendes Docker-Image — Choco

Ihre Nutzung der Ergänzung, wie im vorhergehenden Absatz beschrieben, kann zur Erstellung oderÄnderung eines Container-Images („Container-Image“) führen, das bestimmte Komponenten derErgänzung enthält. Der Deutlichkeit halber sei darauf hingewiesen, dass ein Container-Image separat voneinem Image für eine virtuelle Maschine oder eine virtuelle Appliance ist und sich davon unterscheidet.Gemäß diesen Lizenzbedingungen gewähren wir Ihnen ein eingeschränktes Recht, diese Komponentender Ergänzung unter den folgenden Bedingungen weiterzugeben:

(i) Sie dürfen die Komponenten der Ergänzung nur so verwenden, wie sie in Ihrem und als Teil IhresContainer-Images verwendet werden,

(ii) Sie dürfen solche Komponenten der Ergänzung in Ihrem Container-Image verwenden, solange Sieüber eine signifikante Primärfunktionalität in Ihrem Container-Image verfügen, die sich wesentlich von derErgänzung unterscheidet; und

(iii) Sie stimmen zu, diese Lizenzbedingungen (oder ähnliche Bedingungen, die von uns oder einem Hosterverlangt werden) in Ihr Container-Image aufzunehmen, um die mögliche Nutzung der Komponenten derErgänzung durch Ihre Endbenutzer ordnungsgemäß zu lizenzieren.

Wir behalten uns alle anderen Rechte vor, die hier nicht ausdrücklich gewährt werden.

Durch die Verwendung dieser Ergänzung akzeptieren Sie diese Bedingungen. Wenn Sie sie nichtakzeptieren, verwenden Sie diese Ergänzung nicht.

Als Teil der ergänzenden Lizenzbedingungen für dieses Container OS Image für Windows-Containerunterliegen Sie auch den zugrundeliegenden Lizenzbedingungen für Windows Server-Host-Software,bereitgestellt unter: https://www.microsoft.com/en-us/useterms.

2) Auf Windows basierendes Docker-Image —Choco

(Lizenzbedingungen finden Sie unter: https://github.com/chocolatey/chocolatey.org/blob/master/LICENSE.txt)

Copyright 2011 – Present RealDimensions Software, LLC

Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Dateien nur inÜbereinstimmung mit der Lizenz verwenden. Sie finden eine Kopie der Lizenz unter

http://www.apache.org/licenses/LICENSE-2.0

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, wird die unter der Lizenz vertriebeneSoftware auf einer „OHNE MÄNGELGEWÄHR“-BASIS, OHNE GARANTIEN ODER BEDINGUNGENJEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Informationen zu denlandesspezifischen Berechtigungen und Einschränkungen finden Sie in der Lizenz.

3) Auf Windows basierendes Docker-Image — git --version 2.16.2

(Lizenzbedingungen finden Sie unter: https://chocolatey.org/packages/git/2.16.2)

Lizenziert unter der GNU General Public License, Version 2, verfügbar unter: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html.

API-Version 2016-10-06450

Page 458: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch4) Auf Windows basierendes Docker-Image —microsoft-build-tools --version 15.0.26320.2

4) Auf Windows basierendes Docker-Image —microsoft-build-tools --version 15.0.26320.2

(Lizenzbedingungen finden Sie unter: https://www.visualstudio.com/license-terms/mt171552/)

MICROSOFT VISUAL STUDIO 2015 ERWEITERUNGEN, VISUAL STUDIO SHELLS und C++REDISTRIBUTABLE

-----

Diese Lizenzbedingungen sind eine Vereinbarung zwischen der Microsoft Corporation (oder abhängig vonIhrem Wohnort einer ihrer Tochtergesellschaften) und Ihnen. Sie gelten für die oben genannte Software.Die Bedingungen gelten auch für alle Microsoft-Dienste oder Updates für die Software, es sei denn, dieseenthalten zusätzliche Bedingungen.

-----

WENN SIE DIESE LIZENZBEDINGUNGEN EINHALTEN, HABEN SIE DIE FOLGENDEN RECHTE.

1. INSTALLATIONS- UND NUTZUNGSRECHTE. Sie dürfen beliebig viele Kopien der Software installierenund verwenden.

2. BEDINGUNGEN FÜR SPEZIFISCHE KOMPONENTEN.a. Dienstprogramme Die Software kann einige Elemente auf der Dienstprogrammliste enthalten unter

https://docs.microsoft.com/en-us/visualstudio/productinfo/2015-redistribution-vs. (z. B.. Sie sindberechtigt, diese Elemente, sofern sie in der Software enthalten sind, auf Ihren Computern oder aufanderen Computern von Drittanbietern zu kopieren und zu installieren, um Ihre Anwendungen undDatenbanken, die Sie mit der Software entwickelt haben, zu debuggen und bereitzustellen. Bittebeachten Sie, dass Dienstprogramme für den temporären Einsatz konzipiert sind, dass Microsoftmöglicherweise nicht in der Lage ist, Dienstprogramme getrennt von der restlichen Software zupatchen oder zu aktualisieren, und dass einige Dienstprogramme aufgrund ihrer Natur es anderenermöglichen können, auf Maschinen zuzugreifen, auf denen sie installiert sind. Daher sollten Siealle Dienstprogramme löschen, die Sie installiert haben, nachdem Sie das Debugging oder dieBereitstellung Ihrer Anwendungen und Datenbanken abgeschlossen haben. Microsoft ist nichtverantwortlich für die Nutzung von Dienstprogrammen, die Sie auf einem Computer installieren, oderden Zugriff auf diese, durch Dritte.

b. Microsoft-Plattformen. Die Software kann auch Komponenten von Microsoft Windows, MicrosoftWindows Server, Microsoft SQL Server, Microsoft Exchange, Microsoft Office und MicrosoftSharePoint enthalten. Diese Komponenten unterliegen separaten Vereinbarungen und eigenenProduktsupport-Richtlinien, wie sie in den Lizenzbedingungen im Installationsverzeichnis dieserKomponente oder im Ordner „Lizenzen“ der Software beschrieben sind.

c. Komponenten von Drittanbietern. Die Software kann Komponenten von Drittanbietern mit separatenRechtshinweisen enthalten oder durch andere Vereinbarungen geregelt sein, wie in der derSoftware beiliegenden ThirdPartyNotices-Datei beschrieben. Auch wenn diese Komponentendurch andere Vereinbarungen geregelt sind, gelten die nachstehenden Haftungsausschlüsse undSchadensbegrenzungen. Die Software kann auch Komponenten enthalten, die unter Open Source-Lizenzen mit Quellcode-Verfügbarkeitsverpflichtungen lizenziert sind. Kopiert dieser Lizenzen, fallszutreffend, sind in der ThirdPartyNotices-Datei enthalten. Sie können diesen Quellcode von unserhalten, wenn und wie unter den entsprechenden Open-Source-Lizenzen erforderlich, indem Sieeine Zahlungsanweisung oder einen Scheck für 5,00 USD an folgende Adresse senden: Quellcode-Compliance-Team, Microsoft Corporation, 1 Microsoft Way, Redmond, WA 98052. Bitte schreiben Sie„Quellcode“ für eine oder mehrere der unten aufgeführten Komponenten in der Belegposition IhrerZahlung:• Remote Tools for Visual Studio 2015;• Standalone Profiler for Visual Studio 2015;• IntelliTraceCollector for Visual Studio 2015;

API-Version 2016-10-06451

Page 459: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch4) Auf Windows basierendes Docker-Image —microsoft-build-tools --version 15.0.26320.2

• Microsoft VC++ Redistributable 2015;• Multibyte MFC Library for Visual Studio 2015;• Microsoft Build Tools 2015;• Feedback Client;• Visual Studio 2015 Integrated Shell; oder• Visual Studio 2015 Isolated Shell.

Wir können auch eine Kopie des Quellcodes zur Verfügung stellen unter http://thirdpartysource.microsoft.com.

3. DATA. Die Software kann Informationen über Sie und Ihre Nutzung der Software erfassen und anMicrosoft senden. Microsoft kann diese Informationen verwenden, um Dienstleistungen anzubieten undunsere Produkte und Dienstleistungen zu verbessern. Sie können viele dieser Szenarien ablehnen,aber nicht alle, wie in der Produktdokumentation beschrieben. Es gibt auch einige Funktionen inder Software, die es Ihnen ermöglichen, Daten von Benutzern Ihrer Anwendungen zu erfassen.Wenn Sie diese Funktionen nutzen, um eine Datenerfassung in Ihren Anwendungen zu ermöglichen,müssen Sie die geltenden Gesetze einhalten, einschließlich entsprechender Hinweise für die BenutzerIhrer Anwendungen. Weitere Informationen zur Datenerfassung und -verwendung finden Sie inder Hilfedokumentation und in der Datenschutzerklärung unter https://privacy.microsoft.com/en-us/privacystatement. Ihre Nutzung der Software gilt als Ihre Zustimmung zu diesen Praktiken.

4. LIZENZUMFANG. Die Software wird lizenziert, nicht verkauft. Diese Vereinbarung gibt Ihnen nurgewisse Rechte zur Nutzung der Software. Microsoft behält sich alle anderen Rechte vor. Soferndas geltende Recht Ihnen trotz dieser Einschränkung keine weiteren Rechte einräumt, dürfen Sie dieSoftware nur so nutzen, wie es in dieser Vereinbarung ausdrücklich erlaubt ist. Dabei müssen Sie alletechnischen Einschränkungen der Software beachten, die nur eine bestimmte Nutzung erlauben. Diefolgenden Dinge sind verboten:• technische Einschränkungen in der Software zu umgehen;• die Software zurückzuentwickeln, zu dekompilieren oder zu disassemblieren oder dies zu versuchen,

es sei denn und nur in dem Umfang, wie es die Lizenzbedingungen Dritter für die Verwendungbestimmter Open-Source-Komponenten, die in der Software enthalten sein können, erfordern;

• Hinweise von Microsoft oder seinen Lieferanten in der Software zu entfernen, zu minimieren, zublockieren oder zu ändern;

• die Software in einer Weise zu nutzen, die gegen das Gesetz verstößt; oder• die Software zu teilen, zu veröffentlichen, zu vermieten oder zu verpachten oder die Software als

eigenständige, gehostete Lösung für andere zur Verfügung zu stellen.5. EXPORTBESCHRÄNKUNGEN. Sie müssen alle nationalen und internationalen Exportgesetze

und -bestimmungen einhalten, die für die Software gelten, einschließlich der Beschränkungen fürBestimmungsorte, Endbenutzer und Endbenutzer. Weitere Informationen zu Exportbeschränkungenfinden Sie unter (aka.ms/exporting).

6. SUPPORT-SERVICES. Da dieser Software „ohne Mängelgewähr” ist, stellen wir möglicherweise keineSupport-Services dafür bereit.

7. GESAMTE VEREINBARUNG. Diese Vereinbarung und die Bedingungen für Ergänzungen,Aktualisierungen, internetbasierte Dienste und Supportleistungen, die Sie nutzen, sind die gesamteVereinbarung für die Software und Supportleistungen.

8. ANWENDBARES RECHT. Wenn Sie die Software in den Vereinigten Staaten erworben haben, gilt dasWashingtoner Recht für die Auslegung dieser Vereinbarung und für Ansprüche wegen Verletzung dieserVereinbarung, und die Gesetze des Staates, in dem Sie leben, gelten für alle anderen Ansprüche. WennSie die Software in einem anderen Land erworben haben, gelten dessen Gesetze.

9. VERBRAUCHERRECHTE; REGIONALE ABWEICHUNGEN. Diese Vereinbarung beschreibt bestimmtegesetzliche Rechte. Sie haben möglicherweise andere Rechte, einschließlich Verbraucherrechte,nach den Gesetzen Ihres Staates oder Landes. Abgesehen von Ihrer Beziehung zu Microsoft habenSie möglicherweise auch Rechte in Bezug auf die Partei, von der Sie die Software erworben haben.Diese Vereinbarung ändert diese anderen Rechte nicht, wenn die Gesetze Ihres Staates oder Landes

API-Version 2016-10-06452

Page 460: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch5) Auf Windows basierendes Docker-Image

— nuget.commandline --Version 4.5.1

dies nicht zulassen. Wenn Sie die Software beispielsweise in einer der unten aufgeführten Regionenerworben haben oder zwingendes Landesrecht gilt, gelten für Sie die folgenden Bestimmungen:a. Australien Sie haben gesetzliche Garantien nach dem australischen Verbrauchergesetz, und nichts in

dieser Vereinbarung ist darauf ausgelegt, diese Rechte zu beeinträchtigen.b. Kanada. Wenn Sie diese Software in Kanada erworben haben, können Sie den Erhalt von Updates

beenden, indem Sie die automatische Update-Funktion deaktivieren, Ihr Gerät vom Internet trennen(wenn Sie sich jedoch wieder mit dem Internet verbinden, wird die Software die Überprüfung undInstallation von Updates fortsetzen) oder die Software deinstallieren. In der Produktdokumentation,falls vorhanden, kann auch angegeben werden, wie Sie Updates für Ihr spezielles Gerät oder IhreSoftware deaktivieren können.

c. Deutschland und Österreich.i. Garantie. Die ordnungsgemäß lizenzierte Software funktioniert im Wesentlichen wie in allen

Unterlagen von Microsoft beschrieben, die der Software beiliegen. Microsoft gibt jedoch keinevertragliche Garantie in Bezug auf die lizenzierte Software.

ii. Haftungsbeschränkung. Bei Vorsatz, grober Fahrlässigkeit, Ansprüchen nach demProdukthaftungsgesetz sowie bei Verletzung des Lebens, des Körpers oder der Gesundheit haftetMicrosoft nach den gesetzlichen Bestimmungen; vorbehaltlich der vorstehenden Ziffer (ii) haftetMicrosoft für leichte Fahrlässigkeit nur, wenn Microsoft solche wesentlichen Vertragspflichtenverletzt, deren Erfüllung die ordnungsgemäße Durchführung des Vertrages überhaupt erstermöglicht, deren Verletzung den Vertragszweck gefährdet und auf deren Einhaltung einePartei regelmäßig vertrauen darf (sogenannte „Kardinalpflichten“). In anderen Fällen leichterFahrlässigkeit haftet Microsoft nicht für leichte Fahrlässigkeit.

10.GARANTIEAUSSCHLUSS. DIE SOFTWARE WIRD „OHNE MÄNGELGEWÄHR“ LIZENZIERT. SIETRAGEN DAS RISIKO IHRER NUTZUNG. MICROSOFT ERTEILT KEINE AUSDRÜCKLICHENGARANTIEN, GEWÄHRLEISTUNGEN ODER ZUSAGEN. SOWEIT DIES GEMÄSS IHREMLOKALEN GESETZ ZULÄSSIG IST, SCHLIESST MICROSOFT DIE STILLSCHWEIGENDENGEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTENZWECK UND DER NICHTVERLETZUNG AUS.

11.BESCHRÄNKUNG UND AUSSCHLUSS VON SCHÄDEN. VON MICROSOFT UNDWIEDERHERSTELLUNG SIE DIE LIEFERANTEN ONLY DIREKTER SCHÄDEN BIS ZU US-5,00USD. SIE KÖNNEN KEINE SONSTIGEN SCHÄDEN WIEDERHERGEBEN, EINSCHLIESSLICHFOLGESCHÄDEN, VERLORENEN GEWINN, BESONDEREN, INDIREKTEN ODER ZUFÄLLIGENSCHÄDEN. Diese Einschränkung gilt für (a) alles, was mit der Software, Dienstleistungen, Inhalten(einschließlich Code) auf Internetseiten Dritter oder Anwendungen Dritter zusammenhängt; und (b)Ansprüche wegen Vertragsverletzung, Verletzung von Gewährleistung, Garantie oder Beschaffenheit,verschuldensunabhängiger Haftung, Fahrlässigkeit oder sonstiger unerlaubter Handlung, soweit diesnach geltendem Recht zulässig ist.

Sie gilt auch dann, wenn Microsoft von der Möglichkeit des Schadens wusste oder hätte wissen müssen.Die obige Einschränkung oder der Ausschluss gelten möglicherweise nicht für Sie, da Ihr Land denAusschluss oder die Beschränkung von Neben-, Folge- oder anderen Schäden nicht zulässt.

Endbenutzer-Lizenzvereinbarungs-ID: VS2015_Aktualisierung3_ShellsRedist_<ENU>

5) Auf Windows basierendes Docker-Image —nuget.commandline --Version 4.5.1

(Lizenzbedingungen finden Sie unter: https://github.com/NuGet/Home/blob/dev/LICENSE.txt)

Copyright (c) .NET Foundation. Alle Rechte vorbehalten.

Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Dateien nur inÜbereinstimmung mit der Lizenz verwenden. Sie finden eine Kopie der Lizenz unter

API-Version 2016-10-06453

Page 461: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch7) Auf Windows basierendes Docker-

Image — netfx-4.6.2-devpack

http://www.apache.org/licenses/LICENSE-2.0

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, wird die unter der Lizenz vertriebeneSoftware auf einer „OHNE MÄNGELGEWÄHR“-BASIS, OHNE GARANTIEN ODER BEDINGUNGENJEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Informationen zu denlandesspezifischen Berechtigungen und Einschränkungen finden Sie in der Lizenz.

7) Auf Windows basierendes Docker-Image —netfx-4.6.2-devpack

ZUSÄTZLICHE LIZENZBEDINGUNGEN FÜR MICROSOFT SOFTWARE

.NET FRAMEWORK UND BEGLEITENDE LANGUAGE PACKS FÜR DAS BETRIEBSSYSTEMMICROSOFT WINDOWS

-----

Die Microsoft Corporation (oder abhängig von Ihrem Wohnort: eine ihrer Tochtergesellschaften) lizenziertdiese Ergänzung an Sie. Wenn Sie eine Lizenz zur Verwendung von Microsoft Windows-Betriebssystem-Software (die „Software“) besitzen, können Sie diese Ergänzung verwenden. Sie dürfen sie nichtverwenden, wenn Sie keine Lizenz für die Software besitzen. Sie dürfen diese Ergänzung mit jeder gültiglizenzierten Kopie der Software verwenden.

Die folgenden Lizenzbedingungen beschreiben zusätzliche Nutzungsbedingungen für diese Ergänzung.Diese Bedingungen und die Lizenzbedingungen für die Software gelten für Ihre Nutzung der Ergänzung.Wenn ein Konflikt besteht, gelten diese zusätzlichen Lizenzbedingungen.

DURCH DIE NUTZUNG DIESES ERGÄNZES AKZEPTIEREN SIE DIESE BEDINGUNGEN. WENN SIEDIESE NICHT AKZEPTIEREN, VERWENDEN SIE DIESES ERGÄNZUNGSERGÄNZUNG NICHT.

-----

Wenn Sie diese Lizenzbedingungen einhalten, haben Sie die folgenden Rechte.

1. WEITERGABEFÄHIGER CODE. Die Ergänzung besteht aus dem ausschüttbaren Code.„Weitergabefähiger Code“ ist Code, den Sie in von Ihnen entwickelten Programmen verbreiten dürfen,wenn Sie die folgenden Bedingungen einhalten.a. Recht zur Nutzung und Weitergabe.

• Sie dürfen die Objektcode-Form der Ergänzung kopieren und verteilen.• Weitergabe durch Dritte. Sie können Händlern Ihrer Programme erlauben, den weitergabefähigen

Code als Teil dieser Programme zu kopieren und zu verteilen.b. Vertriebsanforderungen. Für jeden vertreibbaren Code, den Sie verteilen, müssen Sie

• Sie müssen diesem in Ihren Programmen wichtige Primärfunktionen hinzufügen;• für jeden weitergabefähigen Code mit der Dateinamenerweiterung .lib, geben Sie nur die

Ergebnisse der Ausführung dieses weitergabefähigen Codes über einen Linker mit IhremProgramm weiter;

• geben Sie weitergabefähigen Code, der in einem Setup-Programm enthalten ist, nur als Teil diesesSetup-Programms ohne Änderungen weiter;

• verlangen Sie von Händlern und externen Endverbrauchern, dass sie sich mit Bedingungeneinverstanden erklären, die ihn mindestens genauso gut schützen wie diese Vereinbarung;

• zeigen Ihren gültigen Copyright-Vermerk auf Ihren Programmen an; und• halten Sie Microsoft von jeglichen Ansprüchen frei, einschließlich Anwaltskosten, die mit dem

Vertrieb oder der Nutzung Ihrer Programme zusammenhängen, verteidigen Sie es und halten Siees schadlos.

API-Version 2016-10-06454

Page 462: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch8) Auf Windows basierendes Docker-

Image — visualfsharptools, v 4.0

c. Verteilungsbeschränkungen. Sie dürfen nicht• Urheberrechts-, Marken- oder Patenthinweise im weitergabefähigen Code zu ändern;• Marken von Microsoft in den Namen Ihrer Programme oder in einer Weise zu verwenden, die

darauf hindeutet, dass Ihre Programme von Microsoft stammen oder von Microsoft unterstütztwerden;

• weitergabefähigen Code weiterzugeben, der auf einer anderen Plattform als der Windows-Plattformausgeführt wird;

• weitergabefähigen Code in bösartige, irreführende oder rechtswidrige Programme einzubinden;oder

• den Quellcode des weitergabefähigen Codes so zu verändern oder weiterzugeben, dass irgendeinTeil davon unter den Bestimmungen einer Ausschlusslizenz unterworfen ist. Eine Ausschlusslizenzist eine Lizenz, die als Bedingung für die Nutzung, Änderung oder Weitergabe fordert,• dass der Code im Quellformat offen gelegt oder weitergegeben wird; oder• andere haben das Recht, ihn zu modifizieren.

2. SUPPORT-SERVICES FÜR DIE ERGÄNZUNG. Microsoft bietet Support-Services für diese Softwarean, wie unter www.support.microsoft.com/common/international.aspx beschrieben.

8) Auf Windows basierendes Docker-Image —visualfsharptools, v 4.0

(Lizenzbedingungen verfügbar unter: https://github.com/dotnet/fsharp/blob/main/License.txt)

Copyright (c) Microsoft Corporation Alle Rechte vorbehalten.

Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Dateien nur inÜbereinstimmung mit der Lizenz verwenden. Sie finden eine Kopie der Lizenz unter

http://www.apache.org/licenses/LICENSE-2.0

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, wird die unter der Lizenz vertriebeneSoftware auf einer „OHNE MÄNGELGEWÄHR“-BASIS, OHNE GARANTIEN ODER BEDINGUNGENJEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Informationen zu denlandesspezifischen Berechtigungen und Einschränkungen finden Sie in der Lizenz.

9) Auf Windows basierendes Docker-Image —netfx-pcl-reference-assemblies-4.6

LIZENZBEDINGUNGEN FÜR MICROSOFT SOFTWARE

MICROSOFT .NET PORTABLE CLASS LIBRARY REFERENCE ASSEMBLIES – 4.6

-----

Diese Lizenzbedingungen sind eine Vereinbarung zwischen der Microsoft Corporation (oder abhängig vonIhrem Wohnort einer ihrer Tochtergesellschaften) und Ihnen. Bitte lesen. Sie gelten für die oben genannteSoftware. Die Bedingungen gelten auch für alle Microsoft

• Aktualisierungen,• Ergänzungen,

API-Version 2016-10-06455

Page 463: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch9) Auf Windows basierendes Docker-

Image — netfx-pcl-reference-assemblies-4.6

• Internet-basierte Services und• Support-Services

für diese Software, es sei denn, andere Bedingungen begleiten dieser Elemente. Wenn dies der Fall ist,sind diese Bedingungen anzuwenden.

DURCH DIE VERWENDUNG DER SOFTWARE AKZEPTIEREN SIE DIESE BEDINGUNGEN. WENN SIEDIESE NICHT AKZEPTIEREN, VERWENDEN SIE DIE SOFTWARE NICHT.

-----

WENN SIE DIESE LIZENZBEDINGUNGEN EINHALTEN, HABEN SIE DIE FOLGENDENUNBEFRISTETEN RECHTE.

1. INSTALLATIONS- UND NUTZUNGSRECHTE. Sie dürfen beliebig viele Kopien der Software installierenund verwenden, um Ihre Programme zu entwerfen, zu entwickeln und zu testen.

2. ZUSÄTZLICHE LIZENZANFORDERUNGEN UND/ODER NUTZUNGSRECHTE.a. Weitergabefähiger Code. Sie dürfen die Software in von Ihnen entwickelten Entwickler-Tool-

Programmen weitergeben, um Kunden Ihrer Programme zu ermöglichen, portable Bibliotheken zurVerwendung mit jedem Gerät oder Betriebssystem zu entwickeln, wenn Sie die nachstehendenBedingungen einhalten.i. Recht zur Nutzung und Weitergabe. Die Software ist "verteilbarer Code".

• Weitergabefähiger Code. Sie dürfen die Objektcode-Form der Software kopieren und verteilen.• Weitergabe durch Dritte. Sie können Händlern Ihrer Programme erlauben, den

weitergabefähigen Code als Teil dieser Programme zu kopieren und zu verteilen.ii. Vertriebsanforderungen. Für jeden vertreibbaren Code, den Sie verteilen, müssen Sie

• Sie müssen diesem in Ihren Programmen wichtige Primärfunktionen hinzufügen;• verlangen Sie von Händlern und Ihren Kunden, dass sie sich mit Bedingungen einverstanden

erklären, die ihn mindestens genauso gut schützen wie diese Vereinbarung;• zeigen Ihren gültigen Copyright-Vermerk auf Ihren Programmen an; und• halten Sie Microsoft von jeglichen Ansprüchen frei, einschließlich Anwaltskosten, die mit dem

Vertrieb oder der Nutzung Ihrer Programme zusammenhängen, verteidigen Sie es und halten Siees schadlos.

iii. Verteilungsbeschränkungen. Sie dürfen nicht• Urheberrechts-, Marken- oder Patenthinweise im weitergabefähigen Code zu ändern;• Marken von Microsoft in den Namen Ihrer Programme oder in einer Weise zu verwenden, die

darauf hindeutet, dass Ihre Programme von Microsoft stammen oder von Microsoft unterstütztwerden;

• weitergabefähigen Code in bösartige, irreführende oder rechtswidrige Programme einzubinden;oder

• den weitergabefähigen Code so zu verändern oder weiterzugeben, dass irgendein Teil davonunter den Bestimmungen einer Ausschlusslizenz unterworfen ist. Eine Ausschlusslizenz ist eineLizenz, die als Bedingung für die Nutzung, Änderung oder Weitergabe fordert,• dass der Code im Quellformat offen gelegt oder weitergegeben wird; oder• andere haben das Recht, ihn zu modifizieren.

3. LIZENZUMFANG. Die Software wird lizenziert, nicht verkauft. Diese Vereinbarung gibt Ihnen nurgewisse Rechte zur Nutzung der Software. Microsoft behält sich alle anderen Rechte vor. Soferndas geltende Recht Ihnen trotz dieser Einschränkung keine weiteren Rechte einräumt, dürfen Sie dieSoftware nur so nutzen, wie es in dieser Vereinbarung ausdrücklich erlaubt ist. Dabei müssen Sie alletechnischen Einschränkungen der Software beachten, die nur eine bestimmte Nutzung erlauben. Diefolgenden Dinge sind verboten:• technische Einschränkungen in der Software zu umgehen;

API-Version 2016-10-06456

Page 464: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch9) Auf Windows basierendes Docker-

Image — netfx-pcl-reference-assemblies-4.6

• die Software zurückzuentwickeln, zu dekompilieren oder zu disassemblieren, es sei denn, dasgeltende Recht erlaubt dies trotz dieser Einschränkung ausdrücklich;

• die Software zu veröffentlichen, sodass andere sie kopieren können; oder• die Software vermieten, verpachten oder verleihen.

4. FEEDBACK. Sie können Feedback über die Software abgeben. Wenn Sie Microsoft Feedback über dieSoftware geben, erteilen Sie Microsoft kostenlos das Recht, Ihr Feedback in jedweder Weise und fürjeden Zweck zu nutzen, weiterzugeben und zu vermarkten. Sie erteilen auch Dritten unentgeltlich allePatentrechte, die für ihre Produkte, Technologien und Dienstleistungen erforderlich sind, um bestimmteTeile einer Microsoft-Software oder eines Microsoft-Dienstes, die das Feedback enthalten, zu nutzenoder mit diesen zu verbinden. Sie geben kein Feedback, das einer Lizenz unterliegt, die von Microsoftverlangt, seine Software oder Dokumentation an Dritte zu lizenzieren, wenn wir Ihr Feedback darinaufnehmen. Diese Rechte überdauern diese Vereinbarung.

5. ÜBERTRAGUNG AN EINEN DRITTEN. Der erste Nutzer der Software darf diese und dieseVereinbarung direkt an einen Dritten übertragen. Vor der Übertragung muss diese Partei zustimmen,dass diese Vereinbarung für die Übertragung und Nutzung der Software gilt. Der erste Benutzer mussdie Software deinstallieren, bevor er sie getrennt vom Gerät übertragen darf. Der erste Benutzer darfkeine Kopien zurückbehalten.

6. EXPORTBESCHRÄNKUNGEN. Die Software unterliegt den Exportgesetzen und -regelungen der USA.Sie müssen alle inländischen und internationalen Exportgesetze und -vorschriften einhalten, die fürdie Software gelten. Zu diesen Gesetzen gehören Einschränkungen im Hinblick auf Bestimmungsorte,Endbenutzer und Endnutzung. Weitere Informationen finden Sie unter www.microsoft.com/exporting.

7. SUPPORT-SERVICES. Da dieser Software „ohne Mängelgewähr” ist, stellen wir möglicherweise keineSupport-Services dafür bereit.

8. GESAMTE VEREINBARUNG. Diese Vereinbarung und die Bedingungen für Ergänzungen,Aktualisierungen, internetbasierte Dienste und Supportleistungen, die Sie nutzen, sind die gesamteVereinbarung für die Software und Supportleistungen, die wir bieten.

9. ANWENDBARES RECHT.a. Vereinigte Staaten. Wenn Sie die Software in den Vereinigten Staaten erworben haben, regelt das

Recht des Bundesstaates Washington die Auslegung dieser Vereinbarung und gilt für Ansprüchewegen Verletzung dieser Vereinbarung, ungeachtet von Konflikten der Gesetzesgrundlagen. DieGesetze des Staates, in dem Sie leben, regeln alle anderen Ansprüche, einschließlich der Ansprücheaus staatlichen Verbraucherschutzgesetzen, Gesetzen des unlauteren Wettbewerbs und ausunerlaubter Handlung.

b. Außerhalb der Vereinigten Staaten. Wenn Sie die Software in einem anderen Land erworben haben,gelten dessen Gesetze.

10.ANWENDUNG VON GESETZEN. Diese Vereinbarung beschreibt bestimmte gesetzliche Rechte.Möglicherweise haben Sie anderen Rechte gemäß den Gesetzen Ihres Landes. Sie habenmöglicherweise auch Rechte gegenüber der Partei, von der Sie die Software erworben haben. DieseVereinbarung ändert Ihre Rechte unter den Gesetzen Ihres Landes nicht, wenn die Gesetze IhresStaates oder Landes dies nicht zulassen.

11.GARANTIEAUSSCHLUSS. DIE SOFTWARE WIRD „OHNE MÄNGELGEWÄHR“ LIZENZIERT. SIETRAGEN DAS RISIKO IHRER NUTZUNG. MICROSOFT ERTEILT KEINE AUSDRÜCKLICHENGARANTIEN, GEWÄHRLEISTUNGEN ODER ZUSAGEN. SIE HABEN MÖGLICHERWEISEZUSÄTZLICHE VERBRAUCHERRECHTE ODER GESETZLICHE GARANTIEN NACH IHRENLOKALEN GESETZEN, DIE DURCH DIESE VEREINBARUNG NICHT GEÄNDERT WERDENKÖNNEN. SOWEIT DIES GEMÄSS IHREM LOKALEN GESETZ ZULÄSSIG IST, SCHLIESSTMICROSOFT DIE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, DEREIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG AUS.

FÜR AUSTRALIEN—SIE HABEN GESETZLICHE GARANTIEN GEMÄSS DEM AUSTRALISCHENVERBRAUCHERRECHT UND NICHTS IN DIESEN BEDINGUNGEN IST DAZU VORGESEHEN, DIESERECHTE ZU BEEINFLUSSEN.

12.BESCHRÄNKUNG UND AUSSCHLUSS VON RECHTSMITTELN UND SCHÄDEN. VON MICROSOFTUND WIEDERHERSTELLUNG SIE DIE LIEFERANTEN ONLY DIREKTER SCHÄDEN BIS ZU US-5,00

API-Version 2016-10-06457

Page 465: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch10) Auf Windows basierendes Docker-

Image —visualcppbuildtools v 14.0.25420.1

USD. SIE KÖNNEN KEINE SONSTIGEN SCHÄDEN WIEDERHERGEBEN, EINSCHLIESSLICHFOLGESCHÄDEN, VERLORENEN GEWINN, BESONDEREN, INDIREKTEN ODER ZUFÄLLIGENSCHÄDEN.

Diese Einschränkung gilt für• alles im Zusammenhang mit der Software, Services, Inhalten (einschließlich Code) auf Internetseiten

von Dritten oder Programmen von Dritten; und• Ansprüche aus Vertragsbruch, Verstoß gegen Garantie, Gewährleistung oder Bedingungen,

Gefährdungshaftung, Fahrlässigkeit oder andere deliktische Handlungen, soweit dies gemäßgeltendem Recht gestattet ist.

Sie gilt auch dann, wenn Microsoft von der Möglichkeit des Schadens wusste oder hätte wissen müssen.Die obige Einschränkung oder der Ausschluss gelten möglicherweise nicht für Sie, da Ihr Land denAusschluss oder die Beschränkung von Neben-, Folge- oder anderen Schäden nicht zulässt.

10) Auf Windows basierendes Docker-Image —visualcppbuildtools v 14.0.25420.1

(Lizenzbedingungen finden Sie unter: https://www.visualstudio.com/license-terms/mt644918/)

MICROSOFT VISUAL C++ BUILD TOOLS

LIZENZBEDINGUNGEN FÜR MICROSOFT SOFTWARE

MICROSOFT VISUAL C++ BUILD TOOLS

-----

Diese Lizenzbedingungen sind eine Vereinbarung zwischen der Microsoft Corporation (oder abhängig vonIhrem Wohnort einer ihrer Tochtergesellschaften) und Ihnen. Sie gelten für die oben genannte Software.Die Bedingungen gelten auch für alle Microsoft-Dienste oder Updates für die Software, es sei denn, dieseenthalten andere Bedingungen.

-----

WENN SIE DIESE LIZENZBEDINGUNGEN EINHALTEN, HABEN SIE DIE FOLGENDEN RECHTE.

1. INSTALLATIONS- UND NUTZUNGSRECHTE.a. Ein Benutzer darf Kopien der Software verwenden, um seine Anwendungen entwickeln und testen.

2. DATA. Die Software kann Informationen über Sie und Ihre Nutzung der Software erfassen und anMicrosoft senden. Microsoft kann diese Informationen verwenden, um Dienstleistungen anzubieten undunsere Produkte und Dienstleistungen zu verbessern. Sie können viele dieser Szenarien ablehnen,aber nicht alle, wie in der Produktdokumentation beschrieben. Es gibt auch einige Funktionen in derSoftware, die es Ihnen ermöglichen, Daten von Benutzern Ihrer Anwendungen zu erfassen. Wenn Siediese Funktionen nutzen, um eine Datenerfassung in Ihren Anwendungen zu ermöglichen, müssenSie die geltenden Gesetze einhalten, einschließlich entsprechender Hinweise für die Benutzer IhrerAnwendungen. Weitere Informationen zur Datenerfassung und -verwendung finden Sie in der Hilfe-Dokumentation und in der Datenschutzerklärung unter http://go.microsoft.com/fwlink/?LinkID=528096.Ihre Nutzung der Software gilt als Ihre Zustimmung zu diesen Praktiken.

3. BEDINGUNGEN FÜR SPEZIFISCHE KOMPONENTEN.a. Build Server. Die Software kann Build Server-Komponenten enthalten, die in BuildServer.TXT-

Dateien aufgelistet sind, und/oder alle Dateien, die in der BuildeServer-Liste nach diesen Microsoft-Software-Lizenzbedingungen aufgeführt sind. Sie dürfen diese Elemente, sofern sie in der Softwareenthalten sind, auf Ihre Build-Maschinen kopieren und installieren. Sie und andere in IhremUnternehmen dürfen diese Elemente auf Ihren Build-Maschinen ausschließlich zum Kompilieren,

API-Version 2016-10-06458

Page 466: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch10) Auf Windows basierendes Docker-

Image —visualcppbuildtools v 14.0.25420.1

Erstellen, Verifizieren und Archivieren Ihrer Anwendungen oder zum Ausführen von Qualitäts- oderLeistungstests als Teil des Build-Prozesses verwenden.

b. Microsoft-Plattformen. Die Software kann auch Komponenten von Microsoft Windows, MicrosoftWindows Server, Microsoft SQL Server, Microsoft Exchange, Microsoft Office und MicrosoftSharePoint enthalten. Diese Komponenten unterliegen separaten Vereinbarungen und eigenenProduktsupport-Richtlinien, wie sie in den Lizenzbedingungen im Installationsverzeichnis dieserKomponente oder im Ordner „Lizenzen“ der Software beschrieben sind.

c. Komponenten von Drittanbietern. Die Software kann Komponenten von Drittanbietern mit separatenRechtshinweisen enthalten oder durch andere Vereinbarungen geregelt sein, wie in der derSoftware beiliegenden ThirdPartyNotices-Datei beschrieben. Auch wenn diese Komponentendurch andere Vereinbarungen geregelt sind, gelten die nachstehenden Haftungsausschlüsse undSchadensbegrenzungen.

d. Package Manager. Die Software kann Package Manager wie Nuget enthalten, die Ihnen dieMöglichkeit geben, andere Softwarepakete von Microsoft und Drittanbietern zur Verwendungmit Ihrer Anwendung herunterzuladen. Diese Pakete unterliegen ihrer eigenen Lizenz und nichtdieser Vereinbarung. Microsoft vertreibt, lizenziert oder gibt keine Garantien für die Pakete vonDrittanbietern.

4. LIZENZUMFANG. Die Software wird lizenziert, nicht verkauft. Diese Vereinbarung gibt Ihnen nurgewisse Rechte zur Nutzung der Software. Microsoft behält sich alle anderen Rechte vor. Soferndas geltende Recht Ihnen trotz dieser Einschränkung keine weiteren Rechte einräumt, dürfen Sie dieSoftware nur so nutzen, wie es in dieser Vereinbarung ausdrücklich erlaubt ist. Dabei müssen Siealle technischen Einschränkungen der Software beachten, die nur eine bestimmte Nutzung erlauben.Weitere Informationen finden Sie unter https://docs.microsoft.com/en-us/legal/information-protection/software-license-terms#1-installation-and-use-rights. Die folgenden Dinge sind verboten:• technische Einschränkungen in der Software zu umgehen;• die Software zurückzuentwickeln, zu dekompilieren oder zu disassemblieren oder dies zu versuchen,

es sei denn und nur in dem Umfang, wie es die Lizenzbedingungen Dritter für die Verwendungbestimmter Open-Source-Komponenten, die in der Software enthalten sein können, erfordern;

• Hinweise von Microsoft oder seinen Lieferanten zu entfernen, zu minimieren, zu blockieren oder zuändern;

• die Software in einer Weise zu nutzen, die gegen das Gesetz verstößt; oder• die Software zu teilen, zu veröffentlichen, zu vermieten oder zu verpachten oder die Software als

eigenständige, gehostete Lösung für andere zur Verfügung zu stellen.5. EXPORTBESCHRÄNKUNGEN. Sie müssen alle nationalen und internationalen Exportgesetze

und -bestimmungen einhalten, die für die Software gelten, einschließlich der Beschränkungen fürBestimmungsorte, Endbenutzer und Endbenutzer. Weitere Informationen zu Exportbeschränkungenfinden Sie unter (aka.ms/exporting).

6. SUPPORT-SERVICES. Da dieser Software „ohne Mängelgewähr” ist, stellen wir möglicherweise keineSupport-Services dafür bereit.

7. GESAMTE VEREINBARUNG. Diese Vereinbarung und die Bedingungen für Ergänzungen,Aktualisierungen, internetbasierte Dienste und Supportleistungen, die Sie nutzen, sind die gesamteVereinbarung für die Software und Supportleistungen.

8. ANWENDBARES RECHT. Wenn Sie die Software in den Vereinigten Staaten erworben haben, gilt dasWashingtoner Recht für die Auslegung dieser Vereinbarung und für Ansprüche wegen Verletzung dieserVereinbarung, und die Gesetze des Staates, in dem Sie leben, gelten für alle anderen Ansprüche. WennSie die Software in einem anderen Land erworben haben, gelten dessen Gesetze.

9. VERBRAUCHERRECHTE; REGIONALE ABWEICHUNGEN. Diese Vereinbarung beschreibt bestimmtegesetzliche Rechte. Sie haben möglicherweise andere Rechte, einschließlich Verbraucherrechte,nach den Gesetzen Ihres Staates oder Landes. Abgesehen von Ihrer Beziehung zu Microsoft habenSie möglicherweise auch Rechte in Bezug auf die Partei, von der Sie die Software erworben haben.Diese Vereinbarung ändert diese anderen Rechte nicht, wenn die Gesetze Ihres Staates oder Landesdies nicht zulassen. Wenn Sie die Software beispielsweise in einer der unten aufgeführten Regionenerworben haben oder zwingendes Landesrecht gilt, gelten für Sie die folgenden Bestimmungen:

API-Version 2016-10-06459

Page 467: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch11) Auf Windows basierendes Docker-Image —

microsoft-windows-netfx3-ondemand-package.cab

• Australien Sie haben gesetzliche Garantien nach dem australischen Verbrauchergesetz, und nichts indieser Vereinbarung ist darauf ausgelegt, diese Rechte zu beeinträchtigen.

• Kanada. Wenn Sie diese Software in Kanada erworben haben, können Sie den Erhalt von Updatesbeenden, indem Sie die automatische Update-Funktion deaktivieren, Ihr Gerät vom Internet trennen(wenn Sie sich jedoch wieder mit dem Internet verbinden, wird die Software die Überprüfung undInstallation von Updates fortsetzen) oder die Software deinstallieren. In der Produktdokumentation,falls vorhanden, kann auch angegeben werden, wie Sie Updates für Ihr spezielles Gerät oder IhreSoftware deaktivieren können.

• Deutschland und Österreich.• Garantie. Die ordnungsgemäß lizenzierte Software funktioniert im Wesentlichen wie in allen

Unterlagen von Microsoft beschrieben, die der Software beiliegen. Microsoft gibt jedoch keinevertragliche Garantie in Bezug auf die lizenzierte Software.

• Haftungsbeschränkung. Bei Vorsatz, grober Fahrlässigkeit, Ansprüchen nach demProdukthaftungsgesetz sowie bei Verletzung des Lebens, des Körpers oder der Gesundheit haftetMicrosoft nach den gesetzlichen Bestimmungen.

Gemäß der vorstehenden Ziffer (ii) haftet Microsoft für leichte Fahrlässigkeit nur, wenn Microsoftgegen solche wesentlichen Vertragspflichten verstößt, deren Erfüllung die ordnungsgemäßeDurchführung dieses Vertrages erleichtert, deren Verletzung den Zweck dieses Vertrages gefährdetund auf deren Einhaltung eine Partei ständig vertrauen darf (sogenannte „Kardinalpflichten“). Inanderen Fällen leichter Fahrlässigkeit haftet Microsoft nicht für leichte Fahrlässigkeit.

10.ANWENDUNG VON GESETZEN. Diese Vereinbarung beschreibt bestimmte gesetzliche Rechte.Möglicherweise haben Sie anderen Rechte gemäß den Gesetzen Ihres Landes. Diese Vereinbarungändert Ihre Rechte unter den Gesetzen Ihres Landes nicht, wenn die Gesetze Ihres Staates oderLandes dies nicht zulassen. Ohne Einschränkung der obigen Aussagen gilt für Australien: SIE HABENGESETZLICHE GARANTIEN NACH DEM AUSTRALISCHEN VERBRAUCHERRECHT UND NICHTS INDIESEN BEDINGUNGEN IST DARAUF AUSGELEGT, DIESE RECHTE ZU BEEINTRÄCHTIGEN.

11.GARANTIEAUSSCHLUSS. DIE SOFTWARE WIRD „OHNE MÄNGELGEWÄHR“ LIZENZIERT. SIETRAGEN DAS RISIKO IHRER NUTZUNG. MICROSOFT ERTEILT KEINE AUSDRÜCKLICHENGARANTIEN, GEWÄHRLEISTUNGEN ODER ZUSAGEN. SOWEIT DIES GEMÄSS IHREMLOKALEN GESETZ ZULÄSSIG IST, SCHLIESST MICROSOFT DIE STILLSCHWEIGENDENGEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTENZWECK UND DER NICHTVERLETZUNG AUS.

12.BESCHRÄNKUNG UND AUSSCHLUSS VON SCHÄDEN. VON MICROSOFT UNDWIEDERHERSTELLUNG SIE DIE LIEFERANTEN ONLY DIREKTER SCHÄDEN BIS ZU US-5,00USD. SIE KÖNNEN KEINE SONSTIGEN SCHÄDEN WIEDERHERGEBEN, EINSCHLIESSLICHFOLGESCHÄDEN, VERLORENEN GEWINN, BESONDEREN, INDIREKTEN ODER ZUFÄLLIGENSCHÄDEN.

Diese Einschränkung gilt für (a) alles, was mit der Software, Dienstleistungen, Inhalten (einschließlichCode) auf Internetseiten Dritter oder Anwendungen Dritter zusammenhängt; und (b) Ansprüchewegen Vertragsverletzung, Verletzung von Gewährleistung, Garantie oder Beschaffenheit,verschuldensunabhängiger Haftung, Fahrlässigkeit oder sonstiger unerlaubter Handlung, soweit diesnach geltendem Recht zulässig ist.

Sie gilt auch dann, wenn Microsoft von der Möglichkeit des Schadens wusste oder hätte wissen müssen.Die obige Einschränkung oder der Ausschluss gelten möglicherweise nicht für Sie, da Ihr Land denAusschluss oder die Beschränkung von Neben-, Folge- oder anderen Schäden nicht zulässt.

11) Auf Windows basierendes Docker-Image —microsoft-windows-netfx3-ondemand-package.cab

ZUSÄTZLICHE LIZENZBEDINGUNGEN FÜR MICROSOFT SOFTWARE

API-Version 2016-10-06460

Page 468: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch12) Auf Windows basierendes Docker-Image — dotnet-sdk

MICROSOFT .NET FRAMEWORK 3.5 SP1 FÜR DAS BETRIEBSSYSTEM MICROSOFT WINDOWS

-----

Die Microsoft Corporation (oder abhängig von Ihrem Wohnort: eine ihrer Tochtergesellschaften) lizenziertdiese Ergänzung an Sie. Wenn Sie eine Lizenz zur Verwendung von Microsoft Windows-Betriebssystem-Software (für die diese Ergänzung anwendbar ist) (die „Software“) besitzen, können Sie diese Ergänzungverwenden. Sie dürfen sie nicht verwenden, wenn Sie keine Lizenz für die Software besitzen. Sie dürfeneine Kopie dieser Ergänzung mit jeder gültig lizenzierten Kopie der Software verwenden.

Die folgenden Lizenzbedingungen beschreiben zusätzliche Nutzungsbedingungen für diese Ergänzung.Diese Bedingungen und die Lizenzbedingungen für die Software gelten für Ihre Nutzung der Ergänzung.Wenn ein Konflikt besteht, gelten diese zusätzlichen Lizenzbedingungen.

DURCH DIE NUTZUNG DIESES ERGÄNZES AKZEPTIEREN SIE DIESE BEDINGUNGEN. WENN SIEDIESE NICHT AKZEPTIEREN, VERWENDEN SIE DIESES ERGÄNZUNGSERGÄNZUNG NICHT.

-----

Wenn Sie diese Lizenzbedingungen einhalten, haben Sie die folgenden Rechte.

1. SUPPORT-SERVICES FÜR DIE ERGÄNZUNG. Microsoft bietet Support-Services für diese Softwarean, wie unter www.support.microsoft.com/common/international.aspx beschrieben.

2. MICROSOFT .NET BENCHMARK-TESTS. Die Software enthält das .NET Framework, WindowsCommunication Foundation-, Windows Presentation Foundation- und Windows Workflow Foundation-Komponenten der Windows-Betriebssysteme (.NET-Komponenten). Sie dürfen interne Benchmark-Tests der .NET-Komponenten durchführen. Sie dürfen die Ergebnisse von Benchmark-Tests der .NET-Komponenten offenlegen, vorausgesetzt, dass Sie die Bedingungen unter http://go.microsoft.com/fwlink/?LinkID=66406 erfüllen.

Wenn Sie Ergebnisse von Benchmark-Tests offenlegen hat Microsoft ungeachtet andererVereinbarungen, die Sie mit Microsoft getroffen haben, das Recht, die Ergebnisse von Benchmark-Tests, die es für Ihre Produkte durchführt, die mit der anwendbaren .NET-Komponente konkurrieren,offen zu legen, vorausgesetzt, es erfüllt die gleichen Bedingungen, wie unter http://go.microsoft.com/fwlink/?LinkID=66406 festgelegt.

12) Auf Windows basierendes Docker-Image —dotnet-sdk

(verfügbar unter https://github.com/dotnet/core/blob/master/LICENSE.TXT)

Die MIT-Lizenz (MIT)

Copyright (c) Microsoft Corporation

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien(die „Software“) erhält, die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, zu kopieren,zu modifizieren, zusammenzuführen, zu veröffentlichen, zu verteilen, zu unterlizenzieren und/oder zuverkaufen, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgendenBedingungen zu gestatten:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis sind in allen Kopien oder wesentlichenTeilen der Software enthalten.

DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIEBEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN

API-Version 2016-10-06461

Page 469: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch12) Auf Windows basierendes Docker-Image — dotnet-sdk

VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG,JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODERCOPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE ANSPRÜCHE HAFTBAR ZUMACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERSIM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWAREENTSTANDEN.

API-Version 2016-10-06462

Page 470: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Dokumentverlauf für das AWSCodeBuild-Benutzerhandbuch

Die folgende Tabelle enthält wichtige Änderungen an der Dokumentation seit der letzten Veröffentlichungvon AWS CodeBuild. Um Benachrichtigungen über Aktualisierungen dieser Dokumentation zu erhalten,können Sie einen RSS-Feed abonnieren.

• Aktuelle API-Version: 2016-10-06• Letzte Aktualisierung der Dokumentation: 30. Juli 2020 geschlossen

update-history-change update-history-description update-history-date

Stapelerstellungen (p. 463) CodeBuild unterstützt jetzt dieAusführung von gleichzeitigenund koordinierten Builds einesProjekts. Weitere Informationenfinden Sie unter Batch wirdintegriert in CodeBuild.

July 30, 2020

Codeabdeckungsberichte (p. 463) CodeBuild bietet jetztCodeabdeckungsberichte.Weitere Informationen finden Sieunter Codeabdeckungsberichte.

July 30, 2020

Session Manager (p. 463) CodeBuild ermöglicht esIhnen jetzt, einen laufendenBuild zu pausieren und dannAWS Systems ManagerSession Manager, um eineVerbindung zum Build-Containerherzustellen und den Status desContainers anzuzeigen. WeitereInformationen finden Sie unterSitzungsmanager.

July 20, 2020

Abbild von Windows Server2019 (p. 463)

CodeBuild bietet jetzt ein Build-Image für Windows Server Core2019. Weitere Informationenfinden Sie unter Von CodeBuildbereitgestellte Docker-Images.

July 20, 2020

Aktualisiertes Thema (p. 463) CodeBuild unterstützt jetztdie Angabe einer Shell, die inihren Build-Umgebungen inder Build-Spezifikationsdateiverwendet werden soll. WeitereInformationen finden Sie unterSpezifikationsreferenz erstellen.

June 25, 2020

Testberichte mit Test-Frameworks (p. 463)

Es wurden mehrere Themenhinzugefügt, die beschreiben,wie CodeBuild-Testberichte

May 29, 2020

API-Version 2016-10-06463

Page 471: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

mit verschiedenen Test-Frameworks generiert werden.Weitere Informationen findenSie unter Testberichte mit Test-Frameworks.

Unterstützung fürTestberichte (p. 463)

Die CodeBuild-Unterstützung fürTestberichte ist jetzt allgemeinverfügbar.

May 21, 2020

Aktualisierte Themen (p. 463) CodeBuild unterstützt jetztdas Hinzufügen von Tagszu Berichtsgruppen. WeitereInformationen finden Sie unterBerichtsgruppe.

May 21, 2020

Aktualisierte Themen (p. 463) CodeBuild unterstützt jetztdas Erstellen von Webhook-Filtern für Github und Bitbucket,die nur dann Builds auslösen,wenn die Head-Commit-Nachricht mit dem angegebenenAusdruck übereinstimmt. WeitereInformationen finden Sie unterBeispiel einer GitHub-Pull-Anfrage und eines Webhook-Filters sowie Beispiel einerBitbucket-Pull-Anfrage und einesWebhook-Filters.

May 6, 2020

Neue Themen (p. 463) CodeBuild unterstützt jetzt dieFreigabe von Build-Projekt- undBerichtsgruppen-Ressourcen.Weitere Informationen finden Sieunter Arbeiten mit freigegebenenProjekten und Arbeiten mitfreigegebenen Berichtsgruppen.

December 13, 2019

Neue und aktualisierteThemen (p. 463)

CodeBuild unterstützt jetztTestberichte während derAusführung eines Build-Projekts.Weitere Informationen finden Sieunter Arbeiten mit Testberichten,Erstellen eines Testberichtsund Erstellen eines Testberichtsmithilfe des AWS CLI-Beispiels.

November 25, 2019

Aktualisiertes Thema (p. 463) CodeBuild unterstützt jetzt Linux-GPU- und Arm-Umgebungstypensowie den 2xlarge-Compute-Typ. Weitere Informationenfinden Sie unter Erstellen vonUmgebungs-Compute-Typen.

November 19, 2019

API-Version 2016-10-06464

Page 472: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Aktualisierte Themen (p. 463) CodeBuild unterstützt jetzt Build-Nummern für alle Builds, denExport von Umgebungsvariablenund die AWS SecretsManager-Integration. WeitereInformationen finden Sie unterExportierte Variablen und SecretsManager in Syntax der Build-Spezifikation.

November 6, 2019

Neues Thema: (p. 463) CodeBuild unterstützt jetztBenachrichtigungsregeln. Siekönnen Benachrichtigungsregelnverwenden, um Benutzer überwichtige Änderungen in Build-Projekten zu benachrichtigen.Weitere Informationen findenSie unter Erstellen einerBenachrichtigungsregel.

November 5, 2019

Aktualisierte Themen (p. 463) CodeBuild unterstützt jetzt dieLaufzeiten von Android Version29 und Go Version 1.13. WeitereInformationen finden Sie unterVon CodeBuild bereitgestellteDocker-Images und Syntax derBuild-Spezifikation.

September 10, 2019

Aktualisierte Themen (p. 463) Wenn Sie ein Projekterstellen, können Sie jetzt dasverwaltete Abbild von AmazonLinux 2 (AL2) auswählen.Weitere Informationen findenSie unter Von CodeBuildbereitgestellte Docker-Imagesund Laufzeitversionen imBuildspec-Dateibeispiel fürCodeBuild.

August 16, 2019

Aktualisiertes Thema (p. 463) Beim Erstellen einesProjekts können Sie jetzt dieVerschlüsselung von S3-Protokollen deaktivieren und,falls Sie ein Git-basiertesQuellrepository verwenden, Git-Submodule einbeziehen. WeitereInformationen finden Sie unter Erstellen eines Build-Projekts inCodeBuild.

March 8, 2019

Neues Thema: (p. 463) CodeBuild unterstützt jetztlokales Caching. Beim Erstelleneines Builds können Sie lokalesCaching in einem oder mehrerenvon vier Modi angeben. WeitereInformationen finden Sie unterBuild-Caching in CodeBuild.

February 21, 2019

API-Version 2016-10-06465

Page 473: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Neue Themen (p. 463) CodeBuild unterstützt jetztWebhook-Filtergruppen zurAngabe von Ereignissen, dieeinen Build auslösen. WeitereInformationen finden Sie unter Filtern von GitHub-Webhook-Ereignissen und Filtern vonBitbucket-Webhook-Ereignissen.

February 8, 2019

Neues Thema: (p. 463) Im CodeBuild-Benutzerhandbuchwird jetzt die Verwendung vonCodeBuild mit einem Proxy-Server erläutert. WeitereInformationen finden Sie unterVerwenden von CodeBuild miteinem Proxy-Server.

February 4, 2019

Support für private Docker-Registrierungen (p. 463)

CodeBuild unterstützt jetztdie Verwendung einesDocker-Images, das in einerprivaten Registrierung als IhreLaufzeitumgebung gespeichertist. Weitere Informationen findenSie im Beispiel einer privatenRegistrierung mit AWS SecretsManager.

January 24, 2019

Aktualisierte Themen (p. 463) CodeBuild unterstützt jetzt einAmazon ECR-Image, das sichin einem anderen AWS-Kontobefindet. Es wurden mehrereThemen aktualisiert, um dieseÄnderung zu berücksichtigen,darunter die Abschnitte AmazonECR-Beispiel für CodeBuild,Erstellen eines Build-Projektsund Erstellen einer CodeBuild-Servicerolle.

January 24, 2019

Aktualisiertes Thema (p. 463) CodeBuild unterstützt nunZugriffstoken für die Verbindungzu Repositorys auf GitHub (miteinem privaten Zugriffstoken)und Bitbucket (mit einem App-Passwort). Weitere Informationenfinden Sie unter Erstellen einesBuild-Projekts (Konsole) undVerwenden von Zugriffstoken mitIhrem Quellanbieter.

December 6, 2018

Aktualisiertes Thema (p. 463) CodeBuild unterstützt nun neueBuild-Metriken, mit denen dieDauer der einzelnen Phasenin einem Build ermittelt werdenkann. Weitere Informationenfinden Sie unter CodeBuild-CloudWatch-Metriken.

November 15, 2018

API-Version 2016-10-06466

Page 474: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

VPC-Endpunktrichtlinienthema (p. 463)

Amazon VPC-Endpunkte fürCodeBuild unterstützen jetztRichtlinien. Weitere Informationenfinden Sie unter Erstellen vonVPC-Endpunktrichtlinien fürCodeBuild.

November 9, 2018

Aktualisierter Inhalt (p. 463) Themen wurde aktualisiert, umdie neue Konsolenumgebungwiederzugeben.

October 30, 2018

Amazon EFS-Beispiel (p. 463) CodeBuild kann während einesBuilds anhand von Befehlen inder buildspec-Datei ein AmazonEFS-Dateisystem mounten.Weitere Informationen finden Sieunter Amazon EFS-Beispiel fürCodeBuild.

October 26, 2018

BitBucket-Webhooks (p. 463) CodeBuild unterstützt nunWebhooks, wenn Sie BitBucketfür Ihr Repository verwenden.Weitere Informationen finden Sieauf der Seite über das Beispieleiner Bitbucket-Pull-Anfrage fürCodeBuild.

October 2, 2018

S3-Protokolle (p. 463) CodeBuild unterstützt jetzt Build-Protokolle in einem S3-Bucket.Zuvor konnten Sie nur unterVerwendung von CloudWatchLogsBuild-Protokolle verwenden.Weitere Informationen finden Sieunter Erstellen eines Projekts.

September 17, 2018

Mehrere Eingabequellenund mehrereAusgabeartefakte (p. 463)

CodeBuild unterstützt jetztProjekte, die mehr als eineEingabequelle verwendenund mehr als einen SatzArtefakte veröffentlichen.Weitere Informationenfinden Sie unter Beispiel fürmehrere Eingabequellenund Ausgabeartefakte undBeispiel für die CodePipeline-Integration mit CodeBuild sowiemehrere Eingabequellen undAusgabeartefakte.

August 30, 2018

API-Version 2016-10-06467

Page 475: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

Neues Beispiel für eine statischeWebsite (p. 463)

Das CodeBuild-Benutzerhandbuch enthält jetztein praxisorientiertes Beispiel,das das Hosten der Build-Ausgabe in einem S3-Bucketillustriert. Das Beispiel nutzt diekürzlich ergänzte Unterstützungunverschlüsselter Build-Artefakte.Weitere Informationen finden Sieunter Erstellen einer statischenWebsite mit in einem S3-Bucketgehosteter Build-Ausgabe.

August 14, 2018

Beispiel zum semantischenVersioning (p. 463)

Das CodeBuild-Benutzerhandbuch enthältjetzt ein praxisorientiertesBeispiel, das die Verwendungdes semantischen Versioningszum Erstellen von Artefaktnamenwährend der Build-Erstellungdemonstriert. WeitereInformationen finden Sie unterBeispiel zur Verwendung dessemantischen Versionings zumBenennen von Build-Artefakten.

August 14, 2018

Unterstützung desÜberschreibens vonArtefaktnamen mit semantischemVersioning (p. 463)

Sie können jetzt das semantischeVersioning einsetzen, umein Format anzugeben, dasCodeBuild dann zum Benennenvon Build-Artefakten verwendet.Dies ist praktisch, da ein Build-Artefakt mit einem hartcodiertenNamen frühere Build-Artefakteüberschreibt, die denselbenhartcodierten Namen haben. Wirdbeispielsweise ein Build mehrfachpro Tag ausgelöst, können Siejetzt einen Zeitstempel zu seinemArtifact-Namen hinzufügen.Jeder Build-Artefakt-Name isteindeutig und überschreibt nichtdie Artefakte des vorherigenBuilds.

August 7, 2018

Unverschlüsselte Build-Artefaktewerden unterstützt (p. 463)

CodeBuild unterstützt jetzt Buildsmit unverschlüsselten Build-Artefakten. Weitere Informationenfinden Sie unter Erstellen einesBuild-Projekts (Konsole).

July 26, 2018

API-Version 2016-10-06468

Page 476: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Unterstützung von AmazonCloudWatch-Metriken und -Alarmen (p. 463)

CodeBuild unterstützt jetzt dieIntegration in CloudWatch-Metriken und -Alarme. Siekönnen die CodeBuild-oder CloudWatch-Konsolezur Überwachung vonBuilds auf Projekt- undKontoebene verwenden. WeitereInformationen finden Sie unterÜberwachung von Builds.

July 19, 2018

Unterstützung von Berichten überden Build-Status (p. 463)

CodeBuild unterstützt jetzt auchBerichte über den Status desBuild-Starts und -Abschlussesan Ihren Quell-Anbieter. WeitereInformationen finden Sie unter Erstellen eines Build-Projekts inCodeBuild.

July 10, 2018

Umgebungsvariablen zurCodeBuild-Dokumentationhinzugefügt (p. 463)

Die Seite Umgebungsvariablenin Build-Umgebungen wurdedurch die UmgebungsvariablenCODEBUILD_BUILD_ID,CODEBUILD_LOG_PATH undCODEBUILD_START_TIMEaktualisiert.

July 9, 2018

Unterstützung einesfinally-Blocks in der Build-Spezifikationsdatei (p. 463)

Die CodeBuild-Dokumentationwurde mit Details über denoptionalen finally-Block ineiner Build-Spezifikationsdateiaktualisiert. Befehle im finally-Block werden immer nachden Befehlen im zugehörigenBefehlsblock ausgeführt. WeitereInformationen finden Sie unterSyntax der Build-Spezifikation.

June 20, 2018

Aktualisierungsbenachrichtigungendes CodeBuild-Agenten (p. 463)

Die überarbeitete CodeBuild-Dokumentation geht nundarauf ein, wie Sie mithilfe vonAmazon SNS benachrichtigtwerden können, wenn neueVersionen des CodeBuild-Agenten veröffentlicht werden.Weitere Informationen finden Sieunter Benachrichtigungen überneue AWS CodeBuild Agent-Versionen.

June 15, 2018

Frühere UpdatesIn der folgenden Tabelle sind wichtige Änderungen in jeder Version des AWS CodeBuild-Benutzerhandbuchs vor Juni 2018 beschrieben.

API-Version 2016-10-06469

Page 477: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Unterstützung für Windows-Builds

CodeBuild unterstützt nunBuilds für die Microsoft WindowsServer-Plattform, einschließlicheiner vorkonfigurierter Build-Umgebung für .NET Core 2.0 aufWindows. Weitere Informationenfinden Sie im Microsoft Windows-Beispiele für CodeBuild (p. 31).

25. Mai 2018

Unterstützung für Build-Idempotenz

Wenn Sie den Befehl start-build über die AWS CommandLine Interface (AWS CLI)ausführen, können Sie angeben,dass das Build idempotent ist.Weitere Informationen finden Sieim Ausführen eines Build (AWSCLI) (p. 284).

15. Mai 2018

Unterstützung für dasÜberschreiben mehrerer Build-Projekteinstellungen

Sie können nun mehrere Build-Projekteinstellungen außerKraft setzen, wenn Sie ein Builderstellen. Die Überschreibungengelten nur für dieses Build.Weitere Informationen finden Sieim Ausführen eines Build in AWSCodeBuild (p. 279).

15. Mai 2018

Unterstützung von VPC-Endpunkt

Sie können die SicherheitIhrer Builds nun mithilfe vonVPC-Endpunkten verbessern.Weitere Informationen findenSie im Verwenden von VPC-Endpunkten (p. 190).

18. März 2018

Unterstützung von Auslösern Sie können jetzt Auslösererstellen, um in regelmäßigenAbständen Builds zu planen.Weitere Informationen finden Sieim Erstellen von AWS CodeBuild-Auslösern (p. 239).

28. März 2018

FIPS-Endpunktdokumentation Jetzt können Sie erfahren, wieSie mit der AWS CommandLine Interface (AWS CLI) odereinem AWS SDK CodeBuildmitteilen, einen von vierFederal Information ProcessingStandards (FIPS)-Endpunktenzu verwenden. WeitereInformationen finden Sie imAngeben des AWS CodeBuild-Endpunkts (p. 404).

28. März 2018

AWS CodeBuild verfügbar inAsien-Pazifik (Mumbai), Europa

AWS CodeBuild ist jetzt inden Regionen Asien-Pazifik(Mumbai), Europa (Paris)

28. März 2018

API-Version 2016-10-06470

Page 478: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>(Paris) und Südamerika (SãoPaulo)

und Südamerika (São Paulo)verfügbar. Weitere Informationenfinden Sie unter AWS CodeBuildim Allgemeine Amazon WebServices-Referenz.

GitHub Enterprise Server-Support

CodeBuild unterstützt jetztauch Quellcode, der in einemGitHub Enterprise Server-Repository gespeichert ist.Weitere Informationen findenSie im GitHub Enterprise Server-Beispiel (p. 121).

25. Januar 2018

Support von tiefen Git-Klons CodeBuild unterstützt jetztdas Erstellen eines flachenKlon mit einem Verlauf, der aufdie angegebene Anzahl vonCommits gekürzt ist. WeitereInformationen finden Sie imErstellen eines Build-Projekts() (p. 206).

25. Januar 2018

VPC-Unterstützung VPC-fähige Builds könnenjetzt auf Ressourcen innerhalbIhrer VPC zugreifen. WeitereInformationen finden Sie im VPC-Unterstützung (p. 188).

27. November 2017

Unterstützung des Cachings vonAbhängigkeiten

CodeBuild unterstützt jetzt dasCaching von Abhängigkeiten.Dadurch kann CodeBuildbestimmte wiederverwendbareTeile der Build-Umgebung imCache speichern und Build-übergreifend verwenden.

27. November 2017

Build Badges-Support CodeBuild unterstützt jetzt dieVerwendung von Build Badges.Diese stellen ein integrierbares,dynamisch generiertes Image(Badge) bereit, das den Statusdes letzten Builds eines Projektsanzeigt. Weitere Informationenfinden Sie im Build Badges-Beispiel (p. 86).

27. November 2017

Integration von AWS Config AWS Config unterstütztjetzt CodeBuild als AWS-Ressource, somit kann derService Ihre CodeBuild-Projektenachverfolgen. Mehr über AWSConfig erfahren Sie unter AWSConfig-Beispiel (p. 73).

20. Oktober 2017

API-Version 2016-10-06471

Page 479: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Aktualisierten Quellcode inGitHub-Repositorys automatischneu erstellen

Wenn Ihr Quellcode in einemGitHub-Repository gespeichertist, können Sie AWS CodeBuildaktivieren, um Ihren Quellcodeneu zu erstellen, sobaldeine Codeänderung an denRepository weitergegeben wird.Weitere Informationen finden Sieim Beispiel einer GitHub-Pull-Anfrage und eines Webhook-Filters (p. 127).

21. September 2017

Neue Möglichkeiten für dasSpeichern und Abrufenvon sensiblen oder großenUmgebungsvariablen imAmazon EC2 Systems ManagerParameter Store

Sie können jetzt mit der AWSCodeBuild-Konsole oder derAWS CLI sensible oder großeUmgebungsvariablen abrufen,die im Amazon EC2 SystemsManager Parameter Storegespeichert sind. Sie können jetztzudem auch die AWS CodeBuild-Konsole nutzen, um diese Artenvon Umgebungsvariablen imAmazon EC2 Systems ManagerParameter Store zu speichern.Bisher konnten Sie diese Artenvon Umgebungsvariablennur abrufen, indem Sie siein einer Build-Spezifikationeinschlossen oder Build-Befehle zur Automatisierungder AWS CLI ausführten.Sie konnten diese Arten vonUmgebungsvariablen nur mit derAmazon EC2 Systems ManagerParameter Store-Konsolespeichern. Weitere Informationenfinden Sie unter Erstelleneines Build-Projekts () (p. 206),Ändern der Einstellungen einesBuild-Projekts () (p. 259) undAusführen eines Build () (p. 279).

14. September 2017

Unterstützung der Build-Löschung

Sie können jetzt Builds in AWSCodeBuild löschen. WeitereInformationen finden Sie imLöschen von Builds (p. 304).

31. August 2017

API-Version 2016-10-06472

Page 480: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Aktualisierung der Möglichkeitzum Abrufen von sensiblen odergroßen Umgebungsvariablen,die im Amazon EC2 SystemsManager-Parameter Storegespeichert sind, mithilfe einerBuild-Spezifikation

AWS CodeBuild vereinfachtjetzt die Verwendung einerBuild-Spezifikation zum Abrufenvon sensiblen oder großenUmgebungsvariablen, die imAmazon EC2 Systems Manager-Parameter Store gespeichertsind. Bisher konnten Sie dieseArten von Umgebungsvariablennur abrufen, indem Sie Build-Befehle ausführten, um dieAWS CLI zu automatisieren.Weitere Informationen finden Sieunter der parameter-store-Zuordnung in Syntax der Build-Spezifikation (p. 151).

10. August 2017

AWS CodeBuild unterstütztBitbucket

CodeBuild unterstützt jetztauch Quellcode, der in einemBitbucket-Repository gespeichertist. Weitere Informationenfinden Sie unter Erstellen einesBuild-Projekts () (p. 206) undAusführen eines Build () (p. 279).

10. August 2017

AWS CodeBuild verfügbar inUSA West (Nordkalifornien),Europa (London) und Kanada(Zentral)

AWS CodeBuild ist jetzt inden Regionen USA West(Nordkalifornien), Europa(London) und Kanada (Zentral)verfügbar. Weitere Informationenfinden Sie unter AWS CodeBuildim Allgemeine Amazon WebServices-Referenz.

29. Juni 2017

Unterstützung alternativer Namenund Speicherorte für Build-Spezifikationsdateien

Sie können jetzt einen anderenDateinamen oder Speicherorteiner Build-Spezifikationsdateifür ein Build-Projekt angebenund müssen nicht die Standard-Build-Spezifikationsdatei mitdem Namen buildspec.ymlim Stammverzeichnisdes Quellcodes nutzen.Weitere Informationenfinden Sie im Dateinameder Build-Spezifikation undSpeicherort (p. 151).

27. Juni 2017

API-Version 2016-10-06473

Page 481: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Aktualisiertes Build-Benachrichtigungsbeispiel

CodeBuild bietet jetzt eineintegrierte Unterstützung derBuild-Benachrichtigungenüber Amazon CloudWatchEvents und Amazon SimpleNotification Service (AmazonSNS). Der vorherige Build-Benachrichtigungsbeispiel (p. 89)wurde aktualisiert, um das neueVerhalten zu demonstrieren.

22. Juni 2017

Beispiel für einen Docker imbenutzerdefinierten Imagehinzugefügt

Ein Beispiel, das zeigt,wie CodeBuild und einbenutzerdefiniertes DockerBuild-Image verwendet werden,um ein Docker-Image zuerstellen und auszuführen,wurde hinzugefügt. WeitereInformationen finden Sie unterDocker im benutzerdefiniertenImage – Beispiel (p. 112).

7. Juni 2017

Abrufen von Quellcode fürGitHub Pull-Anforderungen

Wenn Sie einen Build mitCodeBuild ausführen, derauf einem in einem GitHub-Repository gespeichertenQuellcode basiert, könnenSie jetzt das Erstellen einerGitHub Pull-Anforderungs-IDanfordern. Sie können alternativauch eine Commit-ID, einenNamen einer Verzweigung odereinen Tag-Namen angeben.Weitere Informationen erhaltenSie, wenn Sie sich den Sourceversion-Wert in Ausführen einesBuild (Konsole) (p. 279) oderden sourceVersion-Wert inAusführen eines Build (AWSCLI) (p. 284) ansehen.

6. Juni 2017

API-Version 2016-10-06474

Page 482: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Version der Build-Spezifikationaktualisiert

Eine neue Version des Build-Spezifikationsformat wurdefreigegeben. Version 0.2 widmetsich dem Problem, das darinbesteht, dass CodeBuild jedenBuild-Befehl in einer separatenInstance der Standard-Shellausführt. Auch in Version 0.2,environment_variableswird umbenannt in env, undplaintext wird umbenanntin variables. (z. B..) WeitereInformationen finden Sie unterBuild-Spezifikationsreferenz fürCodeBuild (p. 150).

9. Mai 2017

Dockerfiles für Build-Images inGitHub verfügbar

Definitionen für viele der Build-Images, die von AWS CodeBuildbereitgestellt werden, sind alsDockerfiles in GitHub verfügbar.Weitere Informationen findenSie in der Spalte „Definition“ derTabelle unter Von CodeBuildbereitgestellte Docker-Images (p. 175).

2. Mai 2017

AWS CodeBuild verfügbarin Europa (Frankfurt), Asien-Pazifik (Singapur), Asien-Pazifik(Sydney) und Asien-Pazifik(Tokio)

AWS CodeBuild ist jetzt in denRegionen Europa (Frankfurt),Asien-Pazifik (Singapur), Asien-Pazifik (Sydney) und Asien-Pazifik (Tokio) verfügbar. WeitereInformationen finden Sie unterAWS CodeBuild im AllgemeineAmazon Web Services-Referenz.

21. März 2017

Unterstützung für CodePipeline-Testaktion für CodeBuild

Sie können einer Pipelinein CodePipeline eine Test-Aktion hinzufügen, dieCodeBuild verwendet. WeitereInformationen finden Sie imHinzufügen einer CodeBuild-Testaktion zu einer Pipeline(CodePipeline-Konsole) (p. 420).

8. März 2017

API-Version 2016-10-06475

Page 483: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Build-Spezifikationsdateienunterstützen den Abruf der Build-Ausgabe in ausgewählten Top-Level-Verzeichnissen

Jetzt ermöglichen die Build-Spezifikationsdateien, einzelneTop-Level-Verzeichnisseanzugeben, deren Inhalte durchIhre Anweisung an CodeBuildin Build-Ausgabeartefakteeinbezogen werden können. Dieskönnen Sie durch Verwenden derZuweisung base-directorytun. Weitere Informationenfinden Sie im Syntax der Build-Spezifikation (p. 151).

8. Februar 2017

Integrierte Umgebungsvariablen AWS CodeBuild bietetzusätzliche integrierteUmgebungsvariablen, die Siein Ihren Builds verwendenkönnen. Hierzu gehörenUmgebungsvariablen, diedie Entität beschreiben,die den Build gestartet hat,die URL zum Quellcode-Repository, die Versions-ID desQuellcodes und mehr. WeitereInformationen finden Sie imUmgebungsvariablen in Build-Umgebungen (p. 182).

30. Januar 2017

AWS CodeBuild verfügbar inUSA Ost (Ohio)

AWS CodeBuild ist jetzt inder Region USA Ost (Ohio)verfügbar. Weitere Informationenfinden Sie unter AWS CodeBuildim Allgemeine Amazon WebServices-Referenz.

19. Januar 2017

Informationen zur Shell und zumVerhalten von Befehlen

CodeBuild führt jeden von Ihnenangegebenen Befehl in einerseparaten Instance der Standard-Shell in der Build-Umgebung aus.Dieses Standardverhalten kanneinige unerwartete Nebeneffektefür Ihre Befehle hervorrufen. Wirempfehlen Ihnen, gegebenenfallseinige Ansätze, um diesesStandardverhalten zu umgehen.Weitere Informationen finden Sieim Shells und Befehle in Build-Umgebungen (p. 181).

9. Dezember 2016

API-Version 2016-10-06476

Page 484: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild BenutzerhandbuchFrühere Updates

Änderungen Description (Beschreibung) <Date>

Informationen zuUmgebungsvariablen

CodeBuild bietet mehrereUmgebungsvariablen, dieSie in Ihren Build-Befehlenverwenden können. Siekönnen auch Ihre eigenenUmgebungsvariablen festlegen.Weitere Informationen finden Sieim Umgebungsvariablen in Build-Umgebungen (p. 182).

7. Dezember 2016

Thema Fehlerbehebung Informationen zurFehlerbehebung sind jetztverfügbar. Weitere Informationenfinden Sie im Fehlerbehebung fürAWS CodeBuild (p. 430).

5. Dezember 2016

Erste Version von Jenkins-Plugin Dies ist die erste Version desCodeBuild-Jenkins-Plugin.Weitere Informationen findenSie im Verwenden von AWSCodeBuild mit Jenkins (p. 424).

5. Dezember 2016

Erstausgabe des User Guide Dies ist die erste Version desCodeBuild-Benutzerhandbuchs.

1. Dezember 2016

API-Version 2016-10-06477

Page 485: AWS CodeBuild - Benutzerhandbuch...AWS CodeBuild Benutzerhandbuch Preise für CodeBuild Wie Sie in der folgenden Abbildung sehen, können Sie CodeBuild als Build oder Testaktion zum

AWS CodeBuild Benutzerhandbuch

AWS-GlossarDie aktuelle AWS-Terminologie finden Sie im AWS-Glossar im AWS General Reference.

API-Version 2016-10-06478