

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.

# Beispiel für Laufzeitversionen in einer Buildspec-Datei für CodeBuild
<a name="sample-runtime-versions"></a>

Wenn Sie das Amazon Linux 2 (AL2) -Standard-Image Version 1.0 oder höher oder das Ubuntu-Standard-Image Version 2.0 oder höher verwenden, können Sie im `runtime-versions` Abschnitt Ihrer Buildspec-Datei eine oder mehrere Laufzeiten angeben. Die folgenden Beispiele zeigen, wie Sie Ihre Projektlaufzeit ändern, mehr als eine Laufzeit angeben und eine Laufzeit angeben können, die von einer anderen Laufzeit abhängig ist. Hinweise zu unterstützten Laufzeiten finden Sie unter [Docker-Images bereitgestellt von CodeBuild](build-env-ref-available.md).

**Anmerkung**  
Wenn Sie Docker in Ihrem Build-Container verwenden, muss Ihr Build im privilegierten Modus ausgeführt werden. Weitere Informationen erhalten Sie unter [Manuelles Ausführen von AWS CodeBuild Builds](run-build.md) und [Erstellen Sie ein Build-Projekt in AWS CodeBuild](create-project.md). 

**Topics**
+ [Aktualisieren Sie die Runtime-Version in der Buildspec-Datei](sample-runtime-update-version.md)
+ [Zwei Laufzeiten angeben](sample-runtime-two-major-version-runtimes.md)

# Aktualisieren Sie die Runtime-Version in der Buildspec-Datei
<a name="sample-runtime-update-version"></a>

Sie können die von Ihrem Projekt verwendete Runtime auf eine neue Version ändern, indem Sie den `runtime-versions` Abschnitt Ihrer Buildspec-Datei aktualisieren. Die folgenden Beispiele zeigen, wie Sie Java-Versionen 8 und 11 angeben.
+ Ein `runtime-versions`-Abschnitt, der Version 8 von Java angibt:

  ```
  phases:
    install:
      runtime-versions:
        java: corretto8
  ```
+ Ein `runtime-versions`-Abschnitt, der Version 11 von Java angibt:

  ```
  phases:
    install:
      runtime-versions:
        java: corretto11
  ```

Die folgenden Beispiele zeigen, wie verschiedene Versionen von Python mit dem Ubuntu-Standard-Image 5.0 oder dem Amazon Linux 2-Standard-Image 3.0 spezifiziert werden:
+ Ein `runtime-versions` Abschnitt, der Python-Version 3.7 spezifiziert: 

  ```
  phases:
    install:
      runtime-versions:
        python: 3.7
  ```
+ Ein `runtime-versions` Abschnitt, der Python-Version 3.8 spezifiziert: 

  ```
  phases:
    install:
      runtime-versions:
        python: 3.8
  ```

Dieses Beispiel zeigt ein Projekt, das mit der Java-Laufzeitversion 8 beginnt und anschließend auf die Java-Laufzeitversion 10 aktualisiert wird. 

