

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai dengan CodeBuild
<a name="getting-started-overview"></a>

Dalam tutorial berikut, Anda gunakan AWS CodeBuild untuk membangun kumpulan file masukan kode sumber sampel ke dalam versi kode sumber yang dapat diterapkan.

Kedua tutorial memiliki input dan hasil yang sama, tetapi yang satu menggunakan AWS CodeBuild konsol dan yang lainnya menggunakan AWS CLI. 

**penting**  
Kami tidak menyarankan Anda menggunakan akun AWS root Anda untuk menyelesaikan tutorial ini.

**Topics**
+ [

## Memulai dengan AWS CodeBuild menggunakan konsol
](#getting-started)
+ [

## Memulai dengan AWS CodeBuild menggunakan AWS CLI
](#getting-started-cli)

## Memulai dengan AWS CodeBuild menggunakan konsol
<a name="getting-started"></a>

*Dalam tutorial ini, Anda gunakan AWS CodeBuild untuk membangun kumpulan file input kode sumber sampel (*membangun artefak input* atau *membangun input*) ke dalam versi kode sumber yang dapat diterapkan (*membangun artefak keluaran atau keluaran build*).* Secara khusus, Anda menginstruksikan CodeBuild untuk menggunakan Apache Maven, alat build umum, untuk membangun satu set file kelas Java ke dalam file Java Archive (JAR). Anda tidak perlu terbiasa dengan Apache Maven atau Java untuk menyelesaikan tutorial ini.

Anda dapat bekerja dengan CodeBuild melalui CodeBuild konsol AWS CodePipeline, AWS CLI, atau AWS SDKs. Tutorial ini menunjukkan cara menggunakan CodeBuild konsol. Untuk informasi tentang penggunaan CodePipeline, lihat[Gunakan CodeBuild dengan CodePipeline](how-to-create-pipeline.md).

**penting**  
Langkah-langkah dalam tutorial ini mengharuskan Anda untuk membuat sumber daya (misalnya, bucket S3) yang dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeBuild dan untuk AWS sumber daya dan tindakan yang terkait dengan Amazon S3, AWS KMS, dan CloudWatch Log. Untuk informasi selengkapnya, lihat [AWS CodeBuild harga, harga](https://aws.amazon.com/codebuild/pricing) [Amazon S3, [AWS Key Management Service harga](https://aws.amazon.com/kms/pricing)](https://aws.amazon.com/s3/pricing), dan harga [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Langkah 1: Buat kode sumber
](#getting-started-create-source-code-console)
+ [

### Langkah 2: Buat file buildspec
](#getting-started-create-build-spec-console)
+ [

### Langkah 3: Buat dua ember S3
](#getting-started-input-bucket-console)
+ [

### Langkah 4: Unggah kode sumber dan file buildspec
](#getting-started-upload-source-code-console)
+ [

### Langkah 5: Buat proyek build
](#getting-started-create-build-project-console)
+ [

### Langkah 6: Jalankan build
](#getting-started-run-build-console)
+ [

### Langkah 7: Lihat informasi build yang dirangkum
](#getting-started-monitor-build-console)
+ [

### Langkah 8: Lihat informasi build terperinci
](#getting-started-build-log-console)
+ [

### Langkah 9: Dapatkan artefak keluaran build
](#getting-started-output-console)
+ [

### Langkah 10: Hapus ember S3
](#getting-started-clean-up-console)
+ [

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

### Langkah 1: Buat kode sumber
<a name="getting-started-create-source-code-console"></a>

(Bagian dari:[Memulai dengan AWS CodeBuild menggunakan konsol](#getting-started))

Pada langkah ini, Anda membuat kode sumber yang CodeBuild ingin Anda buat ke bucket keluaran. Kode sumber ini terdiri dari dua file kelas Java dan file Apache Maven Project Object Model (POM).

1. Di direktori kosong di komputer atau instance lokal Anda, buat struktur direktori ini.

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

1. Menggunakan editor teks pilihan Anda, buat file ini, beri nama`MessageUtil.java`, lalu simpan di `src/main/java` direktori.

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

   File kelas ini menciptakan sebagai output string karakter yang dilewatkan ke dalamnya. `MessageUtil`Konstruktor menetapkan string karakter. `printMessage`Metode ini menciptakan output. Output `salutationMessage` metode `Hi!` diikuti oleh string karakter.

1. Buat file ini, beri nama`TestMessageUtil.java`, lalu simpan di `/src/test/java` direktori.

   ```
   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());
     }
   }
   ```

   File kelas ini menetapkan `message` variabel di `MessageUtil` kelas untuk`Robert`. Kemudian tes untuk melihat apakah `message` variabel berhasil diatur dengan memeriksa apakah string `Robert` dan `Hi!Robert` muncul dalam output.

1. Buat file ini, beri nama`pom.xml`, lalu simpan di direktori root (tingkat atas).

   ```
   <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 menggunakan instruksi dalam file ini untuk mengonversi file `MessageUtil.java` dan menjadi `TestMessageUtil.java` file bernama `messageUtil-1.0.jar` dan kemudian menjalankan tes yang ditentukan. 

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

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

### Langkah 2: Buat file buildspec
<a name="getting-started-create-build-spec-console"></a>

(Langkah sebelumnya: [Langkah 1: Buat kode sumber](#getting-started-create-source-code-console))

Pada langkah ini, Anda membuat file spesifikasi build (spesifikasi build). *Buildspec* adalah kumpulan perintah build dan pengaturan terkait, dalam format YAMB, yang CodeBuild digunakan untuk menjalankan build. Tanpa spesifikasi build, CodeBuild tidak dapat berhasil mengonversi input build Anda menjadi keluaran build atau menemukan artefak keluaran build di lingkungan build untuk diunggah ke bucket keluaran Anda.

Buat file ini, beri nama`buildspec.yml`, lalu simpan di direktori root (tingkat atas).

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

**penting**  
Karena deklarasi spesifikasi build harus YAMM yang valid, spasi dalam deklarasi spesifikasi build menjadi penting. Jika jumlah spasi dalam deklarasi spesifikasi build Anda tidak cocok dengan yang ini, build mungkin akan segera gagal. Anda dapat menggunakan validator YAMB untuk menguji apakah deklarasi spesifikasi build Anda adalah YAMB yang valid. 

**catatan**  
Alih-alih menyertakan file spesifikasi build dalam kode sumber, Anda dapat mendeklarasikan perintah build secara terpisah saat membuat project build. Ini sangat membantu jika Anda ingin membangun kode sumber Anda dengan perintah build yang berbeda tanpa memperbarui repositori kode sumber Anda setiap kali. Untuk informasi selengkapnya, lihat [Sintaks Buildspec](build-spec-ref.md#build-spec-ref-syntax).

Dalam deklarasi spesifikasi build ini:
+ `version`mewakili versi standar spesifikasi build yang digunakan. Deklarasi spesifikasi build ini menggunakan versi terbaru,`0.2`.
+ `phases`mewakili fase build di mana Anda dapat menginstruksikan CodeBuild untuk menjalankan perintah. Fase build ini tercantum di sini sebagai`install`,`pre_build`,`build`, dan`post_build`. Anda tidak dapat mengubah ejaan nama fase build ini, dan Anda tidak dapat membuat lebih banyak nama fase build. 

  Dalam contoh ini, selama `build` fase, CodeBuild jalankan `mvn install` perintah. Perintah ini menginstruksikan Apache Maven untuk mengkompilasi, menguji, dan mengemas file kelas Java yang dikompilasi ke dalam artefak keluaran build. Untuk kelengkapan, beberapa `echo` perintah ditempatkan di setiap fase build dalam contoh ini. Ketika Anda melihat informasi build rinci nanti dalam tutorial ini, output dari `echo` perintah ini dapat membantu Anda lebih memahami bagaimana CodeBuild menjalankan perintah dan urutan apa. (Meskipun semua fase build disertakan dalam contoh ini, Anda tidak diharuskan menyertakan fase build jika Anda tidak berencana menjalankan perintah apa pun selama fase tersebut.) Untuk setiap fase build, CodeBuild jalankan setiap perintah yang ditentukan, satu per satu, dalam urutan yang terdaftar, dari awal hingga akhir. 
+ `artifacts`mewakili kumpulan artefak keluaran build yang CodeBuild diunggah ke bucket keluaran. `files`mewakili file yang akan disertakan dalam output build. CodeBuild mengunggah `messageUtil-1.0.jar` file tunggal yang ditemukan di direktori `target` relatif di lingkungan build. Nama file `messageUtil-1.0.jar` dan nama direktori `target` didasarkan pada cara Apache Maven membuat dan menyimpan artefak keluaran build untuk contoh ini saja. Dalam build Anda sendiri, nama file dan direktori ini berbeda. 

Untuk informasi selengkapnya, lihat [Referensi Buildspec](build-spec-ref.md).

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

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

### Langkah 3: Buat dua ember S3
<a name="getting-started-input-bucket-console"></a>

(Langkah sebelumnya: [Langkah 2: Buat file buildspec](#getting-started-create-build-spec-console))

Meskipun Anda dapat menggunakan satu bucket untuk tutorial ini, dua bucket memudahkan untuk melihat dari mana input build berasal dan ke mana output build akan pergi.
+ Salah satu bucket ini (*bucket input*) menyimpan input build. Dalam tutorial ini, nama bucket input ini adalah`codebuild-region-ID-account-ID-input-bucket`, di mana *region-ID* adalah AWS Region bucket dan *account-ID* merupakan ID AWS akun Anda.
+ Bucket lainnya (*ember keluaran*) menyimpan output build. Dalam tutorial ini, nama bucket keluaran ini adalah`codebuild-region-ID-account-ID-output-bucket`.

Jika Anda memilih nama yang berbeda untuk ember ini, pastikan untuk menggunakannya di seluruh tutorial ini.

Kedua ember ini harus berada di AWS Wilayah yang sama dengan bangunan Anda. Misalnya, jika Anda menginstruksikan CodeBuild untuk menjalankan bangunan di Wilayah Timur AS (Ohio), ember ini juga harus berada di Wilayah Timur AS (Ohio).

Untuk informasi selengkapnya, lihat [Membuat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

**catatan**  
Meskipun CodeBuild juga mendukung input build yang disimpan di CodeCommit GitHub,, dan repositori Bitbucket, tutorial ini tidak menunjukkan cara menggunakannya. Untuk informasi selengkapnya, lihat [Rencanakan pembangunan](planning.md).

### Langkah 4: Unggah kode sumber dan file buildspec
<a name="getting-started-upload-source-code-console"></a>

(Langkah sebelumnya: [Langkah 3: Buat dua ember S3](#getting-started-input-bucket-console))

Pada langkah ini, Anda menambahkan kode sumber dan membangun file spesifikasi ke bucket input.

Menggunakan utilitas zip sistem operasi Anda, buat file bernama `MessageUtil.zip` yang mencakup`MessageUtil.java`,`TestMessageUtil.java`,`pom.xml`, dan`buildspec.yml`. 

Struktur direktori `MessageUtil.zip` file harus terlihat seperti ini.

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

**penting**  
Jangan sertakan `(root directory name)` direktori, hanya direktori dan file di `(root directory name)` direktori.

Unggah `MessageUtil.zip` file ke bucket input bernama`codebuild-region-ID-account-ID-input-bucket`. 

**penting**  
Untuk CodeCommit, GitHub, dan repositori Bitbucket, menurut konvensi, Anda harus menyimpan file spesifikasi build bernama `buildspec.yml` di root (tingkat atas) setiap repositori atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build. Jangan membuat file ZIP yang berisi kode sumber repositori dan membangun file spesifikasi.   
Untuk input build yang disimpan di bucket S3 saja, Anda harus membuat file ZIP yang berisi kode sumber dan, menurut konvensi, file spesifikasi build yang diberi nama `buildspec.yml` di root (tingkat atas) atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build.  
Jika Anda ingin menggunakan nama yang berbeda untuk file spesifikasi build, atau Anda ingin mereferensikan spesifikasi build di lokasi selain root, Anda dapat menentukan penggantian spesifikasi build sebagai bagian dari definisi proyek build. Untuk informasi selengkapnya, lihat [Nama file Buildspec dan lokasi penyimpanan](build-spec-ref.md#build-spec-ref-name-storage).

### Langkah 5: Buat proyek build
<a name="getting-started-create-build-project-console"></a>

(Langkah sebelumnya: [Langkah 4: Unggah kode sumber dan file buildspec](#getting-started-upload-source-code-console))

Pada langkah ini, Anda membuat proyek build yang AWS CodeBuild digunakan untuk menjalankan build. *Proyek build* mencakup informasi tentang cara menjalankan build, termasuk tempat mendapatkan kode sumber, lingkungan build mana yang akan digunakan, perintah build mana yang akan dijalankan, dan tempat menyimpan output build. *Lingkungan build* mewakili kombinasi sistem operasi, runtime bahasa pemrograman, dan alat yang CodeBuild digunakan untuk menjalankan build. Lingkungan build dinyatakan sebagai image Docker. Untuk informasi selengkapnya, lihat [ikhtisar Docker](https://docs.docker.com/get-started/overview/) di situs web Docker Docs. 

Untuk lingkungan build ini, Anda menginstruksikan CodeBuild untuk menggunakan image Docker yang berisi versi Java Development Kit (JDK) dan Apache Maven.<a name="getting-started-create-build-project-console-procedure"></a>

**Untuk membuat proyek build**

1. Masuk ke Konsol Manajemen AWS dan buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Gunakan pemilih AWS wilayah untuk memilih AWS Wilayah yang CodeBuild didukung. Untuk informasi selengkapnya, lihat [AWS CodeBuild titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) di. *Referensi Umum Amazon Web Services*

1.  Jika halaman CodeBuild informasi ditampilkan, pilih **Buat proyek build**. Jika tidak, pada panel navigasi, perluas **Build**, pilih **Build projects**, lalu pilih **Create build project**. 

1. Pada halaman **Create build project**, dalam **konfigurasi Project**, untuk **nama Project**, masukkan nama untuk proyek build ini (dalam contoh ini,`codebuild-demo-project`). Membangun nama proyek harus unik di setiap AWS akun. Jika Anda menggunakan nama yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.
**catatan**  
Pada halaman **Buat proyek build**, Anda mungkin melihat pesan galat yang mirip dengan berikut ini: **Anda tidak berwenang untuk melakukan operasi ini.** . Ini kemungkinan besar karena Anda masuk ke Konsol Manajemen AWS sebagai pengguna yang tidak memiliki izin untuk membuat proyek build.. Untuk memperbaikinya, keluar dari Konsol Manajemen AWS, lalu masuk kembali dengan kredensil milik salah satu entitas IAM berikut:   
Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat [Membuat pengguna dan grup Akun AWS root pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) di *Panduan pengguna*.
Pengguna di AWS akun Anda dengan`AWSCodeBuildAdminAccess`,`AmazonS3ReadOnlyAccess`, dan kebijakan `IAMFullAccess` terkelola yang dilampirkan ke pengguna tersebut atau ke grup IAM yang menjadi milik pengguna tersebut. Jika Anda tidak memiliki pengguna atau grup di AWS akun Anda dengan izin ini, dan Anda tidak dapat menambahkan izin ini ke pengguna atau grup Anda, hubungi administrator AWS akun Anda untuk mendapatkan bantuan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola (standar) untuk AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).
Kedua opsi termasuk izin administrator yang memungkinkan Anda membuat proyek build sehingga Anda dapat menyelesaikan tutorial ini. Sebaiknya Anda selalu menggunakan izin minimum yang diperlukan untuk menyelesaikan tugas Anda. Untuk informasi selengkapnya, lihat [AWS CodeBuild referensi izin](auth-and-access-control-permissions-reference.md).

1. Di **Sumber**, untuk **penyedia Sumber**, pilih **Amazon S3**.

1. Untuk **Bucket**, pilih **codebuild- *region-ID* - *account-ID* -input-bucket**.

1.  Untuk **kunci objek S3**, masukkan**MessageUtil.zip**.

1. Di **Lingkungan**, untuk **gambar Lingkungan**, biarkan **gambar Terkelola** dipilih.

1. Untuk **sistem operasi**, pilih **Amazon Linux**.

1. Untuk **Runtime**, pilih **Standar**.

1. Untuk **Gambar**, pilih **aws/codebuild/amazonlinux-x86\$164-standard:corretto11**.

1. Dalam **peran Layanan**, biarkan **peran layanan baru** dipilih, dan biarkan **nama Peran** tidak berubah.

1. Untuk **Buildspec**, biarkan **Gunakan file buildspec yang dipilih**.

1. Di **Artefak**, untuk **Jenis**, pilih **Amazon** S3.

1. Untuk **nama Bucket**, pilih **codebuild- *region-ID* - *account-ID* -output-bucket**.

1. Biarkan **Nama** dan **Jalur** kosong.

1. Pilih **Buat proyek build**.

### Langkah 6: Jalankan build
<a name="getting-started-run-build-console"></a>

(Langkah sebelumnya: [Langkah 5: Buat proyek build](#getting-started-create-build-project-console))

Pada langkah ini, Anda menginstruksikan AWS CodeBuild untuk menjalankan build dengan pengaturan dalam proyek build.<a name="getting-started-run-build-console-console-procedure"></a>

**Untuk menjalankan build**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Di panel navigasi, pilih **Membangun proyek**.

1. Dalam daftar proyek build, pilih **codebuild-demo-project**, lalu pilih **Start build**. Pembangunan segera dimulai.

### Langkah 7: Lihat informasi build yang dirangkum
<a name="getting-started-monitor-build-console"></a>

(Langkah sebelumnya: [Langkah 6: Jalankan build](#getting-started-run-build-console))

Pada langkah ini, Anda melihat informasi yang dirangkum tentang status build Anda.

#### Untuk melihat informasi build yang dirangkum
<a name="getting-started-monitor-build-console-title"></a><a name="getting-started-run-build-console-procedure"></a>

1. Jika *<build-ID>* halaman **codebuild-demo-project:** tidak ditampilkan, di bilah navigasi, pilih **Riwayat build**. Selanjutnya, dalam daftar proyek build, untuk **Project**, pilih tautan **Build run** untuk **codebuild-demo-project**. Seharusnya hanya ada satu tautan yang cocok. (Jika Anda telah menyelesaikan tutorial ini sebelumnya, pilih tautan dengan nilai terbaru di kolom **Selesai**.)

1. Pada halaman **status Build**, dalam **rincian Fase**, fase build berikut harus ditampilkan, dengan **Succeeded** di kolom **Status**:
   + **DIKIRIM**
   + **ANTRIAN**
   + **PENYEDIAAN**
   + **UNDUH\$1SUMBER**
   + **MENGINSTAL**
   + **PRE\$1BUILD**
   + **MEMBANGUN**
   + **POST\$1BUILD**
   + **UPLOAD\$1ARTEFAK**
   + **FINALISASI**
   + **SELESAI**

   Di **Status Build**, **Succeeded** harus ditampilkan.

   Jika Anda melihat **Dalam Proses** sebagai gantinya, pilih tombol segarkan. 

1. Di samping setiap fase build, nilai **Durasi** menunjukkan berapa lama fase build berlangsung. Nilai **Waktu akhir** menunjukkan kapan fase build itu berakhir.

### Langkah 8: Lihat informasi build terperinci
<a name="getting-started-build-log-console"></a>

(Langkah sebelumnya: [Langkah 7: Lihat informasi build yang dirangkum](#getting-started-monitor-build-console))

Pada langkah ini, Anda melihat informasi mendetail tentang build Anda di CloudWatch Log.

**catatan**  
 Untuk melindungi informasi sensitif, berikut ini disembunyikan di CodeBuild log:   
 AWS kunci akses IDs. Untuk informasi selengkapnya, lihat [Mengelola Kunci Akses untuk Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan AWS Identity and Access Management Pengguna*. 
 String ditentukan menggunakan Parameter Store. Untuk informasi selengkapnya, lihat [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) dan [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) di Panduan Pengguna *Amazon EC2 Systems* Manager. 
 String ditentukan menggunakan AWS Secrets Manager. Untuk informasi selengkapnya, lihat [Manajemen kunci](security-key-management.md). <a name="getting-started-build-log-console-procedure"></a>

**Untuk melihat informasi build yang mendetail**

1. Dengan halaman detail build yang masih ditampilkan dari langkah sebelumnya, 10.000 baris terakhir dari log build akan ditampilkan di **log Build**. Untuk melihat seluruh log build di CloudWatch Log, pilih tautan **Lihat seluruh log**. 

1. Di aliran CloudWatch log Log, Anda dapat menelusuri peristiwa log. Secara default, hanya kumpulan peristiwa log terakhir yang ditampilkan. Untuk melihat peristiwa log sebelumnya, gulir ke awal daftar.

1. Dalam tutorial ini, sebagian besar peristiwa log berisi informasi verbose tentang CodeBuild mengunduh dan menginstal file ketergantungan build ke dalam lingkungan build-nya, yang mungkin tidak Anda pedulikan. Anda dapat menggunakan kotak **Filter peristiwa** untuk mengurangi informasi yang ditampilkan. Misalnya, jika Anda memasukkan `"[INFO]"` **acara Filter**, hanya peristiwa yang berisi yang `[INFO]` ditampilkan. Untuk informasi selengkapnya, lihat [Filter dan sintaks pola](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) di *Panduan CloudWatch Pengguna Amazon*.

### Langkah 9: Dapatkan artefak keluaran build
<a name="getting-started-output-console"></a>

(Langkah sebelumnya: [Langkah 8: Lihat informasi build terperinci](#getting-started-build-log-console))

Pada langkah ini, Anda mendapatkan `messageUtil-1.0.jar` file yang CodeBuild dibangun dan diunggah ke bucket output.

Anda dapat menggunakan CodeBuild konsol atau konsol Amazon S3 untuk menyelesaikan langkah ini.



**Untuk mendapatkan artefak keluaran build (AWS CodeBuild konsol)**

1. Dengan CodeBuild konsol masih terbuka dan halaman detail build masih ditampilkan dari langkah sebelumnya, pilih tab **Build details** dan gulir ke bawah ke bagian **Artefacts**. 
**catatan**  
Jika halaman detail build tidak ditampilkan, di bilah navigasi, pilih **Riwayat build**, lalu pilih tautan **Build run**.

1. Tautan ke folder Amazon S3 berada di bawah lokasi unggah **Artefak**. Tautan ini membuka folder di Amazon S3 tempat Anda menemukan file artefak keluaran `messageUtil-1.0.jar` build.

**Untuk mendapatkan artefak keluaran build (konsol Amazon S3)**

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Buka `codebuild-region-ID-account-ID-output-bucket`.

1. Buka folder `codebuild-demo-project`.

1. Buka `target` folder, tempat Anda menemukan file artefak keluaran `messageUtil-1.0.jar` build.

### Langkah 10: Hapus ember S3
<a name="getting-started-clean-up-console"></a>

(Langkah sebelumnya: [Langkah 9: Dapatkan artefak keluaran build](#getting-started-output-console))

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda, Anda dapat menghapus bucket input dan output yang digunakan dalam tutorial ini. Untuk petunjuk, lihat [Menghapus atau Mengosongkan Bucket di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) Pengguna *Layanan Penyimpanan Sederhana Amazon*.

Jika Anda menggunakan pengguna IAM atau pengguna IAM administrator untuk menghapus bucket ini, pengguna harus memiliki lebih banyak izin akses. Tambahkan pernyataan berikut di antara penanda (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*dan*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) ke kebijakan akses yang ada untuk pengguna. 

Elips (...) dalam pernyataan ini digunakan untuk singkatnya. Jangan menghapus pernyataan apa pun dalam kebijakan akses yang ada. Jangan masukkan elips ini ke dalam kebijakan.

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

****  

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

------

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



Dalam tutorial ini, Anda digunakan AWS CodeBuild untuk membangun satu set file kelas Java ke dalam file JAR. Anda kemudian melihat hasil build.

Anda sekarang dapat mencoba menggunakan CodeBuild dalam skenario Anda sendiri. Ikuti petunjuk dalam [Rencanakan pembangunan](planning.md). Jika Anda belum merasa siap, Anda mungkin ingin mencoba membuat beberapa sampel. Untuk informasi selengkapnya, lihat [Gunakan sampel berbasis kasus untuk CodeBuild](use-case-based-samples.md). 

## Memulai dengan AWS CodeBuild menggunakan AWS CLI
<a name="getting-started-cli"></a>

*Dalam tutorial ini, Anda gunakan AWS CodeBuild untuk membangun kumpulan file input kode sumber sampel (disebut *artefak input build* atau *input build*) ke dalam versi kode sumber yang dapat diterapkan (disebut *artefak keluaran build atau output build*).* Secara khusus, Anda menginstruksikan CodeBuild untuk menggunakan Apache Maven, alat build umum, untuk membangun satu set file kelas Java ke dalam file Java Archive (JAR). Anda tidak perlu terbiasa dengan Apache Maven atau Java untuk menyelesaikan tutorial ini.

Anda dapat bekerja dengan CodeBuild melalui CodeBuild konsol AWS CodePipeline, AWS CLI, atau AWS SDKs. Tutorial ini menunjukkan bagaimana menggunakan CodeBuild dengan. AWS CLI Untuk informasi tentang penggunaan CodePipeline, lihat[Gunakan CodeBuild dengan CodePipeline](how-to-create-pipeline.md).

**penting**  
Langkah-langkah dalam tutorial ini mengharuskan Anda untuk membuat sumber daya (misalnya, bucket S3) yang dapat mengakibatkan biaya ke AWS akun Anda. Ini termasuk kemungkinan biaya untuk CodeBuild dan untuk AWS sumber daya dan tindakan yang terkait dengan Amazon S3, AWS KMS, dan CloudWatch Log. Untuk informasi selengkapnya, lihat [CodeBuildharga, harga](https://aws.amazon.com/codebuild/pricing) [Amazon S3, [AWS Key Management Service harga](https://aws.amazon.com/kms/pricing)](https://aws.amazon.com/s3/pricing), dan harga [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [

### Langkah 1: Buat kode sumber
](#getting-started-cli-create-source-code)
+ [

### Langkah 2: Buat file buildspec
](#getting-started-cli-create-build-spec)
+ [

### Langkah 3: Buat dua ember S3
](#getting-started-cli-input-bucket)
+ [

### Langkah 4: Unggah kode sumber dan file buildspec
](#getting-started-cli-upload-source-code)
+ [

### Langkah 5: Buat proyek build
](#getting-started-cli-create-build-project)
+ [

### Langkah 6: Jalankan build
](#getting-started-cli-run-build)
+ [

### Langkah 7: Lihat informasi build yang dirangkum
](#getting-started-cli-monitor-build)
+ [

### Langkah 8: Lihat informasi build terperinci
](#getting-started-cli-build-log)
+ [

### Langkah 9: Dapatkan artefak keluaran build
](#getting-started-cli-output)
+ [

### Langkah 10: Hapus ember S3
](#getting-started-cli-clean-up)
+ [

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

### Langkah 1: Buat kode sumber
<a name="getting-started-cli-create-source-code"></a>

(Bagian dari:[Memulai dengan AWS CodeBuild menggunakan AWS CLI](#getting-started-cli))

Pada langkah ini, Anda membuat kode sumber yang CodeBuild ingin Anda buat ke bucket keluaran. Kode sumber ini terdiri dari dua file kelas Java dan file Apache Maven Project Object Model (POM).

1. Di direktori kosong di komputer atau instance lokal Anda, buat struktur direktori ini.

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

1. Menggunakan editor teks pilihan Anda, buat file ini, beri nama`MessageUtil.java`, lalu simpan di `src/main/java` direktori.

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

   File kelas ini menciptakan sebagai output string karakter yang dilewatkan ke dalamnya. `MessageUtil`Konstruktor menetapkan string karakter. `printMessage`Metode ini menciptakan output. Output `salutationMessage` metode `Hi!` diikuti oleh string karakter.

1. Buat file ini, beri nama`TestMessageUtil.java`, lalu simpan di `/src/test/java` direktori.

   ```
   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());
     }
   }
   ```

   File kelas ini menetapkan `message` variabel di `MessageUtil` kelas untuk`Robert`. Kemudian tes untuk melihat apakah `message` variabel berhasil diatur dengan memeriksa apakah string `Robert` dan `Hi!Robert` muncul dalam output.

1. Buat file ini, beri nama`pom.xml`, lalu simpan di direktori root (tingkat atas).

   ```
   <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 menggunakan instruksi dalam file ini untuk mengonversi file `MessageUtil.java` dan menjadi `TestMessageUtil.java` file bernama `messageUtil-1.0.jar` dan kemudian menjalankan tes yang ditentukan. 

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

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

### Langkah 2: Buat file buildspec
<a name="getting-started-cli-create-build-spec"></a>

(Langkah sebelumnya: [Langkah 1: Buat kode sumber](#getting-started-cli-create-source-code))

Pada langkah ini, Anda membuat file spesifikasi build (spesifikasi build). *Buildspec* adalah kumpulan perintah build dan pengaturan terkait, dalam format YAMB, yang CodeBuild digunakan untuk menjalankan build. Tanpa spesifikasi build, CodeBuild tidak dapat berhasil mengonversi input build Anda menjadi keluaran build atau menemukan artefak keluaran build di lingkungan build untuk diunggah ke bucket keluaran Anda.

Buat file ini, beri nama`buildspec.yml`, lalu simpan di direktori root (tingkat atas).

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

**penting**  
Karena deklarasi spesifikasi build harus YAMM yang valid, spasi dalam deklarasi spesifikasi build menjadi penting. Jika jumlah spasi dalam deklarasi spesifikasi build Anda tidak cocok dengan yang ini, build mungkin akan segera gagal. Anda dapat menggunakan validator YAMB untuk menguji apakah deklarasi spesifikasi build Anda adalah YAMB yang valid. 

**catatan**  
Alih-alih menyertakan file spesifikasi build dalam kode sumber, Anda dapat mendeklarasikan perintah build secara terpisah saat membuat project build. Ini sangat membantu jika Anda ingin membangun kode sumber Anda dengan perintah build yang berbeda tanpa memperbarui repositori kode sumber Anda setiap kali. Untuk informasi selengkapnya, lihat [Sintaks Buildspec](build-spec-ref.md#build-spec-ref-syntax).

Dalam deklarasi spesifikasi build ini:
+ `version`mewakili versi standar spesifikasi build yang digunakan. Deklarasi spesifikasi build ini menggunakan versi terbaru,`0.2`.
+ `phases`mewakili fase build di mana Anda dapat menginstruksikan CodeBuild untuk menjalankan perintah. Fase build ini tercantum di sini sebagai`install`,`pre_build`,`build`, dan`post_build`. Anda tidak dapat mengubah ejaan nama fase build ini, dan Anda tidak dapat membuat lebih banyak nama fase build. 

  Dalam contoh ini, selama `build` fase, CodeBuild jalankan `mvn install` perintah. Perintah ini menginstruksikan Apache Maven untuk mengkompilasi, menguji, dan mengemas file kelas Java yang dikompilasi ke dalam artefak keluaran build. Untuk kelengkapan, beberapa `echo` perintah ditempatkan di setiap fase build dalam contoh ini. Ketika Anda melihat informasi build rinci nanti dalam tutorial ini, output dari `echo` perintah ini dapat membantu Anda lebih memahami bagaimana CodeBuild menjalankan perintah dan urutan apa. (Meskipun semua fase build disertakan dalam contoh ini, Anda tidak diharuskan menyertakan fase build jika Anda tidak berencana menjalankan perintah apa pun selama fase tersebut.) Untuk setiap fase build, CodeBuild jalankan setiap perintah yang ditentukan, satu per satu, dalam urutan yang terdaftar, dari awal hingga akhir. 
+ `artifacts`mewakili kumpulan artefak keluaran build yang CodeBuild diunggah ke bucket keluaran. `files`mewakili file yang akan disertakan dalam output build. CodeBuild mengunggah `messageUtil-1.0.jar` file tunggal yang ditemukan di direktori `target` relatif di lingkungan build. Nama file `messageUtil-1.0.jar` dan nama direktori `target` didasarkan pada cara Apache Maven membuat dan menyimpan artefak keluaran build untuk contoh ini saja. Dalam build Anda sendiri, nama file dan direktori ini berbeda. 

Untuk informasi selengkapnya, lihat [Referensi Buildspec](build-spec-ref.md).

Pada titik ini, struktur direktori Anda akan terlihat seperti ini.

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

### Langkah 3: Buat dua ember S3
<a name="getting-started-cli-input-bucket"></a>

(Langkah sebelumnya: [Langkah 2: Buat file buildspec](#getting-started-cli-create-build-spec))

Meskipun Anda dapat menggunakan satu bucket untuk tutorial ini, dua bucket memudahkan untuk melihat dari mana input build berasal dan ke mana output build akan pergi.
+ Salah satu bucket ini (*bucket input*) menyimpan input build. Dalam tutorial ini, nama bucket input ini adalah`codebuild-region-ID-account-ID-input-bucket`, di mana *region-ID* adalah AWS Region bucket dan *account-ID* merupakan ID AWS akun Anda.
+ Bucket lainnya (*ember keluaran*) menyimpan output build. Dalam tutorial ini, nama bucket keluaran ini adalah`codebuild-region-ID-account-ID-output-bucket`.

Jika Anda memilih nama yang berbeda untuk ember ini, pastikan untuk menggunakannya di seluruh tutorial ini.

Kedua ember ini harus berada di AWS Wilayah yang sama dengan bangunan Anda. Misalnya, jika Anda menginstruksikan CodeBuild untuk menjalankan bangunan di Wilayah Timur AS (Ohio), ember ini juga harus berada di Wilayah Timur AS (Ohio).

Untuk informasi selengkapnya, lihat [Membuat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

**catatan**  
Meskipun CodeBuild juga mendukung input build yang disimpan di CodeCommit GitHub,, dan repositori Bitbucket, tutorial ini tidak menunjukkan cara menggunakannya. Untuk informasi selengkapnya, lihat [Rencanakan pembangunan](planning.md).

### Langkah 4: Unggah kode sumber dan file buildspec
<a name="getting-started-cli-upload-source-code"></a>

(Langkah sebelumnya: [Langkah 3: Buat dua ember S3](#getting-started-cli-input-bucket))

Pada langkah ini, Anda menambahkan kode sumber dan membangun file spesifikasi ke bucket input.

Menggunakan utilitas zip sistem operasi Anda, buat file bernama `MessageUtil.zip` yang mencakup`MessageUtil.java`,`TestMessageUtil.java`,`pom.xml`, dan`buildspec.yml`. 

Struktur direktori `MessageUtil.zip` file harus terlihat seperti ini.

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

**penting**  
Jangan sertakan `(root directory name)` direktori, hanya direktori dan file di `(root directory name)` direktori.

Unggah `MessageUtil.zip` file ke bucket input bernama`codebuild-region-ID-account-ID-input-bucket`. 

**penting**  
Untuk CodeCommit, GitHub, dan repositori Bitbucket, menurut konvensi, Anda harus menyimpan file spesifikasi build bernama `buildspec.yml` di root (tingkat atas) setiap repositori atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build. Jangan membuat file ZIP yang berisi kode sumber repositori dan membangun file spesifikasi.   
Untuk input build yang disimpan di bucket S3 saja, Anda harus membuat file ZIP yang berisi kode sumber dan, menurut konvensi, file spesifikasi build yang diberi nama `buildspec.yml` di root (tingkat atas) atau menyertakan deklarasi spesifikasi build sebagai bagian dari definisi proyek build.  
Jika Anda ingin menggunakan nama yang berbeda untuk file spesifikasi build, atau Anda ingin mereferensikan spesifikasi build di lokasi selain root, Anda dapat menentukan penggantian spesifikasi build sebagai bagian dari definisi proyek build. Untuk informasi selengkapnya, lihat [Nama file Buildspec dan lokasi penyimpanan](build-spec-ref.md#build-spec-ref-name-storage).

### Langkah 5: Buat proyek build
<a name="getting-started-cli-create-build-project"></a>

(Langkah sebelumnya: [Langkah 4: Unggah kode sumber dan file buildspec](#getting-started-cli-upload-source-code))

Pada langkah ini, Anda membuat proyek build yang AWS CodeBuild digunakan untuk menjalankan build. *Proyek build* mencakup informasi tentang cara menjalankan build, termasuk tempat mendapatkan kode sumber, lingkungan build mana yang akan digunakan, perintah build mana yang akan dijalankan, dan tempat menyimpan output build. *Lingkungan build* mewakili kombinasi sistem operasi, runtime bahasa pemrograman, dan alat yang CodeBuild digunakan untuk menjalankan build. Lingkungan build dinyatakan sebagai image Docker. Untuk informasi selengkapnya, lihat [ikhtisar Docker](https://docs.docker.com/get-started/overview/) di situs web Docker Docs. 

Untuk lingkungan build ini, Anda menginstruksikan CodeBuild untuk menggunakan image Docker yang berisi versi Java Development Kit (JDK) dan Apache Maven.<a name="getting-started-cli-create-build-project-cli"></a>

**Untuk membuat proyek build**

1. Gunakan AWS CLI untuk menjalankan **create-project** perintah:

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

   Data berformat JSON muncul di output. Salin data ke file bernama `create-project.json` di lokasi di komputer lokal atau contoh di AWS CLI mana diinstal. Jika Anda memilih untuk menggunakan nama file yang berbeda, pastikan untuk menggunakannya di seluruh tutorial ini.

   Ubah data yang disalin untuk mengikuti format ini, lalu simpan hasil Anda:

   ```
   {
     "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"
   }
   ```

   Ganti *serviceIAMRole* dengan Amazon Resource Name (ARN) dari peran CodeBuild layanan (misalnya,`arn:aws:iam::account-ID:role/role-name`). Untuk membuatnya, lihat [Memungkinkan CodeBuild untuk berinteraksi dengan AWS layanan lain](setting-up-service-role.md).

   Dalam data ini:
   + `name`mewakili pengidentifikasi yang diperlukan untuk proyek build ini (dalam contoh ini,`codebuild-demo-project`). Nama proyek build harus unik di semua proyek build di akun Anda. 
   + Untuk`source`, `type` adalah nilai wajib yang mewakili jenis repositori kode sumber (dalam contoh ini, `S3` untuk bucket Amazon S3).
   + Untuk`source`, `location` mewakili jalur ke kode sumber (dalam contoh ini, nama bucket input diikuti dengan nama file ZIP).
   + Untuk`artifacts`, `type` adalah nilai wajib yang mewakili tipe repositori artefak keluaran build (dalam contoh ini, `S3` untuk bucket Amazon S3).
   + Untuk`artifacts`, `location` mewakili nama bucket keluaran yang Anda buat atau identifikasi sebelumnya (dalam contoh ini,`codebuild-region-ID-account-ID-output-bucket`).
   + Untuk`environment`, `type` adalah nilai wajib yang mewakili jenis lingkungan build (dalam contoh ini,`LINUX_CONTAINER`).
   + Untuk`environment`, `image` adalah nilai wajib yang mewakili nama gambar Docker dan kombinasi tag yang digunakan proyek build ini, seperti yang ditentukan oleh jenis repositori gambar Docker (dalam contoh ini, `aws/codebuild/standard:5.0` untuk gambar Docker di repositori gambar Docker). CodeBuild `aws/codebuild/standard`adalah nama gambar Docker. `5.0`adalah tag dari gambar Docker. 

     Untuk menemukan lebih banyak gambar Docker yang dapat Anda gunakan dalam skenario Anda, lihat. [Membangun referensi lingkungan](build-env-ref.md)
   + Untuk`environment`, `computeType` adalah nilai wajib yang mewakili sumber daya komputasi CodeBuild menggunakan (dalam contoh ini,`BUILD_GENERAL1_SMALL`).
**catatan**  
Nilai lain yang tersedia dalam data berformat JSON asli, seperti`description`,, `auth` (termasuk `type` dan`resource`)`buildspec`,,, (untuk) `path``namespaceType`, `name` (termasuk dan`artifacts`)`packaging`,,, `timeoutInMinutes``encryptionKey`, `name` dan `environmentVariables` (termasuk dan`value`) adalah `tags` opsional`key`. `value` Mereka tidak digunakan dalam tutorial ini, jadi mereka tidak ditampilkan di sini. Untuk informasi selengkapnya, lihat [Buat proyek build (AWS CLI)](create-project.md#create-project-cli).

1. Beralih ke direktori yang berisi file yang baru saja Anda simpan, lalu jalankan **create-project** perintah lagi.

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

   Jika berhasil, data yang mirip dengan ini muncul di output.

   ```
   {
     "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`mewakili informasi tentang proyek pembangunan ini.
     + `tags`mewakili setiap tag yang dideklarasikan.
     + `packaging`mewakili bagaimana artefak keluaran build disimpan dalam bucket keluaran. `NONE`berarti folder dibuat di bucket output. Artefak keluaran build disimpan di folder itu.
     + `lastModified`mewakili waktu, dalam format waktu Unix, ketika informasi tentang proyek pembangunan terakhir diubah.
     + `timeoutInMinutes`mewakili jumlah menit setelah itu CodeBuild menghentikan build jika build belum selesai. (Standarnya adalah 60 menit.)
     + `created`mewakili waktu, dalam format waktu Unix, ketika proyek build dibuat.
     + `environmentVariables`mewakili variabel lingkungan apa pun yang dideklarasikan dan tersedia CodeBuild untuk digunakan selama pembuatan.
     + `encryptionKey`mewakili ARN dari kunci terkelola pelanggan yang CodeBuild digunakan untuk mengenkripsi artefak keluaran build.
     + `arn`mewakili ARN dari proyek pembangunan.

**catatan**  
Setelah Anda menjalankan **create-project** perintah, pesan kesalahan yang mirip dengan berikut ini mungkin keluaran: **User: *user-ARN* is not authorized to perform: codebuild: CreateProject**. Hal ini kemungkinan besar karena Anda mengkonfigurasi AWS CLI dengan kredensi pengguna yang tidak memiliki izin yang cukup untuk digunakan CodeBuild untuk membuat proyek build. Untuk memperbaikinya, konfigurasikan kredensi AWS CLI dengan milik salah satu entitas IAM berikut:   
Pengguna administrator di AWS akun Anda. Untuk informasi selengkapnya, lihat [Membuat pengguna dan grup Akun AWS root pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) di *Panduan pengguna*.
Pengguna di AWS akun Anda dengan`AWSCodeBuildAdminAccess`,`AmazonS3ReadOnlyAccess`, dan kebijakan `IAMFullAccess` terkelola yang dilampirkan ke pengguna tersebut atau ke grup IAM yang menjadi milik pengguna tersebut. Jika Anda tidak memiliki pengguna atau grup di AWS akun Anda dengan izin ini, dan Anda tidak dapat menambahkan izin ini ke pengguna atau grup Anda, hubungi administrator AWS akun Anda untuk mendapatkan bantuan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola (standar) untuk AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).

### Langkah 6: Jalankan build
<a name="getting-started-cli-run-build"></a>

(Langkah sebelumnya: [Langkah 5: Buat proyek build](#getting-started-cli-create-build-project))

Pada langkah ini, Anda menginstruksikan AWS CodeBuild untuk menjalankan build dengan pengaturan dalam proyek build.<a name="getting-started-run-build-cli"></a>

**Untuk menjalankan build**

1. Gunakan AWS CLI untuk menjalankan **start-build** perintah:

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

   Ganti *project-name* dengan nama proyek build Anda dari langkah sebelumnya (misalnya,`codebuild-demo-project`).

1. Jika berhasil, data yang mirip dengan berikut ini muncul di output:

   ```
   {
     "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`mewakili informasi tentang build ini.
     + `buildComplete`mewakili apakah build telah selesai (`true`). Atau, `false`.
     + `initiator`mewakili entitas yang memulai pembangunan.
     + `artifacts`mewakili informasi tentang keluaran build, termasuk lokasinya.
     + `projectName`mewakili nama proyek pembangunan.
     + `buildStatus`mewakili status build saat ini saat **start-build** perintah dijalankan.
     + `currentPhase`mewakili fase build saat ini saat **start-build** perintah dijalankan.
     + `startTime`mewakili waktu, dalam format waktu Unix, saat proses pembuatan dimulai.
     + `id`mewakili ID build.
     + `arn`mewakili ARN build.

   Catat `id` nilainya. Anda membutuhkannya di langkah berikutnya.

### Langkah 7: Lihat informasi build yang dirangkum
<a name="getting-started-cli-monitor-build"></a>

(Langkah sebelumnya: [Langkah 6: Jalankan build](#getting-started-cli-run-build))

Pada langkah ini, Anda melihat informasi yang dirangkum tentang status build Anda.<a name="getting-started-cli-monitor-build-cli"></a>

**Untuk melihat informasi build yang dirangkum**
+ Gunakan AWS CLI untuk menjalankan **batch-get-builds** perintah.

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

  Ganti *id* dengan `id` nilai yang muncul di output dari langkah sebelumnya.

  Jika berhasil, data yang mirip dengan ini muncul di output.

  ```
  {
    "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`mewakili build IDs untuk build apa pun yang informasinya tidak tersedia. Dalam contoh ini, itu harus kosong.
  + `builds`mewakili informasi tentang setiap build di mana informasi tersedia. Dalam contoh ini, informasi tentang hanya satu build muncul di output.
    + `phases`mewakili serangkaian fase build yang CodeBuild berjalan selama proses build. Informasi tentang setiap fase build dicantumkan secara terpisah sebagai `startTime``endTime`,, dan `durationInSeconds` (ketika fase build dimulai dan berakhir, dinyatakan dalam format waktu Unix, dan berapa lama berlangsung, dalam hitungan detik), dan `phaseType` seperti (`SUBMITTED`,,`PROVISIONING`,`DOWNLOAD_SOURCE`,`INSTALL`,`PRE_BUILD`,`BUILD`, `POST_BUILD` `UPLOAD_ARTIFACTS``FINALIZING`, atau`COMPLETED`) dan `phaseStatus` (seperti`SUCCEEDED`,,,,`FAILED`, `FAULT` `TIMED_OUT``IN_PROGRESS`, atau`STOPPED`). Pertama kali Anda menjalankan **batch-get-builds**perintah, mungkin tidak ada banyak (atau apa pun) fase. Setelah menjalankan **batch-get-builds**perintah berikutnya dengan ID build yang sama, lebih banyak fase build akan muncul di output.
    + `logs`mewakili informasi di Amazon CloudWatch Logs tentang log build.
    + `md5sum`dan `sha256sum` mewakili MD5 dan SHA-256 hash dari artefak keluaran build. Ini muncul di output hanya jika `packaging` nilai proyek build disetel ke`ZIP`. (Anda tidak menetapkan nilai ini dalam tutorial ini.) Anda dapat menggunakan hash ini bersama dengan alat checksum untuk mengonfirmasi integritas dan keaslian file.
**catatan**  
Anda juga dapat menggunakan konsol Amazon S3 untuk melihat hash ini. Pilih kotak di samping artefak keluaran build, pilih **Actions**, lalu pilih **Properties**. **Di panel **Properties**, perluas **Metadata**, dan lihat nilai untuk **x-amz-meta-codebuild-content-md5 dan -content-sha256**. x-amz-meta-codebuild** (Di konsol Amazon S3, **ETag**nilai artefak keluaran build tidak boleh ditafsirkan sebagai hash MD5 atau SHA-256.)  
Jika Anda menggunakan AWS SDKs untuk mendapatkan hash ini, nilainya diberi nama `codebuild-content-md5` dan`codebuild-content-sha256`. 
    + `endTime`mewakili waktu, dalam format waktu Unix, ketika proses pembangunan berakhir.
**catatan**  
Metadata Amazon S3 memiliki CodeBuild header bernama yang berisi CodeBuild build `x-amz-meta-codebuild-buildarn` yang menerbitkan `buildArn` artefak ke Amazon S3. Ditambahkan untuk memungkinkan pelacakan sumber untuk notifikasi dan referensi dari mana artefak tersebut dihasilkan. `buildArn`

### Langkah 8: Lihat informasi build terperinci
<a name="getting-started-cli-build-log"></a>

(Langkah sebelumnya: [Langkah 7: Lihat informasi build yang dirangkum](#getting-started-cli-monitor-build))

Pada langkah ini, Anda melihat informasi mendetail tentang build Anda di CloudWatch Log.

**catatan**  
 Untuk melindungi informasi sensitif, berikut ini disembunyikan di CodeBuild log:   
 AWS kunci akses IDs. Untuk informasi selengkapnya, lihat [Mengelola Kunci Akses untuk Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan AWS Identity and Access Management Pengguna*. 
 String ditentukan menggunakan Parameter Store. Untuk informasi selengkapnya, lihat [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) dan [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) di Panduan Pengguna *Amazon EC2 Systems* Manager. 
 String ditentukan menggunakan AWS Secrets Manager. Untuk informasi selengkapnya, lihat [Manajemen kunci](security-key-management.md). <a name="getting-started-cli-build-log-cli"></a>

**Untuk melihat informasi build yang mendetail**

1. Gunakan browser web Anda untuk pergi ke `deepLink` lokasi yang muncul di output pada langkah sebelumnya (misalnya,`https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE`).

1. Di aliran CloudWatch log Log, Anda dapat menelusuri peristiwa log. Secara default, hanya kumpulan peristiwa log terakhir yang ditampilkan. Untuk melihat peristiwa log sebelumnya, gulir ke awal daftar.

1. Dalam tutorial ini, sebagian besar peristiwa log berisi informasi verbose tentang CodeBuild mengunduh dan menginstal file ketergantungan build ke dalam lingkungan build-nya, yang mungkin tidak Anda pedulikan. Anda dapat menggunakan kotak **Filter peristiwa** untuk mengurangi informasi yang ditampilkan. Misalnya, jika Anda memasukkan `"[INFO]"` **acara Filter**, hanya peristiwa yang berisi yang `[INFO]` ditampilkan. Untuk informasi selengkapnya, lihat [Filter dan sintaks pola](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) di *Panduan CloudWatch Pengguna Amazon*.

Bagian-bagian dari aliran CloudWatch log Log ini berkaitan dengan tutorial ini.

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

Dalam contoh ini, CodeBuild berhasil menyelesaikan fase pre-build, build, dan post-build build. Ini menjalankan tes unit dan berhasil membangun `messageUtil-1.0.jar` file.

### Langkah 9: Dapatkan artefak keluaran build
<a name="getting-started-cli-output"></a>

(Langkah sebelumnya: [Langkah 8: Lihat informasi build terperinci](#getting-started-cli-build-log))

Pada langkah ini, Anda mendapatkan `messageUtil-1.0.jar` file yang CodeBuild dibangun dan diunggah ke bucket output.

Anda dapat menggunakan CodeBuild konsol atau konsol Amazon S3 untuk menyelesaikan langkah ini.



**Untuk mendapatkan artefak keluaran build (AWS CodeBuild konsol)**

1. Dengan CodeBuild konsol masih terbuka dan halaman detail build masih ditampilkan dari langkah sebelumnya, pilih tab **Build details** dan gulir ke bawah ke bagian **Artefacts**. 
**catatan**  
Jika halaman detail build tidak ditampilkan, di bilah navigasi, pilih **Riwayat build**, lalu pilih tautan **Build run**.

1. Tautan ke folder Amazon S3 berada di bawah lokasi unggah **Artefak**. Tautan ini membuka folder di Amazon S3 tempat Anda menemukan file artefak keluaran `messageUtil-1.0.jar` build.

**Untuk mendapatkan artefak keluaran build (konsol Amazon S3)**

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Buka `codebuild-region-ID-account-ID-output-bucket`.

1. Buka folder `codebuild-demo-project`.

1. Buka `target` folder, tempat Anda menemukan file artefak keluaran `messageUtil-1.0.jar` build.

### Langkah 10: Hapus ember S3
<a name="getting-started-cli-clean-up"></a>

(Langkah sebelumnya: [Langkah 9: Dapatkan artefak keluaran build](#getting-started-cli-output))

Untuk mencegah tagihan yang sedang berlangsung ke AWS akun Anda, Anda dapat menghapus bucket input dan output yang digunakan dalam tutorial ini. Untuk petunjuknya, lihat [Menghapus atau Mengosongkan Bucket di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

Jika Anda menggunakan pengguna IAM atau pengguna IAM administrator untuk menghapus bucket ini, pengguna harus memiliki lebih banyak izin akses. Tambahkan pernyataan berikut di antara penanda (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*dan*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) ke kebijakan akses yang ada untuk pengguna. 

Elips (...) dalam pernyataan ini digunakan untuk singkatnya. Jangan menghapus pernyataan apa pun dalam kebijakan akses yang ada. Jangan masukkan elips ini ke dalam kebijakan.

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

****  

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

------

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



Dalam tutorial ini, Anda digunakan AWS CodeBuild untuk membangun satu set file kelas Java ke dalam file JAR. Anda kemudian melihat hasil build.

Anda sekarang dapat mencoba menggunakan CodeBuild dalam skenario Anda sendiri. Ikuti petunjuk dalam [Rencanakan pembangunan](planning.md). Jika Anda belum merasa siap, Anda mungkin ingin mencoba membuat beberapa sampel. Lihat informasi yang lebih lengkap di [Gunakan sampel berbasis kasus untuk CodeBuild](use-case-based-samples.md). 