

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新 buildspec 檔案中的執行時間版本
<a name="sample-runtime-update-version"></a>

您可以透過更新 buildspec 檔案的 `runtime-versions`區段，將專案使用的執行時間修改為新版本。以下範例說明如何指定 Java 版本 8 和 11。
+ 指定 Java 版本 8 的 `runtime-versions` 區段：

  ```
  phases:
    install:
      runtime-versions:
        java: corretto8
  ```
+ 指定 Java 版本 11 的 `runtime-versions` 區段：

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

下列範例示範如何使用 Ubuntu 標準映像 5.0 或 Amazon Linux 2 標準映像 3.0 指定不同版本的 Python：
+ 指定 Python 3.7 版的`runtime-versions`區段：

  ```
  phases:
    install:
      runtime-versions:
        python: 3.7
  ```
+ 指定 Python 3.8 版的`runtime-versions`區段：

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

此範例示範的專案最初使用 Java 8 執行時間，然後更新為 Java 版本 10 執行時間。

1. 下載並安裝 Maven。如需詳細資訊，請參閱 Apache Maven 網站上的[下載 Apache Maven](https://maven.apache.org/download.cgi) 和[安裝 Apache Maven](https://maven.apache.org/install.html)。

1. 切換至您本機電腦或執行個體上的空白目錄，然後執行此 Maven 命令。

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

   如果成功，則會建立此目錄結構和檔案。

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

1. 使用下列內容建立名為 `buildspec.yml` 的檔案。將檔案存放於 ` (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'
   ```

   在 buildspec 檔案中：
   + `runtime-versions` 區段指定專案使用 Java 執行時間版本 8。
   + `- java -version` 命令會顯示您的專案在建置時使用的 Java 版本。

   您的檔案結構現在看起來應如下。

   ```
   (root directory name)
   └── my-web-app
       ├── src
       │   ├── main
       │   ├── resources
       │   └── webapp
       │       └── WEB-INF
       │           └── web.xml
       │               └── index.jsp
       ├── buildspec.yml
       └── pom.xml
   ```

1. 將`my-web-app`目錄的內容上傳至 S3 輸入儲存貯體或 CodeCommit、GitHub 或 Bitbucket 儲存庫。
**重要**  
請勿上傳 `(root directory name)` 或 `(root directory name)/my-web-app`，僅上傳 `(root directory name)/my-web-app` 中的目錄和檔案即可。  
如果您使用的是 S3 輸入儲存貯體，請務必建立包含目錄結構和檔案的 ZIP 檔案，然後將其上傳至輸入儲存貯體。請勿將 `(root directory name)` 或 `(root directory name)/my-web-app` 新增至 ZIP 檔案，僅新增 `(root directory name)/my-web-app` 中的目錄和檔案即可。

1. 在 https：//[https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) 開啟 AWS CodeBuild 主控台。

1. 建立建置專案。如需詳細資訊，請參閱[建立組建專案 (主控台)](create-project.md#create-project-console)及[執行建置 (主控台)](run-build-console.md)。除了下列設定外，保留所有設定的預設值。
   + 針對 **Environment (環境)**：
     + 針對 **Environment image (環境映像)**，選擇 **Managed image (受管映像)**。
     + 針對 **Operating system** (作業系統)，請選擇 **Amazon Linux 2**。
     +  針對 **Runtime(s) (執行時間)**，選擇 **Standard (標準)**。
     + 針對**映像**，選擇 **aws/codebuild/amazonlinux-x86\$164-standard：4.0。**

1. 選擇 **Start build (開始組建)**。

1. 在 **Build configuration (組建組態)** 上，接受預設值，然後選擇 **Start build (開始組建)**。

1. 建置完成後，在 **Build logs (建置日誌)** 索引標籤上檢視建置輸出。您應該會看到類似下列的輸出：

   ```
   [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. 將 `runtime-versions` 區段更新為 Java 版本 11：

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

1. 在您儲存變更後，再次執行您的建置並檢視建置輸出。您應該會看到已安裝的 Java 版本是 11。您應該會看到類似下列的輸出：

   ```
   [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/*;
   ```