

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erste Schritte mit CodeBuild
<a name="getting-started-overview"></a>

In den folgenden Tutorials verwenden Sie, AWS CodeBuild um aus einer Sammlung von Beispiel-Quellcode-Eingabedateien eine bereitstellbare Version des Quellcodes zu erstellen.

Beide Tutorials haben dieselben Eingaben und Ergebnisse, aber das eine verwendet die AWS CodeBuild Konsole und das andere die AWS CLI. 

**Wichtig**  
Wir empfehlen nicht, dass Sie Ihr AWS Root-Konto verwenden, um dieses Tutorial abzuschließen.

**Topics**
+ [

## Erste Schritte mit der AWS CodeBuild Verwendung der Konsole
](#getting-started)
+ [

## Erste Schritte mit der AWS CodeBuild Verwendung von AWS CLI
](#getting-started-cli)

## Erste Schritte mit der AWS CodeBuild Verwendung der Konsole
<a name="getting-started"></a>

In diesem Tutorial verwenden Sie, AWS CodeBuild um eine Sammlung von Beispiel-Quellcode-Eingabedateien (*Build-Eingabeartefakte oder *Build-Eingabe**) in eine bereitstellbare Version des Quellcodes (*Build-Output-Artifact oder *Build-Output**) zu integrieren. Insbesondere weisen Sie an CodeBuild , Apache Maven, ein gängiges Build-Tool, zu verwenden, um eine Reihe von Java-Klassendateien in eine Java-Archivdatei (JAR) zu erstellen. Dieses Tutorial setzt nicht voraus, dass Sie mit Apache Maven oder Java vertraut sind.

Sie können mit der CodeBuild CodeBuild Konsole, AWS CodePipeline, dem oder dem AWS CLI arbeiten. AWS SDKs Dieses Tutorial zeigt, wie Sie die CodeBuild Konsole verwenden. Für weitere Informationen zur Nutzung von CodePipeline siehe [Verwenden Sie CodeBuild mit CodePipeline](how-to-create-pipeline.md).

**Wichtig**  
Für die Schritte in diesem Tutorial müssen Sie Ressourcen (z. B. einen S3-Bucket) erstellen, die zu Gebühren für Ihr AWS Konto führen können. Dazu gehören mögliche Gebühren für CodeBuild und für AWS Ressourcen und Aktionen im Zusammenhang mit Amazon S3 und CloudWatch Logs. AWS KMS Weitere Informationen finden Sie unter [AWS CodeBuild Preise](https://aws.amazon.com/codebuild/pricing), [Amazon S3 S3-Preise](https://aws.amazon.com/s3/pricing), [AWS Key Management Service Preise](https://aws.amazon.com/kms/pricing) und [ CloudWatch Amazon-Preise](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Schritt 1: Erstellen Sie den Quellcode
](#getting-started-create-source-code-console)
+ [

### Schritt 2: Erstellen Sie die Buildspec-Datei
](#getting-started-create-build-spec-console)
+ [

### Schritt 3: Erstellen Sie zwei S3-Buckets
](#getting-started-input-bucket-console)
+ [

### Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei
](#getting-started-upload-source-code-console)
+ [

### Schritt 5: Erstellen des Build-Projekts
](#getting-started-create-build-project-console)
+ [

### Schritt 6: Ausführen des Builds
](#getting-started-run-build-console)
+ [

### Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen
](#getting-started-monitor-build-console)
+ [

### Schritt 8: Anzeigen der detaillierten Build-Informationen
](#getting-started-build-log-console)
+ [

### Schritt 9: Abrufen des Build-Ausgabeartefakts
](#getting-started-output-console)
+ [

### Schritt 10: Löschen Sie die S3-Buckets
](#getting-started-clean-up-console)
+ [

### Nachbearbeitung
](#getting-started-next-steps-console)

### Schritt 1: Erstellen Sie den Quellcode
<a name="getting-started-create-source-code-console"></a>

(Teil von: [Erste Schritte mit der AWS CodeBuild Verwendung der Konsole](#getting-started))

In diesem Schritt erstellen Sie den Quellcode, den Sie für den Ausgabe-Bucket erstellen möchten CodeBuild . 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 folgende Verzeichnisstruktur.

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

1. Erstellen Sie diese Datei mithilfe eines Texteditors, benennen Sie sie `MessageUtil.java` und speichern 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;
     }
   }
   ```

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

1. Erstellen Sie diese Datei, benennen Sie sie `TestMessageUtil.java` und speichern Sie sie im Verzeichnis `/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 festgelegt wurde, indem sie überprüft, ob die Zeichenfolgen `Robert` und `Hi!Robert` in der Ausgabe vorhanden sind.

1. 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>
       </plugins>
     </build>
   </project>
   ```

   Apache Maven verwendet die Anweisungen in dieser Datei, um die Dateien `MessageUtil.java` und `TestMessageUtil.java` in eine Datei namens `messageUtil-1.0.jar` zu konvertieren und dann die 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
```

### Schritt 2: Erstellen Sie die Buildspec-Datei
<a name="getting-started-create-build-spec-console"></a>

(Vorheriger Schritt: [Schritt 1: Erstellen Sie den Quellcode](#getting-started-create-source-code-console))

In diesem Schritt erstellen Sie eine Build-Spezifikationsdatei. Eine *Buildspec* ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format, die zum Ausführen eines Builds verwendet werden. CodeBuild Ohne eine Build-Spezifikation können Sie Ihre Build-Eingabe CodeBuild nicht erfolgreich in eine Build-Ausgabe konvertieren oder das Build-Ausgabeartefakt in der Build-Umgebung finden, um es in Ihren Ausgabe-Bucket hochzuladen.

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
```

**Wichtig**  
Da es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt, ist die Formatierung in einer Build-Spezifikationsdeklaration wichtig. Wenn die Anzahl der Leerzeichen in 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. 

**Anmerkung**  
Statt eine Build-Spezifikationsdatei in Ihren Quellcode einzuschließen, können Sie Build-Befehle beim Erstellen eines Build-Projekts separat deklarieren. Das ist hilfreich, wenn Sie Ihren Quellcode mit unterschiedlichen Build-Befehlen erstellen möchten, ohne jedes Mal das Quellcode-Repository zu aktualisieren. Weitere Informationen finden Sie unter [Syntax der Build-Spezifikation](build-spec-ref.md#build-spec-ref-syntax).

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. Sie können die Schreibweise dieser Build-Phasennamen nicht ändern und Sie können keine zusätzlichen Build-Phasennamen erstellen. 

  In diesem Beispiel wird während der `build` Phase der Befehl CodeBuild ausgeführt. `mvn install` Dieser Befehl weist Apache Maven an, die Java-Klassendateien zu kompilieren, zu testen und die kompilierten Dateien in ein Build-Ausgabeartefakt zu verpacken. Der Vollständigkeit halber sind in diesem Beispiel einige `echo`-Befehle in jeder Build-Phase platziert. Wenn Sie die detaillierten Build-Informationen später in diesem Tutorial anzeigen, können Sie der Ausgabe dieser `echo`-Befehle entnehmen, wie und in welcher Reihenfolge CodeBuild Befehle ausführt. (Auch wenn alle Build-Phasen in diesem Beispiel enthalten sind, müssen Sie nicht unbedingt eine Build-Phase einschließen, wenn Sie nicht vorhaben, während dieser Phase Befehle auszuführen.) CodeBuild Führt in jeder Buildphase jeden angegebenen Befehl nacheinander in der angegebenen Reihenfolge von Anfang bis Ende aus. 
+ `artifacts`stellt den Satz von Build-Ausgabeartefakten dar, der in den Ausgabe-Bucket CodeBuild hochgeladen wird. `files`steht für die Dateien, die in die Build-Ausgabe aufgenommen werden sollen. CodeBuild lädt die einzelne `messageUtil-1.0.jar` Datei hoch, die sich im `target` entsprechenden Verzeichnis in der Build-Umgebung befindet. Der Dateiname `messageUtil-1.0.jar` und der Verzeichnisname `target`, unter denen Apache Maven Build-Ausgabeartefakte erstellt und speichert, gelten nur für dieses Beispiel. In Ihren eigenen Builds lauten diese Dateinamen und Verzeichnisse anders. 

Weitere Informationen hierzu finden Sie unter [Build-Spezifikationsreferenz](build-spec-ref.md).

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
```

### Schritt 3: Erstellen Sie zwei S3-Buckets
<a name="getting-started-input-bucket-console"></a>

(Vorheriger Schritt: [Schritt 2: Erstellen Sie die Buildspec-Datei](#getting-started-create-build-spec-console))

Auch wenn Sie einen einzelnen Bucket für dieses Tutorial verwenden können, ist mit zwei Buckets einfacher 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 Name dieses Eingabe-Buckets. Dabei handelt es `codebuild-region-ID-account-ID-input-bucket` sich *region-ID* um die AWS Region des Buckets und *account-ID* um Ihre AWS Konto-ID.
+ Der andere Bucket (*Ausgabe-Bucket*) nimmt die Build-Ausgabe auf. In diesem Tutorial ist der Name dieses 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 Tutorial verwenden.

Diese beiden Buckets müssen sich in derselben AWS Region wie Ihre Builds befinden. Wenn Sie beispielsweise angeben, dass ein CodeBuild Build in der Region USA Ost (Ohio) ausgeführt werden soll, müssen sich diese Buckets auch in der Region USA Ost (Ohio) befinden.

Weitere Informationen erhalten Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) im *Benutzerhandbuch für Amazon Simple Storage Service*. 

**Anmerkung**  
Unterstützt zwar CodeBuild auch Build-Eingaben, die in CodeCommit, GitHub, und Bitbucket-Repositorys gespeichert sind, aber dieses Tutorial zeigt dir nicht, wie du sie benutzt. Weitere Informationen finden Sie unter [Planen eines Builds](planning.md).

### Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei
<a name="getting-started-upload-source-code-console"></a>

(Vorheriger Schritt: [Schritt 3: Erstellen Sie zwei S3-Buckets](#getting-started-input-bucket-console))

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
```

**Wichtig**  
Schließen Sie nicht das Verzeichnis `(root directory name)` ein, sondern nur die Verzeichnisse 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`. 

**Wichtig**  
Für CodeCommit GitHub ,- und Bitbucket-Repositorys müssen Sie laut Konvention eine Build-Spezifikationsdatei mit dem Namen `buildspec.yml` im Stammverzeichnis (oberste Ebene) jedes Repositorys speichern oder die Build-Spezifikationsdeklaration als Teil der Build-Projektdefinition hinzufügen. Erstellen Sie keine ZIP-Datei, die den Quellcode und die Build-Spezifikationsdatei des Repositorys enthält.   
Bei Build-Eingaben, die nur in S3-Buckets gespeichert sind, müssen Sie eine ZIP-Datei erstellen, die den Quellcode enthält, und – gemäß Konvention – eine Build-Spezifikationsdatei namens `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. Weitere Informationen finden Sie unter [Dateiname der Build-Spezifikation und Speicherort](build-spec-ref.md#build-spec-ref-name-storage).

### Schritt 5: Erstellen des Build-Projekts
<a name="getting-started-create-build-project-console"></a>

(Vorheriger Schritt: [Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei](#getting-started-upload-source-code-console))

In diesem Schritt erstellst du ein Build-Projekt, das zur Ausführung des Builds AWS CodeBuild verwendet wird. Ein *Build-Projekt* enthält Informationen darüber, wie ein Build ausgeführt wird, einschließlich der Herkunft des Quellcodes, der zu verwendenden Build-Umgebung, der auszuführenden Build-Befehle und des Speicherorts der Build-Ausgabe. Eine *Build-Umgebung* stellt eine Kombination aus Betriebssystem, Programmiersprache, Runtime und Tools dar, mit denen CodeBuild ein Build ausgeführt wird. Die Build-Umgebung wird als Docker-Image ausgedrückt. Weitere Informationen finden Sie unter [Docker Overview](https://docs.docker.com/get-started/overview/) auf der Docker Docs-Website. 

Für diese Build-Umgebung weisen Sie an, ein Docker-Image CodeBuild zu verwenden, das eine Version des Java Development Kit (JDK) und Apache Maven enthält.<a name="getting-started-create-build-project-console-procedure"></a>

**So erstellen Sie ein Build-Projekt**

1. [Melden Sie sich bei codebuild/home an AWS-Managementkonsole und öffnen Sie die Konsole AWS CodeBuild . https://console.aws.amazon.com/codesuite/](https://console.aws.amazon.com/codesuite/codebuild/home)

1. Verwenden Sie die AWS Regionsauswahl, um eine AWS Region auszuwählen, in der sie unterstützt wird. CodeBuild Weitere Informationen finden Sie unter [AWS CodeBuild -Endpunkte und -Kontingente](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) in der *Allgemeine Amazon Web Services-Referenz*.

1.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie **Build-Projekt erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. 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 (in diesem Beispiel `codebuild-demo-project`). Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Wenn Sie einen anderen Namen vergeben, müssen Sie diesen im gesamten Tutorial verwenden.
**Anmerkung**  
Auf der Seite **Create build project (Build-Projekt erstellen)** wird möglicherweise eine Fehlermeldung ähnlich der folgenden angezeigt: **You are not authorized to perform this operation (Sie sind nicht berechtigt, diesen Vorgang auszuführen).**. Dies liegt höchstwahrscheinlich daran, dass Sie sich AWS-Managementkonsole als Benutzer angemeldet haben, der nicht über die erforderlichen Berechtigungen zum Erstellen eines Build-Projekts verfügt. Um dieses Problem zu beheben, melden Sie sich von der AWS-Managementkonsole ab und melden Sie sich dann wieder mit Anmeldeinformationen an, die zu einer der folgenden IAM-Entitäten gehören:   
Ein Administratorbenutzer in Ihrem AWS Konto. Weitere Informationen finden Sie im *Benutzerhandbuch* unter [Erstellen Ihres ersten AWS-Konto Root-Benutzers und Ihrer ersten Root-Gruppe](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html).
Ein Benutzer in Ihrem AWS Konto`AWSCodeBuildAdminAccess`, mit den `IAMFullAccess` verwalteten Richtlinien`AmazonS3ReadOnlyAccess`, die diesem Benutzer oder einer IAM-Gruppe zugeordnet sind, zu der der Benutzer gehört. Wenn Sie in Ihrem AWS Konto keinen Benutzer oder keine Gruppe mit diesen Berechtigungen haben und Sie diese Berechtigungen Ihrem Benutzer oder Ihrer Gruppe nicht hinzufügen können, wenden Sie sich an Ihren AWS Kontoadministrator, um Unterstützung zu erhalten. Weitere Informationen finden Sie unter [AWS verwaltete (vordefinierte) Richtlinien für AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).
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 Aufgabe erforderlich sind. Weitere Informationen finden Sie unter [AWS CodeBuild Referenz zu Berechtigungen](auth-and-access-control-permissions-reference.md).

1. Wählen Sie unter **Source** **für Source Provider** **Amazon S3** aus.

1. Wählen Sie für **Bucket** **codebuild- *region-ID* - *account-ID* -input-bucket** aus.

1.  Geben Sie für **S3 object key (S3-Objektschlüssel)** **MessageUtil.zip** ein.

1. Wählen Sie unter **Environment** für **Environment image** weiterhin **Managed Image** aus.

1. Wählen Sie als **Betriebssystem** **Amazon Linux**.

1. Wählen Sie unter **Runtime (Laufzeit)** die Option **Standard** aus.

1. Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-standard:corretto11**.

1. Wählen Sie unter **Service role** weiterhin **New service role** aus und lassen Sie **Role name** unverändert.

1. Belassen Sie für **Buildspec** die Option **Use a buildspec file (Eine buildspec-Datei verwenden)** aktiviert.

1. Wählen Sie unter **Artifacts** für **Type** **Amazon S3** aus.

1. Wählen Sie als **Bucket-Namen** **codebuild- *region-ID* - *account-ID* -output-bucket** aus.

1. Lassen Sie **Name** und **Path (Pfad)** leer.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

### Schritt 6: Ausführen des Builds
<a name="getting-started-run-build-console"></a>

(Vorheriger Schritt: [Schritt 5: Erstellen des Build-Projekts](#getting-started-create-build-project-console))

In diesem Schritt weisen Sie an AWS CodeBuild , den Build mit den Einstellungen im Build-Projekt auszuführen.<a name="getting-started-run-build-console-console-procedure"></a>

**So führen Sie den Build aus**

1. Öffnen Sie die AWS CodeBuild Konsole unter [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Wählen Sie im linken Navigationsbereich **Build projects** aus.

1. **Wählen Sie in der Liste der Build-Projekte die Option **codebuild-demo-project**und anschließend Build starten aus.** Der Build wird sofort gestartet.

### Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen
<a name="getting-started-monitor-build-console"></a>

(Vorheriger Schritt: [Schritt 6: Ausführen des Builds](#getting-started-run-build-console))

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

#### So zeigen Sie eine Zusammenfassung der Build-Informationen an
<a name="getting-started-monitor-build-console-title"></a><a name="getting-started-run-build-console-procedure"></a>

1. Wenn die *<build-ID>* Seite **codebuild-demo-project:** nicht angezeigt wird, wählen Sie in der Navigationsleiste **Build history** aus. Wählen Sie als Nächstes in der Liste der Build-Projekte für **Project** den Link **Build run** für aus **codebuild-demo-project**. Es sollte nur ein passender 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.)

1. Auf der **Build-Statusseite** sollten in den **Phasendetails** die folgenden Buildphasen angezeigt werden, wobei in der Spalte **Status** der **Eintrag** Erfolgreich aufgeführt sein sollte:
   + **SUBMITTED**
   + **IN WARTESCHLANGE**
   + **PROVISIONING**
   + **DOWNLOAD\$1SOURCE**
   + **INSTALL**
   + **PRE\$1BUILD**
   + **BUILD**
   + **POST\$1BUILD**
   + **UPLOAD\$1ARTIFACTS**
   + **FINALIZING**
   + **COMPLETED**

   Unter **Build-Status** sollte **Succeeded** angezeigt werden.

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

1. 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.

### Schritt 8: Anzeigen der detaillierten Build-Informationen
<a name="getting-started-build-log-console"></a>

(Vorheriger Schritt: [Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen](#getting-started-monitor-build-console))

In diesem Schritt sehen Sie detaillierte Informationen zu Ihrem Build in CloudWatch Logs.

**Anmerkung**  
 Um vertrauliche Informationen zu schützen, sind die folgenden Informationen in den CodeBuild Protokollen versteckt:   
 AWS Zugriffsschlüssel IDs. Weitere Informationen finden Sie unter [Verwaltung von Zugriffsschlüsseln für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) im *AWS Identity and Access Management Benutzerhandbuch*. 
 Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unter [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) und [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) im *Amazon EC2 Systems Manager Manager-Benutzerhandbuch*. 
 Zeichenketten, die angegeben wurden mit. AWS Secrets Manager Weitere Informationen finden Sie unter [Schlüsselverwaltung](security-key-management.md). <a name="getting-started-build-log-console-procedure"></a>

**So zeigen Sie detaillierte Build-Informationen an**

1. Während die Seite mit den Build-Details immer noch vom vorherigen Schritt angezeigt wird, werden die letzten 10,000 Zeilen des Build-Protokolls unter **Build logs** angezeigt. Um das gesamte Build-Protokoll in CloudWatch Logs zu sehen, wählen Sie den Link **Gesamtes Protokoll anzeigen**. 

1. Im CloudWatch Log-Stream „Logs“ können Sie die Protokollereignisse durchsuchen. Standardmäßig werden nur die letzten Protokollereignisse angezeigt. Um ältere Protokollereignisse anzuzeigen, blättern Sie zum Anfang der Liste.

1. In diesem Tutorial enthalten die meisten Protokollereignisse wahrscheinlich nicht benötigte detaillierte Informationen ü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 **Filter events** reduzieren. Wenn Sie beispielsweise `"[INFO]"` in das Feld **Filter events (Ereignisse filtern)** eingeben, werden nur Ereignisse angezeigt, die `[INFO]` enthalten. Weitere Informationen finden Sie unter [Filter- und Mustersyntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) im * CloudWatch Amazon-Benutzerhandbuch*.

### Schritt 9: Abrufen des Build-Ausgabeartefakts
<a name="getting-started-output-console"></a>

(Vorheriger Schritt: [Schritt 8: Anzeigen der detaillierten Build-Informationen](#getting-started-build-log-console))

In diesem Schritt erhalten Sie die `messageUtil-1.0.jar` Datei, die CodeBuild erstellt und in den Ausgabe-Bucket hochgeladen wurde.

Sie können die CodeBuild Konsole oder die Amazon S3 S3-Konsole verwenden, um diesen Schritt abzuschließen.



**Um das Build-Ausgabeartefakt (AWS CodeBuild Konsole) abzurufen**

1. Wenn die CodeBuild Konsole noch geöffnet ist und die Seite mit den Build-Details aus dem vorherigen Schritt weiterhin angezeigt wird, wählen Sie den Tab **Build-Details** und scrollen Sie nach unten zum Abschnitt **Artefakte**. 
**Anmerkung**  
Wenn die Seite mit den Build-Details nicht angezeigt wird, wählen Sie in der Navigationsleiste **Build history** und dann den Link **Build run aus**.

1. Der Link zum Amazon S3 S3-Ordner befindet sich unter dem **Upload-Speicherort für Artefakte**. Dieser Link öffnet den Ordner in Amazon S3, in dem Sie die `messageUtil-1.0.jar` Build-Ausgabeartefaktdatei finden.

**Um das Build-Ausgabeartefakt abzurufen (Amazon S3 S3-Konsole)**

1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Öffnen Sie `codebuild-region-ID-account-ID-output-bucket`.

1. Öffnen Sie das Verzeichnis `codebuild-demo-project`.

1. Öffnen Sie den Ordner `target`, in dem Sie die Build-Ausgabeartefaktdatei `messageUtil-1.0.jar` finden.

### Schritt 10: Löschen Sie die S3-Buckets
<a name="getting-started-clean-up-console"></a>

(Vorheriger Schritt: [Schritt 9: Abrufen des Build-Ausgabeartefakts](#getting-started-output-console))

Um zu verhindern, dass Ihr AWS Konto ständig belastet wird, können Sie die in diesem Tutorial verwendeten Eingabe- und Ausgabe-Buckets löschen. Anweisungen finden Sie unter [Löschen oder Entleeren eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.

Wenn Sie den IAM-Benutzer oder einen Administrator-IAM-Benutzer verwenden, um diese Buckets zu löschen, benötigt der Benutzer mehr Zugriffsberechtigungen. Fügen Sie die folgende Anweisung zwischen den Markierungen (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*und*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) zu einer vorhandenen Zugriffsrichtlinie für den Benutzer hinzu. 

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Nachbearbeitung
<a name="getting-started-next-steps-console"></a>



In diesem Tutorial haben Sie AWS CodeBuild früher eine Reihe von Java-Klassendateien in eine JAR-Datei umgewandelt. Anschließend haben Sie die Build-Ergebnisse angezeigt.

Sie können jetzt versuchen, es CodeBuild in Ihren eigenen Szenarien zu verwenden. Folgen Sie den Anweisungen in [Planen eines Builds](planning.md). Wenn Sie dazu noch nicht bereit sind, können Sie einige der Beispiele als Build erstellen. Weitere Informationen finden Sie unter [Anwendungsfallbasierte Beispiele für CodeBuild](use-case-based-samples.md). 

## Erste Schritte mit der AWS CodeBuild Verwendung von AWS CLI
<a name="getting-started-cli"></a>

In diesem Tutorial bauen Sie AWS CodeBuild eine Sammlung von Beispiel-Quellcode-Eingabedateien (sogenannte *Build-Eingabeartefakte oder *Build-Eingabe**) in eine bereitstellbare Version des Quellcodes ein (*Build-Output-Artifact oder *Build-Output** genannt). Insbesondere weisen Sie an CodeBuild , Apache Maven, ein gängiges Build-Tool, zu verwenden, um eine Reihe von Java-Klassendateien in eine Java-Archivdatei (JAR) zu erstellen. Dieses Tutorial setzt nicht voraus, dass Sie mit Apache Maven oder Java vertraut sind.

Sie können mit der CodeBuild CodeBuild Konsole, AWS CodePipeline, dem oder dem AWS CLI arbeiten. AWS SDKs Dieses Tutorial zeigt die Verwendung CodeBuild mit dem AWS CLI. Hinweise zur Verwendung von CodePipeline finden Sie unter[Verwenden Sie CodeBuild mit CodePipeline](how-to-create-pipeline.md).

**Wichtig**  
Für die Schritte in diesem Tutorial müssen Sie Ressourcen (z. B. einen S3-Bucket) erstellen, die zu Gebühren für Ihr AWS Konto führen können. Dazu gehören mögliche Gebühren für CodeBuild und für AWS Ressourcen und Aktionen im Zusammenhang mit Amazon S3 und CloudWatch Logs. AWS KMS Weitere Informationen finden Sie unter [CodeBuildPreise](https://aws.amazon.com/codebuild/pricing), [Amazon S3 S3-Preise](https://aws.amazon.com/s3/pricing), [AWS Key Management Service Preise](https://aws.amazon.com/kms/pricing) und [ CloudWatch Amazon-Preise](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Schritt 1: Erstellen Sie den Quellcode
](#getting-started-cli-create-source-code)
+ [

### Schritt 2: Erstellen Sie die Buildspec-Datei
](#getting-started-cli-create-build-spec)
+ [

### Schritt 3: Erstellen Sie zwei S3-Buckets
](#getting-started-cli-input-bucket)
+ [

### Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei
](#getting-started-cli-upload-source-code)
+ [

### Schritt 5: Erstellen des Build-Projekts
](#getting-started-cli-create-build-project)
+ [

### Schritt 6: Ausführen des Builds
](#getting-started-cli-run-build)
+ [

### Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen
](#getting-started-cli-monitor-build)
+ [

### Schritt 8: Anzeigen der detaillierten Build-Informationen
](#getting-started-cli-build-log)
+ [

### Schritt 9: Abrufen des Build-Ausgabeartefakts
](#getting-started-cli-output)
+ [

### Schritt 10: Löschen Sie die S3-Buckets
](#getting-started-cli-clean-up)
+ [

### Nachbearbeitung
](#getting-started-cli-next-steps)

### Schritt 1: Erstellen Sie den Quellcode
<a name="getting-started-cli-create-source-code"></a>

(Teil von: [Erste Schritte mit der AWS CodeBuild Verwendung von AWS CLI](#getting-started-cli))

In diesem Schritt erstellen Sie den Quellcode, den Sie für den Ausgabe-Bucket erstellen möchten CodeBuild . 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 folgende Verzeichnisstruktur.

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

1. Erstellen Sie diese Datei mithilfe eines Texteditors, benennen Sie sie `MessageUtil.java` und speichern 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;
     }
   }
   ```

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

1. Erstellen Sie diese Datei, benennen Sie sie `TestMessageUtil.java` und speichern Sie sie im Verzeichnis `/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 festgelegt wurde, indem sie überprüft, ob die Zeichenfolgen `Robert` und `Hi!Robert` in der Ausgabe vorhanden sind.

1. 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>
       </plugins>
     </build>
   </project>
   ```

   Apache Maven verwendet die Anweisungen in dieser Datei, um die Dateien `MessageUtil.java` und `TestMessageUtil.java` in eine Datei namens `messageUtil-1.0.jar` zu konvertieren und dann die 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
```

### Schritt 2: Erstellen Sie die Buildspec-Datei
<a name="getting-started-cli-create-build-spec"></a>

(Vorheriger Schritt: [Schritt 1: Erstellen Sie den Quellcode](#getting-started-cli-create-source-code))

In diesem Schritt erstellen Sie eine Build-Spezifikationsdatei. Eine *Buildspec* ist eine Sammlung von Build-Befehlen und zugehörigen Einstellungen im YAML-Format, die zum Ausführen eines Builds verwendet werden. CodeBuild Ohne eine Build-Spezifikation können Sie Ihre Build-Eingabe CodeBuild nicht erfolgreich in eine Build-Ausgabe konvertieren oder das Build-Ausgabeartefakt in der Build-Umgebung finden, um es in Ihren Ausgabe-Bucket hochzuladen.

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
```

**Wichtig**  
Da es sich bei der Build-Spezifikationsdeklaration um eine gültige YAML handelt, ist die Formatierung in einer Build-Spezifikationsdeklaration wichtig. Wenn die Anzahl der Leerzeichen in 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. 

**Anmerkung**  
Statt eine Build-Spezifikationsdatei in Ihren Quellcode einzuschließen, können Sie Build-Befehle beim Erstellen eines Build-Projekts separat deklarieren. Das ist hilfreich, wenn Sie Ihren Quellcode mit unterschiedlichen Build-Befehlen erstellen möchten, ohne jedes Mal das Quellcode-Repository zu aktualisieren. Weitere Informationen finden Sie unter [Syntax der Build-Spezifikation](build-spec-ref.md#build-spec-ref-syntax).

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. Sie können die Schreibweise dieser Build-Phasennamen nicht ändern und Sie können keine zusätzlichen Build-Phasennamen erstellen. 

  In diesem Beispiel wird während der `build` Phase der Befehl CodeBuild ausgeführt. `mvn install` Dieser Befehl weist Apache Maven an, die Java-Klassendateien zu kompilieren, zu testen und die kompilierten Dateien in ein Build-Ausgabeartefakt zu verpacken. Der Vollständigkeit halber sind in diesem Beispiel einige `echo`-Befehle in jeder Build-Phase platziert. Wenn Sie die detaillierten Build-Informationen später in diesem Tutorial anzeigen, können Sie der Ausgabe dieser `echo`-Befehle entnehmen, wie und in welcher Reihenfolge CodeBuild Befehle ausführt. (Auch wenn alle Build-Phasen in diesem Beispiel enthalten sind, müssen Sie nicht unbedingt eine Build-Phase einschließen, wenn Sie nicht vorhaben, während dieser Phase Befehle auszuführen.) CodeBuild Führt in jeder Buildphase jeden angegebenen Befehl nacheinander in der angegebenen Reihenfolge von Anfang bis Ende aus. 
+ `artifacts`stellt den Satz von Build-Ausgabeartefakten dar, der in den Ausgabe-Bucket CodeBuild hochgeladen wird. `files`steht für die Dateien, die in die Build-Ausgabe aufgenommen werden sollen. CodeBuild lädt die einzelne `messageUtil-1.0.jar` Datei hoch, die sich im `target` entsprechenden Verzeichnis in der Build-Umgebung befindet. Der Dateiname `messageUtil-1.0.jar` und der Verzeichnisname `target`, unter denen Apache Maven Build-Ausgabeartefakte erstellt und speichert, gelten nur für dieses Beispiel. In Ihren eigenen Builds lauten diese Dateinamen und Verzeichnisse anders. 

Weitere Informationen hierzu finden Sie unter [Build-Spezifikationsreferenz](build-spec-ref.md).

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
```

### Schritt 3: Erstellen Sie zwei S3-Buckets
<a name="getting-started-cli-input-bucket"></a>

(Vorheriger Schritt: [Schritt 2: Erstellen Sie die Buildspec-Datei](#getting-started-cli-create-build-spec))

Auch wenn Sie einen einzelnen Bucket für dieses Tutorial verwenden können, ist mit zwei Buckets einfacher 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 Name dieses Eingabe-Buckets. Dabei handelt es `codebuild-region-ID-account-ID-input-bucket` sich *region-ID* um die AWS Region des Buckets und *account-ID* um Ihre AWS Konto-ID.
+ Der andere Bucket (*Ausgabe-Bucket*) nimmt die Build-Ausgabe auf. In diesem Tutorial ist der Name dieses 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 Tutorial verwenden.

Diese beiden Buckets müssen sich in derselben AWS Region wie Ihre Builds befinden. Wenn Sie beispielsweise angeben, dass ein CodeBuild Build in der Region USA Ost (Ohio) ausgeführt werden soll, müssen sich diese Buckets auch in der Region USA Ost (Ohio) befinden.

Weitere Informationen erhalten Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) im *Benutzerhandbuch für Amazon Simple Storage Service*. 

**Anmerkung**  
Unterstützt zwar CodeBuild auch Build-Eingaben, die in CodeCommit, GitHub, und Bitbucket-Repositorys gespeichert sind, aber dieses Tutorial zeigt dir nicht, wie du sie benutzt. Weitere Informationen finden Sie unter [Planen eines Builds](planning.md).

### Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei
<a name="getting-started-cli-upload-source-code"></a>

(Vorheriger Schritt: [Schritt 3: Erstellen Sie zwei S3-Buckets](#getting-started-cli-input-bucket))

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
```

**Wichtig**  
Schließen Sie nicht das Verzeichnis `(root directory name)` ein, sondern nur die Verzeichnisse 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`. 

**Wichtig**  
Für CodeCommit GitHub ,- und Bitbucket-Repositorys müssen Sie laut Konvention eine Build-Spezifikationsdatei mit dem Namen `buildspec.yml` im Stammverzeichnis (oberste Ebene) jedes Repositorys speichern oder die Build-Spezifikationsdeklaration als Teil der Build-Projektdefinition hinzufügen. Erstellen Sie keine ZIP-Datei, die den Quellcode und die Build-Spezifikationsdatei des Repositorys enthält.   
Bei Build-Eingaben, die nur in S3-Buckets gespeichert sind, müssen Sie eine ZIP-Datei erstellen, die den Quellcode enthält, und – gemäß Konvention – eine Build-Spezifikationsdatei namens `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. Weitere Informationen finden Sie unter [Dateiname der Build-Spezifikation und Speicherort](build-spec-ref.md#build-spec-ref-name-storage).

### Schritt 5: Erstellen des Build-Projekts
<a name="getting-started-cli-create-build-project"></a>

(Vorheriger Schritt: [Schritt 4: Hochladen des Quellcodes und der Build-Spezifikationsdatei](#getting-started-cli-upload-source-code))

In diesem Schritt erstellst du ein Build-Projekt, das zur Ausführung des Builds AWS CodeBuild verwendet wird. Ein *Build-Projekt* enthält Informationen darüber, wie ein Build ausgeführt wird, einschließlich der Herkunft des Quellcodes, der zu verwendenden Build-Umgebung, der auszuführenden Build-Befehle und des Speicherorts der Build-Ausgabe. Eine *Build-Umgebung* stellt eine Kombination aus Betriebssystem, Programmiersprache, Runtime und Tools dar, mit denen CodeBuild ein Build ausgeführt wird. Die Build-Umgebung wird als Docker-Image ausgedrückt. Weitere Informationen finden Sie unter [Docker Overview](https://docs.docker.com/get-started/overview/) auf der Docker Docs-Website. 

Für diese Build-Umgebung weisen Sie an, ein Docker-Image CodeBuild zu verwenden, das eine Version des Java Development Kit (JDK) und Apache Maven enthält.<a name="getting-started-cli-create-build-project-cli"></a>

**So erstellen Sie ein Build-Projekt**

1. Verwenden Sie den, AWS CLI um den Befehl auszuführen: **create-project**

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

   Daten im JSON-Format werden in der Ausgabe angezeigt. Kopieren Sie die Daten `create-project.json` in eine Datei mit dem Namen eines Speicherorts auf dem lokalen Computer oder der Instanz, auf der der installiert AWS CLI ist. Wenn Sie einen anderen Dateinamen verwenden, muss dieser Name im gesamten Tutorial verwendet werden.

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

   ```
   {
     "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/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "serviceIAMRole"
   }
   ```

   *serviceIAMRole*Ersetzen Sie es durch den Amazon-Ressourcennamen (ARN) einer CodeBuild Servicerolle (z. B.`arn:aws:iam::account-ID:role/role-name`). Informationen zum Erstellen finden Sie unter [Erlauben CodeBuild Sie die Interaktion mit anderen Diensten AWS](setting-up-service-role.md).

   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. 
   + For `type` ist ein erforderlicher Wert`source`, der den Repository-Typ des Quellcodes darstellt (in diesem Beispiel `S3` für einen Amazon S3 S3-Bucket).
   + Für `source` stellt `location` den Pfad zum Quellcode dar (in diesem Beispiel der Name des Empfangs-Buckets gefolgt vom ZIP-Dateinamen).
   + For `type` ist ein erforderlicher Wert`artifacts`, der den Repository-Typ des Build-Ausgabeartefakts darstellt (in diesem Beispiel `S3` für einen Amazon S3 S3-Bucket).
   + Für `artifacts` stellt `location` den Namen des Ausgabe-Buckets dar, den Sie zuvor erstellt oder definiert haben (in diesem Beispiel `codebuild-region-ID-account-ID-output-bucket`).
   + For `environment` `type` ist ein erforderlicher Wert, der den Typ der Build-Umgebung darstellt (in diesem Beispiel`LINUX_CONTAINER`).
   + For `image` ist ein erforderlicher Wert`environment`, der die Kombination aus Docker-Image-Name und -Tag darstellt, die dieses Build-Projekt verwendet, wie durch den Docker-Image-Repository-Typ angegeben (in diesem Beispiel `aws/codebuild/standard:5.0` für ein Docker-Image im CodeBuild Docker-Images-Repository). `aws/codebuild/standard`ist der Name des Docker-Images. `5.0`ist das Tag des Docker-Images. 

     Weitere Docker-Images, die Sie in Ihren Szenarien verwenden können, finden Sie unter [Build-Umgebungsreferenz](build-env-ref.md).
   + For `environment` `computeType` ist ein erforderlicher Wert, der die CodeBuild verwendeten Rechenressourcen darstellt (in diesem Beispiel`BUILD_GENERAL1_SMALL`).
**Anmerkung**  
Andere verfügbare Werte in den ursprünglichen JSON-formatierten Daten wie `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 verwendet und deshalb hier nicht aufgelistet. Weitere Informationen finden Sie unter [Erstellen eines Build-Projekts (AWS CLI)](create-project.md#create-project-cli).

1. Wechseln Sie in das Verzeichnis, das die soeben gespeicherte Datei enthält, und führen Sie den Befehl **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:5.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.
     + `packaging` gibt an, wie die Build-Ausgabeartefakte im Ausgabe-Bucket gespeichert werden. `NONE` bedeutet, dass ein Ordner im Ausgabe-Bucket erstellt wird. Das Build-Ausgabeartefakt wir in diesem Ordner gespeichert.
     + `lastModified` zeigt die Uhrzeit der letzten Änderung des Build-Projekts im Unix-Zeitformat an.
     + `timeoutInMinutes`steht für die Anzahl der Minuten, nach denen der Build CodeBuild beendet wird, falls der Build noch nicht abgeschlossen wurde. (Der Standardwert ist 60 Minuten.)
     + `created` zeigt die Uhrzeit der Erstellung des Build-Projekts im Unix-Zeitformat an.
     + `environmentVariables`steht für alle Umgebungsvariablen, die deklariert wurden und während des Builds verwendet werden können. CodeBuild 
     + `encryptionKey`stellt den ARN des vom Kunden verwalteten Schlüssels dar, der zur Verschlüsselung des Build-Ausgabeartefakts CodeBuild verwendet wurde.
     + `arn` zeigt den ARN des Build-Projekts an.

**Anmerkung**  
Nachdem Sie den **create-project** Befehl ausgeführt haben, wird möglicherweise eine Fehlermeldung ähnlich der folgenden ausgegeben: **User: *user-ARN* is not authorized to perform: codebuild:**. CreateProject Dies liegt höchstwahrscheinlich daran, dass Sie das AWS CLI mit den Anmeldeinformationen eines Benutzers konfiguriert haben, der nicht über ausreichende Berechtigungen CodeBuild zum Erstellen von Build-Projekten verfügt. Um dieses Problem zu beheben, konfigurieren Sie die AWS CLI mit Anmeldeinformationen, die zu einer der folgenden IAM-Entitäten gehören:   
Ein Administratorbenutzer in Ihrem AWS Konto. Weitere Informationen finden Sie im *Benutzerhandbuch* unter [Erstellen Ihres ersten AWS-Konto Root-Benutzers und Ihrer ersten Root-Gruppe](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html).
Ein Benutzer in Ihrem AWS Konto`AWSCodeBuildAdminAccess`, mit den `IAMFullAccess` verwalteten Richtlinien`AmazonS3ReadOnlyAccess`, die diesem Benutzer oder einer IAM-Gruppe zugeordnet sind, zu der der Benutzer gehört. Wenn Sie in Ihrem AWS Konto keinen Benutzer oder keine Gruppe mit diesen Berechtigungen haben und Sie diese Berechtigungen Ihrem Benutzer oder Ihrer Gruppe nicht hinzufügen können, wenden Sie sich an Ihren AWS Kontoadministrator, um Unterstützung zu erhalten. Weitere Informationen finden Sie unter [AWS verwaltete (vordefinierte) Richtlinien für AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).

### Schritt 6: Ausführen des Builds
<a name="getting-started-cli-run-build"></a>

(Vorheriger Schritt: [Schritt 5: Erstellen des Build-Projekts](#getting-started-cli-create-build-project))

In diesem Schritt weisen Sie an AWS CodeBuild , den Build mit den Einstellungen im Build-Projekt auszuführen.<a name="getting-started-run-build-cli"></a>

**So führen Sie den Build aus**

1. Verwenden Sie den AWS CLI , um den **start-build** Befehl auszuführen:

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

   *project-name*Ersetzen Sie es durch den Namen Ihres Build-Projekts aus dem vorherigen Schritt (z. B.`codebuild-demo-project`).

1. 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:5.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`). Andernfalls `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 ihn im nächsten Schritt.

### Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen
<a name="getting-started-cli-monitor-build"></a>

(Vorheriger Schritt: [Schritt 6: Ausführen des Builds](#getting-started-cli-run-build))

In diesem Schritt zeigen Sie eine Zusammenfassung der Informationen über den Build-Status an.<a name="getting-started-cli-monitor-build-cli"></a>

**So zeigen Sie eine Zusammenfassung der Build-Informationen an**
+ Verwenden Sie den AWS CLI , um den **batch-get-builds** Befehl auszuführen.

  ```
  aws codebuild batch-get-builds --ids id
  ```

  *id*Ersetzen Sie ihn durch den `id` Wert, der in der Ausgabe des vorherigen Schritts angezeigt wurde.

  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:5.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"      
      }
    ]
  }
  ```
  + `buildsNotFound`stellt den Build IDs für alle Builds dar, für die keine Informationen verfügbar sind. In diesem Beispiel sollte dies leer sein.
  + `builds` zeigt die Informationen für alle Builds an, für die Informationen verfügbar sind. In diesem Beispiel 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`, `endTime` und `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-builds** zum ersten Mal ausführen, sind möglicherweise nicht viele (oder gar keine) Phasen vorhanden. Nach mehrmaligem Ausführen des Befehls **batch-get-builds** mit derselben Build-ID sollten mehr Build-Phasen in der Ausgabe angezeigt werden.
    + `logs`stellt Informationen in Amazon CloudWatch Logs über die Logs des Builds dar.
    + `md5sum` MD5 und `sha256sum` repräsentieren SHA-256-Hashes des Ausgabeartefakts des Builds. Diese werden nur dann in der Ausgabe angezeigt, wenn der `packaging`-Wert des Build-Projekts auf `ZIP` gesetzt ist. (Sie haben diesen Wert nicht in diesem Tutorial festgelegt.) Sie können die Hash-Werte zusammen mit dem Prüfsummen-Tool verwenden, um die Dateiintegrität und die Authentizität zu bestätigen.
**Anmerkung**  
Sie können diese Hashes auch mit der Amazon S3 S3-Konsole anzeigen. Aktivieren Sie das Kontrollkästchen neben dem Build-Ausgabeartefakt. Wählen Sie dann **Actions (Aktionen)** und schließlich **Properties (Eigenschaften)** aus. **Erweitern Sie im **Eigenschaftenbereich** die Option **Metadaten** und sehen Sie sich die Werte für **x-amz-meta-codebuild-content-md5 und -content-sha256** an. x-amz-meta-codebuild** (In der Amazon S3 S3-Konsole sollte der **ETag**Wert des Build-Ausgabeartefakts weder als der Hash noch als MD5 SHA-256-Hash interpretiert werden.)  
Wenn Sie die verwenden AWS SDKs , um diese Hashes abzurufen, heißen die Werte und. `codebuild-content-md5` `codebuild-content-sha256` 
    + `endTime` zeigt die Uhrzeit für das Ende des Build-Prozesses im Unix-Zeitformat an.
**Anmerkung**  
Amazon S3-Metadaten haben einen CodeBuild Header namens`x-amz-meta-codebuild-buildarn`, `buildArn` der den CodeBuild Build enthält, der Artefakte in Amazon S3 veröffentlicht. Der `buildArn` wurde hinzugefügt, um die Quellenverfolgung für Benachrichtigungen zu ermöglichen und um zu referenzieren, aus welchem Build das Artefakt generiert wurde.

### Schritt 8: Anzeigen der detaillierten Build-Informationen
<a name="getting-started-cli-build-log"></a>

(Vorheriger Schritt: [Schritt 7: Anzeigen der Zusammenfassung der Build-Informationen](#getting-started-cli-monitor-build))

In diesem Schritt sehen Sie sich detaillierte Informationen zu Ihrem Build in CloudWatch Logs an.

**Anmerkung**  
 Um vertrauliche Informationen zu schützen, sind die folgenden Informationen in den CodeBuild Protokollen versteckt:   
 AWS Zugriffsschlüssel IDs. Weitere Informationen finden Sie unter [Verwaltung von Zugriffsschlüsseln für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) im *AWS Identity and Access Management Benutzerhandbuch*. 
 Mit dem Parameter Store angegebene Zeichenfolgen. Weitere Informationen finden Sie unter [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) und [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) im *Amazon EC2 Systems Manager Manager-Benutzerhandbuch*. 
 Zeichenketten, die angegeben wurden mit. AWS Secrets Manager Weitere Informationen finden Sie unter [Schlüsselverwaltung](security-key-management.md). <a name="getting-started-cli-build-log-cli"></a>

**So zeigen Sie detaillierte Build-Informationen an**

1. Wechseln Sie in Ihrem Webbrowser zum `deepLink`-Speicherort, der in der Ausgabe des vorherigen Schrittes 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`).

1. Im CloudWatch Log-Log-Stream können Sie die Protokollereignisse durchsuchen. Standardmäßig werden nur die letzten Protokollereignisse angezeigt. Um ältere Protokollereignisse anzuzeigen, blättern Sie zum Anfang der Liste.

1. In diesem Tutorial enthalten die meisten Protokollereignisse wahrscheinlich nicht benötigte detaillierte Informationen ü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 **Filter events** reduzieren. Wenn Sie beispielsweise `"[INFO]"` in das Feld **Filter events (Ereignisse filtern)** eingeben, werden nur Ereignisse angezeigt, die `[INFO]` enthalten. Weitere Informationen finden Sie unter [Filter- und Mustersyntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) im * CloudWatch Amazon-Benutzerhandbuch*.

Diese Teile eines CloudWatch Logs-Protokollstreams beziehen sich auf dieses 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 
[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 wurden die Phasen Pre-Build, Build und Post-Build CodeBuild erfolgreich abgeschlossen. Es hat die Komponententests ausgeführt und die Datei `messageUtil-1.0.jar` erfolgreich erstellt.

### Schritt 9: Abrufen des Build-Ausgabeartefakts
<a name="getting-started-cli-output"></a>

(Vorheriger Schritt: [Schritt 8: Anzeigen der detaillierten Build-Informationen](#getting-started-cli-build-log))

In diesem Schritt erhalten Sie die `messageUtil-1.0.jar` Datei, die CodeBuild erstellt und in den Ausgabe-Bucket hochgeladen wurde.

Sie können die CodeBuild Konsole oder die Amazon S3 S3-Konsole verwenden, um diesen Schritt abzuschließen.



**Um das Build-Ausgabeartefakt (AWS CodeBuild Konsole) abzurufen**

1. Wenn die CodeBuild Konsole noch geöffnet ist und die Seite mit den Build-Details aus dem vorherigen Schritt weiterhin angezeigt wird, wählen Sie den Tab **Build-Details** und scrollen Sie nach unten zum Abschnitt **Artefakte**. 
**Anmerkung**  
Wenn die Seite mit den Build-Details nicht angezeigt wird, wählen Sie in der Navigationsleiste **Build history** und dann den Link **Build run aus**.

1. Der Link zum Amazon S3 S3-Ordner befindet sich unter dem **Upload-Speicherort für Artefakte**. Dieser Link öffnet den Ordner in Amazon S3, in dem Sie die `messageUtil-1.0.jar` Build-Ausgabeartefaktdatei finden.

**Um das Build-Ausgabeartefakt abzurufen (Amazon S3 S3-Konsole)**

1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Öffnen Sie `codebuild-region-ID-account-ID-output-bucket`.

1. Öffnen Sie das Verzeichnis `codebuild-demo-project`.

1. Öffnen Sie den Ordner `target`, in dem Sie die Build-Ausgabeartefaktdatei `messageUtil-1.0.jar` finden.

### Schritt 10: Löschen Sie die S3-Buckets
<a name="getting-started-cli-clean-up"></a>

(Vorheriger Schritt: [Schritt 9: Abrufen des Build-Ausgabeartefakts](#getting-started-cli-output))

Um zu verhindern, dass Ihr AWS Konto ständig belastet wird, können Sie die in diesem Tutorial verwendeten Eingabe- und Ausgabe-Buckets löschen. Anweisungen finden Sie unter [Löschen oder Entleeren eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.

Wenn Sie den IAM-Benutzer oder einen Administrator-IAM-Benutzer verwenden, um diese Buckets zu löschen, benötigt der Benutzer mehr Zugriffsberechtigungen. Fügen Sie die folgende Anweisung zwischen den Markierungen (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*und*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) zu einer vorhandenen Zugriffsrichtlinie für den Benutzer hinzu. 

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Nachbearbeitung
<a name="getting-started-cli-next-steps"></a>



In diesem Tutorial haben Sie AWS CodeBuild früher eine Reihe von Java-Klassendateien in eine JAR-Datei umgewandelt. Anschließend haben Sie die Build-Ergebnisse angezeigt.

Sie können jetzt versuchen, es CodeBuild in Ihren eigenen Szenarien zu verwenden. Folgen Sie den Anweisungen in [Planen eines Builds](planning.md). Wenn Sie dazu noch nicht bereit sind, können Sie einige der Beispiele als Build erstellen. Weitere Informationen finden Sie unter [Anwendungsfallbasierte Beispiele für CodeBuild](use-case-based-samples.md). 