1. Laden Sie Maven herunter und installieren Sie es. Weitere Informationen finden Sie unter [Downloading Apache Maven](https://maven.apache.org/download.cgi) und [Installing Apache Maven](https://maven.apache.org/install.html) auf der Apache Maven-Website.

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

   ```
   mvn archetype:generate "-DgroupId=com.mycompany.app" "-DartifactId=ROOT" "-DarchetypeArtifactId=maven-archetype-webapp" "-DinteractiveMode=false"
   ```

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

   ```
   .
   └── ROOT
       ├── pom.xml
       └── src
           └── main
               ├── resources
               └── webapp
                   ├── WEB-INF
                   │   └── web.xml
                   └── index.jsp
   ```

1. Erstellen Sie eine Datei mit dem Namen `buildspec.yml` und dem folgenden Inhalt. Speichern Sie die Datei im Verzeichnis ` (root directory name)/my-web-app`. 

   ```
   version: 0.2
   
   phases:
     install:
       runtime-versions:
         java: corretto8
     build:
       commands:
         - java -version
         - mvn package
   artifacts:
     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
   ```

1. Laden Sie den Inhalt des `my-web-app` Verzeichnisses in einen S3-Eingabe-Bucket oder ein CodeCommit, GitHub, oder Bitbucket-Repository hoch. 
**Wichtig**  
Laden Sie nicht `(root directory name)` oder `(root directory name)/my-web-app` hoch, sondern nur die Verzeichnisse und Dateien in `(root directory name)/my-web-app`.   
Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen, die die Verzeichnisstruktur und die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. 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 `(root directory name)/my-web-app`.

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. Erstellen Sie ein Build-Projekt. Weitere Informationen erhalten Sie unter [Erstellen Sie ein Build-Projekt (Konsole)](create-project.md#create-project-console) und [Ausführen eines Build (Konsole)](run-build-console.md). Ü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 für **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** -x86\$164-standard:4.0. aws/codebuild/amazonlinux**

1. Wählen Sie **Start build (Build starten)**. 

1. Übernehmen Sie in der **Build configuration (Build-Konfiguration)** die Standardeinstellungen und wählen Sie dann **Start build (Build starten)**. 

1. Ü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/*;
   ```

1. Aktualisieren Sie den Abschnitt `runtime-versions` mit Java-Version 11: 

   ```
   install:
       runtime-versions:
         java: corretto11
   ```

1. Nachdem Sie die Änderung gespeichert haben, führen Sie Ihren Build erneut aus und zeigen Sie die Build-Ausgabe an. Es sollte angezeigt werden, dass Java Version 11 installiert 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 'corretto11' based on manual selections... 
   Installing Java version 11 ... 
    
   [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/*;
   ```

# Zwei Laufzeiten angeben
<a name="sample-runtime-two-major-version-runtimes"></a>

Sie können mehr als eine Runtime im selben Build-Projekt angeben. CodeBuild Dieses Beispielprojekt verwendet zwei Quelldateien: eine, die die Go-Laufzeit verwendet und eine, die die Node.js-Laufzeit verwendet. 

1. Erstellen Sie ein Verzeichnis mit dem Namen `my-source`. 

1. Erstellen Sie im Verzeichnis `my-source` ein Verzeichnis mit dem Namen `golang-app`. 

1. Erstellen Sie eine Datei mit dem Namen `hello.go` und dem folgenden Inhalt. Speichern Sie die Datei im Verzeichnis `golang-app`. 

   ```
   package main
   import "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")
   }
   ```

1. Erstellen Sie im Verzeichnis `my-source` ein Verzeichnis mit dem Namen `nodejs-app`. Es sollte sich auf derselben Ebene wie das Verzeichnis `golang-app` befinden. 

1. Erstellen Sie eine Datei mit dem Namen `index.js` und dem folgenden Inhalt. Speichern Sie die Datei im 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");
   ```

1. Erstellen Sie eine Datei mit dem Namen `package.json` und dem folgenden Inhalt. Speichern Sie die Datei im Verzeichnis `nodejs-app`. 

   ```
   {
     "name": "mycompany-app",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
       "test": "echo \"run some tests here\""
     },
     "author": "",
     "license": "ISC"
   }
   ```

1. Erstellen Sie eine Datei mit dem Namen `buildspec.yml` und dem folgenden Inhalt. Speichern Sie die Datei im Verzeichnis `my-source` auf der gleichen Ebene wie die Verzeichnisse `nodejs-app` und `golang-app`. `runtime-versions`In diesem Abschnitt werden die Laufzeiten Node.js Version 12 und Go Version 1.13 angegeben. 

   ```
   version: 0.2
   
   phases:
     install:
       runtime-versions:
         golang: 1.13
         nodejs: 12
     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 test
   artifacts:
     secondary-artifacts:
       golang_artifacts:
         base-directory: golang-app
         files:
           - hello
       nodejs_artifacts:
         base-directory: nodejs-app
         files:
           - index.js
           - package.json
   ```

1. Ihre Dateistruktur sollte nun wie folgt aussehen: 

   ```
   my-source
   ├── golang-app
   │   └── hello.go
   ├── nodejs.app
   │   ├── index.js
   │   └── package.json
   └── buildspec.yml
   ```

1. Laden Sie den Inhalt des `my-source` Verzeichnisses in einen S3-Eingabe-Bucket oder ein CodeCommit, GitHub, oder Bitbucket-Repository hoch.
**Wichtig**  
 Wenn Sie einen S3-Empfangs-Bucket verwenden, sollten Sie eine ZIP-Datei erstellen, die die Verzeichnisstruktur und die Dateien enthält, und diese dann in den Empfangs-Bucket hochladen. Fügen Sie `my-source` nicht zur ZIP-Datei hinzu, sondern nur die Verzeichnisse und Dateien in `my-source`.

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. Erstellen Sie ein Build-Projekt. Weitere Informationen erhalten Sie unter [Erstellen Sie ein Build-Projekt (Konsole)](create-project.md#create-project-console) und [Ausführen eines Build (Konsole)](run-build-console.md). Ü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 für **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** -x86\$164-standard:4.0. aws/codebuild/amazonlinux**

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

1. Wählen Sie **Start build (Build starten)**. 

1. Übernehmen Sie in der **Build configuration (Build-Konfiguration)** die Standardeinstellungen und wählen Sie dann **Start build (Build starten)**. 

1. Überprüfen Sie die Build-Ausgabe unter der Registerkarte **Build logs (Build-Protokolle)**, wenn der Build abgeschlossen ist. Die Ausgabe sollte in etwa wie folgt aussehen: Es wird die Ausgabe 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 '12' based on manual selections...
   [Container] Date Time Running command echo "Installing Go version 1.13 ..."
   Installing Go version 1.13 ... 
    
   [Container] Date Time Running command echo "Installing Node.js version 12 ..." 
   Installing Node.js version 12 ... 
    
   [Container] Date Time Running command n $NODE_12_VERSION
      installed : v12.20.1 (with npm 6.14.10)
   
   [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 
    
   > mycompany-app@1.0.0 test /codebuild/output/src924084119/src/nodejs-app 
   > echo "run some tests here" 
    
   run some tests here
   ```